Public Class WM
Public Enum SC 'System Commands
CLOSE = &HF060
CONTEXTHELP = &HF180
CDEFAULT = &HF160
HOTKEY = &HF150
HSCROLL = &HF080
ISSECURE = &H1
KEYMENU = &HF100
MAXIMIZE = &HF030
MINIMIZE = &HF020
MONITORPOWER = &HF170
MouseMenu = &HF090
MOVE = &HF010
NEXTWINDOW = &HF040
PREVWINDOW = &HF050
RESTORE = &HF120
SCREENSAVE = &HF140
Size = &HF000
TASKLIST = &HF130
VSCROLL = &HF070
End Enum
Public Enum msg As UInteger
USER = &H400&
ACTIVATE = &H6
ACTIVATEAPP = &H1C
ASKCBFORMATNAME = &H30C
CANCELJOURNAL = &H4B
CANCELMODE = &H1F
CHANGECBCHAIN = &H30D
Chr = &H102
CHARTOITEM = &H2F
CHILDACTIVATE = &H22
CHOOSEFONT_GETLOGFONT = (USER + 1)
CHOOSEFONT_SETFLAGS = (USER + 102)
CHOOSEFONT_SETLOGFONT = (USER + 101)
CLEAR = &H303
CLOSE = &H10
Command = &H111
COMMNOTIFY = &H44 ' no longer suported
COMPACTING = &H41
COMPAREITEM = &H39
CONVERTREQUESTEX = &H108
Copy = &H301
COPYDATA = &H4A
CREATE = &H1
CTLCOLORBTN = &H135
CTLCOLORDLG = &H136
CTLCOLOREDIT = &H133
CTLCOLORLISTBOX = &H134
CTLCOLORMSGBOX = &H132
CTLCOLORSCROLLBAR = &H137
CTLCOLORSTATIC = &H138
CUT = &H300
DDE_FIRST = &H3E0
DDE_ACK = (DDE_FIRST + 4)
DDE_ADVISE = (DDE_FIRST + 2)
DDE_DATA = (DDE_FIRST + 5)
DDE_EXECUTE = (DDE_FIRST + 8)
DDE_INITIATE = (DDE_FIRST)
DDE_LAST = (DDE_FIRST + 8)
DDE_POKE = (DDE_FIRST + 7)
DDE_REQUEST = (DDE_FIRST + 6)
DDE_TERMINATE = (DDE_FIRST + 1)
DDE_UNADVISE = (DDE_FIRST + 3)
DEADCHAR = &H103
DELETEITEM = &H2D
DESTROY = &H2
DESTROYCLIPBOARD = &H307
DEVMODECHANGE = &H1B
DRAWCLIPBOARD = &H308
DRAWITEM = &H2B
DROPFILES = &H233
ENABLE = &HA
ENDSESSION = &H16
ENTERIDLE = &H121
ENTERMENULOOP = &H211
ERASEBKGND = &H14
EXITMENULOOP = &H212
FONTCHANGE = &H1D
GETFONT = &H31
GETDLGCODE = &H87
GETHOTKEY = &H33
GETMINMAXINFO = &H24
GETTEXT = &HD
GETTEXTLENGTH = &HE
HOTKEY = &H312
HSCROLL = &H114
HSCROLLCLIPBOARD = &H30E
ICONERASEBKGND = &H27
IME_CHAR = &H286
IME_COMPOSITION = &H10F
IME_COMPOSITIONFULL = &H284
IME_CONTROL = &H283
IME_ENDCOMPOSITION = &H10E
IME_KEYDOWN = &H290
IME_KEYLAST = &H10F
IME_KEYUP = &H291
IME_NOTIFY = &H282
IME_SELECT = &H285
IME_SETCONTEXT = &H281
IME_STARTCOMPOSITION = &H10D
INITDIALOG = &H110
INITMENU = &H116
INITMENUPOPUP = &H117
KEYDOWN = &H100
KEYFIRST = &H100
KEYLAST = &H108
KEYUP = &H101
KILLFOCUS = &H8
LBUTTONDBLCLK = &H203
LBUTTONDOWN = &H201
LBUTTONUP = &H202
MBUTTONDBLCLK = &H209
MBUTTONDOWN = &H207
MBUTTONUP = &H208
MDIACTIVATE = &H222
MDICASCADE = &H227
MDICREATE = &H220
MDIDESTROY = &H221
MDIGETACTIVE = &H229
MDIICONARRANGE = &H228
MDIMAXIMIZE = &H225
MDINEXT = &H224
MDIREFRESHMENU = &H234
MDIRESTORE = &H223
MDISETMENU = &H230
MDITILE = &H226
MEASUREITEM = &H2C
MENUCHAR = &H120
MENUSELECT = &H11F
MOUSEACTIVATE = &H21
MOUSEFIRST = &H200
MOUSELAST = &H209
MOUSEMOVE = &H200
MOVE = &H3
NCACTIVATE = &H86
NCCALCSIZE = &H83
NCCREATE = &H81
NCDESTROY = &H82
NCHITTEST = &H84
NCLBUTTONDBLCLK = &HA3
NCLBUTTONDOWN = &HA1
NCLBUTTONUP = &HA2
NCMBUTTONDBLCLK = &HA9
NCMBUTTONDOWN = &HA7
NCMBUTTONUP = &HA8
NCMOUSEMOVE = &HA0
NCPAINT = &H85
NCRBUTTONDBLCLK = &HA6
NCRBUTTONDOWN = &HA4
NCRBUTTONUP = &HA5
NEXTDLGCTL = &H28
NULL = &H0
PAINT = &HF
PAINTCLIPBOARD = &H309
PAINTICON = &H26
PALETTECHANGED = &H311
PALETTEISCHANGING = &H310
PARENTNOTIFY = &H210
PASTE = &H302
PENWINFIRST = &H380
PENWINLAST = &H38F
POWER = &H48
Print = &H317
PSD_ENVSTAMPRECT = (USER + 5)
PSD_FULLPAGERECT = (USER + 1)
PSD_GREEKTEXTRECT = (USER + 4)
PSD_MARGINRECT = (USER + 3)
PSD_MINMARGINRECT = (USER + 2)
PSD_PAGESETUPDLG = (USER)
PSD_YAFULLPAGERECT = (USER + 6)
QUERYDRAGICON = &H37
QUERYENDSESSION = &H11
QUERYNEWPALETTE = &H30F
QUERYOPEN = &H13
QUEUESYNC = &H23
QUIT = &H12
RBUTTONDBLCLK = &H206
RBUTTONDOWN = &H204
RBUTTONUP = &H205
RENDERALLFORMATS = &H306
RENDERFORMAT = &H305
SETCURSOR = &H20
SETFOCUS = &H7
SETFONT = &H30
SETHOTKEY = &H32
SETREDRAW = &HB
SETTEXT = &HC
Size = &H5
SIZECLIPBOARD = &H30B
SPOOLERSTATUS = &H2A
SYSCHAR = &H106
SYSCOLORCHANGE = &H15
SYSCOMMAND = &H112
SYSDEADCHAR = &H107
SYSKEYDOWN = &H104
SYSKEYUP = &H105
SHOWWINDOW = &H18
Timer = &H113
TIMECHANGE = &H1E
UNDO = &H304
VKEYTOITEM = &H2E
VSCROLL = &H115
VSCROLLCLIPBOARD = &H30A
WINDOWPOSCHANGED = &H47
WINDOWPOSCHANGING = &H46
WININICHANGE = &H1A
End Enum 'Window Messages
Public Shared Function GETTEXTLENGTH(ByVal hwnd As IntPtr) As Integer
Return DefWindowProc(hwnd, 14, 0, 0) + 1
End Function
Public Shared Property TEXT(ByVal hwnd As IntPtr) As String
Get
Dim length As Integer = GETTEXTLENGTH(hwnd)
Dim Handle As IntPtr = Runtime.InteropServices.Marshal.AllocHGlobal(length)
DefWindowProc(hwnd, 13, length, Handle)
Return Runtime.InteropServices.Marshal.PtrToStringAnsi(Handle)
End Get
Set(ByVal value As String)
DefWindowProc(hwnd, &HC, IntPtr.Zero, Runtime.InteropServices.Marshal.StringToHGlobalAnsi(value))
End Set
End Property
Public Shared Property FONT(ByVal hwnd As IntPtr) As System.Drawing.Font
Get
Return System.Drawing.Font.FromHfont(SendMessage(hwnd, msg.GETFONT))
End Get
Set(ByVal value As System.Drawing.Font)
SendMessage(hwnd, msg.SETFONT, value.ToHfont, True)
End Set
End Property
Public Shared Function CLOSE(ByVal hwnd As IntPtr) As Integer
Return DefWindowProc(hwnd, msg.CLOSE, 0, 0)
End Function
Public Shared Function DESTROY(ByVal hwnd As IntPtr) As Integer
Return DefWindowProc(hwnd, msg.DESTROY, 0, 0)
End Function
Public Shared Function CLEAR(ByVal hwnd As IntPtr) As Integer
Return DefWindowProc(hwnd, msg.CLEAR, 0, 0)
End Function
Public Shared Function UNDO(ByVal hwnd As IntPtr) As Integer
Return DefWindowProc(hwnd, msg.UNDO, 0, 0)
End Function
Public Shared Function SYSCOMMAND(ByVal hwnd As IntPtr, ByVal command As SC, Optional ByVal lparam As Integer = 0) As Boolean
Return DefWindowProc(hwnd, WM.msg.SYSCOMMAND, command, lparam)
End Function
Public Shared Function SYSCOMMAND(ByVal hwnd As IntPtr, ByVal command As SC, ByVal x As Short, ByVal y As Short) As Boolean
Return DefWindowProc(hwnd, WM.msg.SYSCOMMAND, command, New DWORD(x, y).Integer1)
End Function
End Class