MinMaxInfo


Description:
This module demonstrates using CopyMemory. It shows how to use the lParam value in a message hook to access a MinMaxInfo structure, and set it to control the tracking window size.
 
Code:
Option Explicit

Private Const WM_GETMINMAXINFO = &H24

Private Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
   (dest As Any, src As Any, ByVal length As Long) As Long

Private Type POINTAPI
    X As Long
    Y As Long
End Type

Private Type MINMAXINFO
    ptReserved As POINTAPI
    ptMaxSize As POINTAPI
    ptMaxPosition As POINTAPI
    ptMinTrackSize As POINTAPI
    ptMaxTrackSize As POINTAPI
End Type

Private Sub SetMinMax(lpMMI As Long)
    
    Dim mmi As MINMAXINFO
    
    CopyMemory mmi, ByVal lpMMI, Len(mmi)
    
    mmi.ptMinTrackSize.X = 100
    mmi.ptMinTrackSize.Y = 200
    
    CopyMemory ByVal lpMMI, mmi, Len(mmi)

End Sub
 
Sample Usage:
 
n/a