Code/Example below is identical to the VB6 project.
Code should be pasted completely into Form1.

Option Explicit

Private Const SC_CLOSE = &HF060&
Private Const SC_MAXIMIZE = &HF030&
Private Const SC_MINIMIZE = &HF020&
Private Const SC_MOVE = &HF010&
Private Const SC_RESTORE = &HF120&
Private Const SC_SIZE = &HF000&

Private Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Check1_Click(Index As Integer)
    
    Dim SC As Long
    
    Select Case Index
    Case 0: SC = SC_RESTORE
    Case 1: SC = SC_MOVE
    Case 2: SC = SC_SIZE
    Case 3: SC = SC_MINIMIZE
    Case 4: SC = SC_MAXIMIZE
    Case 5: SC = SC_CLOSE
    Case Else: Exit Sub
    End Select
    
    EnableSysMenu Me, SC, Check1(Index).Value

End Sub

Private Sub Form_Load()

    Dim a%
    
    For a% = 0 To 5
    
        Me.Check1(a%).Value = 1
    
    Next a%
    
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    If UnloadMode = vbFormControlMenu Then
    
        Beep
        If MsgBox("Close " & App.Title & " ?", vbOKCancel + vbQuestion) = vbCancel Then
            Cancel = True
        End If
        
    End If
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub

Private Sub mnuFile_Click(Index As Integer)

    Select Case Index
    Case 10: Unload Me
    End Select
    
End Sub

'
'**********************************************************************
'* Category :   32Bits, Code functions
'* Procedure:   EnableSysMenu
'* Changed  :   27-10-1998, 09:45   by :
'* Placed   :   27-10-1998, 09:45   by :
'* Revision :
'*
'* Purpose  :   To enable/disable systemmenuitems (Controlbox).
'* Example  :   EnableSysMenu MDIForm1, SC_MAXIMIZE, False, "May NOT maximized!"
'**********************************************************************
'
'[CodeLib message : Move next section into General Declarations...]
'General Declarations / Constants for procedure : EnableSysMenu
'Public Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
'Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
'Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
'Public Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long
'Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
'
'Public Const SC_CLOSE = &HF060&
'Public Const SC_MAXIMIZE = &HF030&
'Public Const SC_MINIMIZE = &HF020&
'Public Const SC_MOVE = &HF010&
'Public Const SC_RESTORE = &HF120&
'Public Const SC_SIZE = &HF000&
'
Public Sub EnableSysMenu(F As Form, ByVal SysByCommand As Long, EnableMenu As Boolean, Optional NewCaption As String)

    Dim Ret                     As Long
    Dim MenuFlags               As Long
    Dim MenuString              As String
    Dim SystemMenu              As Long
    Dim SysByCommandInverted    As Long
    
    Const GWL_STYLE = (-16)

    Const MF_BYCOMMAND = &H0&
    Const MF_GRAYED = &H1&

    Const SWP_FRAMECHANGED = &H20
    Const SWP_NOMOVE = &H2
    Const SWP_NOSIZE = &H1
    Const SWP_NOZORDER = &H4

    Const WS_MAXIMIZEBOX = &H10000
    Const WS_MINIMIZEBOX = &H20000
    Const WS_SYSMENU = &H80000

    Ret = 0
    SysByCommandInverted = SysByCommand

    MenuString = Space$(127)
    SystemMenu = GetSystemMenu(F.hwnd, 0)

    'Modify menu will set a new caption, retrieving old caption first to restore later.
    Ret = GetMenuString(SystemMenu, SysByCommand, MenuString, Len(MenuString), MF_BYCOMMAND)

    'Menu not found, re-indexing could already be in progress.
    If Ret = 0 Then

        SysByCommandInverted = -SysByCommand
        Ret = GetMenuString(SystemMenu, -SysByCommand, MenuString, Len(MenuString), MF_BYCOMMAND)

    End If

    If Not Ret = 0 Then

        'New caption?
        If Trim$(NewCaption) > "" Then
            MenuString = NewCaption
        Else
            MenuString = Left$(MenuString, Ret)
        End If

        'Enable menu?
        If EnableMenu Then
            MenuFlags = MF_BYCOMMAND
        Else
            'Disable menu
            MenuFlags = MF_BYCOMMAND Or MF_GRAYED

            'Set 'new' index, or VB will reset if you use original index!
            SysByCommand = -SysByCommand

        End If

        'Set new settings (Enable/Menustring)
        Ret = ModifyMenu(SystemMenu, SysByCommandInverted, MenuFlags, SysByCommand, MenuString)
        
        'Minimize or Maximize requires additional code to Enable/Disable buttons.
        Ret = GetWindowLong(Me.hwnd, GWL_STYLE)
    
        Select Case SysByCommand
        Case SC_MAXIMIZE:   Ret = Ret Or WS_MAXIMIZEBOX
        Case SC_MINIMIZE:   Ret = Ret Or WS_MINIMIZEBOX
        Case -SC_MAXIMIZE:  Ret = Ret And Not WS_MAXIMIZEBOX
        Case -SC_MINIMIZE:  Ret = Ret And Not WS_MINIMIZEBOX
        Case Else: Ret = 0
        End Select
        
        If Ret <> 0 Then Ret = SetWindowLong(F.hwnd, GWL_STYLE, Ret)
    
        If F.Visible Then
            SetWindowPos F.hwnd, F.hwnd, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER Or SWP_FRAMECHANGED
        End If

    End If

End Sub