diff --git a/library/win32/clipboard.factor b/library/win32/clipboard.factor new file mode 100644 index 0000000000..bd42063cc6 --- /dev/null +++ b/library/win32/clipboard.factor @@ -0,0 +1,59 @@ +USING: kernel win32-api math namespaces io prettyprint errors sequences alien ; +IN: win32 + +: (enum-clipboard) ( n -- ) + EnumClipboardFormats win32-error dup 0 > [ dup , (enum-clipboard) ] when ; + +: enum-clipboard ( -- seq ) + [ 0 (enum-clipboard) ] { } make nip ; + +: paste ( -- str ) + f OpenClipboard drop + CF_TEXT IsClipboardFormatAvailable 0 = [ + "no text in clipboard" print + ] [ + ! "text found" print + CF_TEXT GetClipboardData + dup GlobalLock swap + GlobalUnlock drop + ] if + CloseClipboard drop alien>string ; + +LIBRARY: libc +FUNCTION: void memcpy ( char* dst, char* src, ulong size ) ; + +: copy ( str -- ) + f OpenClipboard drop + EmptyClipboard drop + GMEM_MOVEABLE over length 1+ GlobalAlloc dup 0 = [ + "unable to allocate memory" throw + ] when + + dup GlobalLock + rot dup length memcpy + dup GlobalUnlock drop + CF_TEXT swap SetClipboardData 0 = [ + win32-error + "SetClipboardData failed" throw + ] when + + CloseClipboard drop ; + + + ! hglbCopy = GlobalAlloc(GMEM_MOVEABLE, + ! (cch + 1) * sizeof(TCHAR)); + + + ! // Lock the handle and copy the text to the buffer. + + ! lptstrCopy = GlobalLock(hglbCopy); + ! memcpy(lptstrCopy, &pbox->atchLabel[ich1], + ! cch * sizeof(TCHAR)); + ! lptstrCopy[cch] = (TCHAR) 0; // null character + ! GlobalUnlock(hglbCopy); + + ! // Place the handle on the clipboard. + ! SetClipboardData(CF_TEXT, hglbCopy); + + + diff --git a/library/win32/gdi32.factor b/library/win32/gdi32.factor new file mode 100644 index 0000000000..9f3141f7ed --- /dev/null +++ b/library/win32/gdi32.factor @@ -0,0 +1,34 @@ +IN: win32 +USING: alien kernel errors ; + +LIBRARY: gdi32 + +! Stock Logical Objects +: WHITE_BRUSH 0 ; inline +: LTGRAY_BRUSH 1 ; inline +: GRAY_BRUSH 2 ; inline +: DKGRAY_BRUSH 3 ; inline +: BLACK_BRUSH 4 ; inline +: NULL_BRUSH 5 ; inline +: HOLLOW_BRUSH NULL_BRUSH ; inline +: WHITE_PEN 6 ; inline +: BLACK_PEN 7 ; inline +: NULL_PEN 8 ; inline +: OEM_FIXED_FONT 10 ; inline +: ANSI_FIXED_FONT 11 ; inline +: ANSI_VAR_FONT 12 ; inline +: SYSTEM_FONT 13 ; inline +: DEVICE_DEFAULT_FONT 14 ; inline +: DEFAULT_PALETTE 15 ; inline +: SYSTEM_FIXED_FONT 16 ; inline +: DEFAULT_GUI_FONT 17 ; inline +: DC_BRUSH 18 ; inline +: DC_PEN 19 ; inline + +FUNCTION: HGDIOBJ GetStockObject ( int fnObject ) ; +FUNCTION: int ChoosePixelFormat ( HDC hDC, PFD* ppfd ) ; +FUNCTION: BOOL SetPixelFormat ( HDC hDC, int iPixelFormat, PFD* ppfd ) ; + +FUNCTION: BOOL SwapBuffers ( HDC hDC ) ; + + diff --git a/library/win32/kernel32.factor b/library/win32/kernel32.factor new file mode 100644 index 0000000000..6087025080 --- /dev/null +++ b/library/win32/kernel32.factor @@ -0,0 +1,59 @@ +USING: alien kernel errors ; +IN: win32-api + +LIBRARY: kernel32 + +! FUNCTION: MAKEINTRESOURCEA +! FUNCTION: MAKEINTRESOURCEW + +! : MAKEINTRESOURCE \ MAKEINTRESOURCEW \ MAKEINTRESOURCEA unicode-exec ; +! #define IS_INTRESOURCE(_r) (((ULONG_PTR)(_r) >> 16) == 0) +! #define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i))) +! #define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i))) + + +! FUNCTION: DWORD FormatMessage( + ! DWORD dwFlags, + ! LPCVOID lpSource, + ! DWORD dwMessageId, + ! DWORD dwLanguageId, + ! LPTSTR lpBuffer, + ! DWORD nSize, + ! va_list* Arguments +! ) ; + + + +FUNCTION: HMODULE GetModuleHandleA ( char* lpModulename ) ; +FUNCTION: HMODULE GetModuleHandleW ( char* lpModulename ) ; + +: GetModuleHandle \ GetModuleHandleW \ GetModuleHandleA unicode-exec ; + + +! FUNCTION: HMODULE GetModuleHandleEx ( +! DWORD dwFlags, +! LPCTSTR lpModulename, +! HMODULE* phModule ) ; + + + +FUNCTION: DWORD GetLastError ( ) ; + +: (win32-error) ( id -- string ) + "char*" f "error_message" [ "int" ] alien-invoke ; + +: win32-error ( -- ) + GetLastError dup 0 = [ (win32-error) throw ] unless drop ; + +: GHND HEX: 40 ; inline +: GMEM_FIXED 0 ; inline +: GMEM_MOVEABLE 2 ; inline +: GMEM_ZEROINIT HEX: 40 ; inline +: GPTR HEX: 40 ; inline + +FUNCTION: HGLOBAL GlobalAlloc ( UINT uFlags, SIZE_T dwBytes ) ; +FUNCTION: LPVOID GlobalLock ( HGLOBAL hMem ) ; +! FUNCTION: char* GlobalLock ( HGLOBAL hMem ) ; +FUNCTION: BOOL GlobalUnlock ( HGLOBAL hMem ) ; + + diff --git a/library/win32/opengl32.factor b/library/win32/opengl32.factor new file mode 100644 index 0000000000..6c174ce2f7 --- /dev/null +++ b/library/win32/opengl32.factor @@ -0,0 +1,100 @@ +USING: alien parser namespaces kernel syntax words math io prettyprint ; +IN: win32-api + +! PIXELFORMATDESCRIPTOR flags +: PFD_DOUBLEBUFFER HEX: 00000001 ; inline +: PFD_STEREO HEX: 00000002 ; inline +: PFD_DRAW_TO_WINDOW HEX: 00000004 ; inline +: PFD_DRAW_TO_BITMAP HEX: 00000008 ; inline +: PFD_SUPPORT_GDI HEX: 00000010 ; inline +: PFD_SUPPORT_OPENGL HEX: 00000020 ; inline +: PFD_GENERIC_FORMAT HEX: 00000040 ; inline +: PFD_NEED_PALETTE HEX: 00000080 ; inline +: PFD_NEED_SYSTEM_PALETTE HEX: 00000100 ; inline +: PFD_SWAP_EXCHANGE HEX: 00000200 ; inline +: PFD_SWAP_COPY HEX: 00000400 ; inline +: PFD_SWAP_LAYER_BUFFERS HEX: 00000800 ; inline +: PFD_GENERIC_ACCELERATED HEX: 00001000 ; inline +: PFD_SUPPORT_DIRECTDRAW HEX: 00002000 ; inline + +! PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only +: PFD_DEPTH_DONTCARE HEX: 20000000 ; inline +: PFD_DOUBLEBUFFER_DONTCARE HEX: 40000000 ; inline +: PFD_STEREO_DONTCARE HEX: 80000000 ; inline + +! pixel types +: PFD_TYPE_RGBA 0 ; inline +: PFD_TYPE_COLORINDEX 1 ; inline + +! layer types +: PFD_MAIN_PLANE 0 ; inline +: PFD_OVERLAY_PLANE 1 ; inline +: PFD_UNDERLAY_PLANE -1 ; inline + +: LPD_TYPE_RGBA 0 ; inline +: LPD_TYPE_COLORINDEX 1 ; inline + +! wglSwapLayerBuffers flags +: WGL_SWAP_MAIN_PLANE HEX: 00000001 ; inline +: WGL_SWAP_OVERLAY1 HEX: 00000002 ; inline +: WGL_SWAP_OVERLAY2 HEX: 00000004 ; inline +: WGL_SWAP_OVERLAY3 HEX: 00000008 ; inline +: WGL_SWAP_OVERLAY4 HEX: 00000010 ; inline +: WGL_SWAP_OVERLAY5 HEX: 00000020 ; inline +: WGL_SWAP_OVERLAY6 HEX: 00000040 ; inline +: WGL_SWAP_OVERLAY7 HEX: 00000080 ; inline +: WGL_SWAP_OVERLAY8 HEX: 00000100 ; inline +: WGL_SWAP_OVERLAY9 HEX: 00000200 ; inline +: WGL_SWAP_OVERLAY10 HEX: 00000400 ; inline +: WGL_SWAP_OVERLAY11 HEX: 00000800 ; inline +: WGL_SWAP_OVERLAY12 HEX: 00001000 ; inline +: WGL_SWAP_OVERLAY13 HEX: 00002000 ; inline +: WGL_SWAP_OVERLAY14 HEX: 00004000 ; inline +: WGL_SWAP_OVERLAY15 HEX: 00008000 ; inline +: WGL_SWAP_UNDERLAY1 HEX: 00010000 ; inline +: WGL_SWAP_UNDERLAY2 HEX: 00020000 ; inline +: WGL_SWAP_UNDERLAY3 HEX: 00040000 ; inline +: WGL_SWAP_UNDERLAY4 HEX: 00080000 ; inline +: WGL_SWAP_UNDERLAY5 HEX: 00100000 ; inline +: WGL_SWAP_UNDERLAY6 HEX: 00200000 ; inline +: WGL_SWAP_UNDERLAY7 HEX: 00400000 ; inline +: WGL_SWAP_UNDERLAY8 HEX: 00800000 ; inline +: WGL_SWAP_UNDERLAY9 HEX: 01000000 ; inline +: WGL_SWAP_UNDERLAY10 HEX: 02000000 ; inline +: WGL_SWAP_UNDERLAY11 HEX: 04000000 ; inline +: WGL_SWAP_UNDERLAY12 HEX: 08000000 ; inline +: WGL_SWAP_UNDERLAY13 HEX: 10000000 ; inline +: WGL_SWAP_UNDERLAY14 HEX: 20000000 ; inline +: WGL_SWAP_UNDERLAY15 HEX: 40000000 ; inline + + + +: pfd-dwFlags + PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL bitor PFD_DOUBLEBUFFER bitor ; + +! TODO: compare to http://www.nullterminator.net/opengl32.html +: make-pfd ( bits -- pfd ) + "PIXELFORMATDESCRIPTOR" + "PIXELFORMATDESCRIPTOR" c-size over set-PIXELFORMATDESCRIPTOR-nSize + 1 over set-PIXELFORMATDESCRIPTOR-nVersion + pfd-dwFlags over set-PIXELFORMATDESCRIPTOR-dwFlags + PFD_TYPE_RGBA over set-PIXELFORMATDESCRIPTOR-iPixelType + [ set-PIXELFORMATDESCRIPTOR-cColorBits ] keep + 16 over set-PIXELFORMATDESCRIPTOR-cDepthBits + PFD_MAIN_PLANE over set-PIXELFORMATDESCRIPTOR-dwLayerMask ; + + +LIBRARY: gl + + +! FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC ) ; +! FUNCTION: HDC ResetDC ( HDC hdc, DEVMODE* lpInitData ) ; +! FUNCTION: BOOL RestoreDC ( HDC hdc, int nSavedDC ) ; +! FUNCTION: int SaveDC( HDC hDC ) ; +! FUNCTION: HGDIOBJ SelectObject ( HDC hDC, HGDIOBJ hgdiobj ) ; + +FUNCTION: HGLRC wglCreateContext ( HDC hDC ) ; +FUNCTION: BOOL wglDeleteContext ( HGLRC hRC ) ; +FUNCTION: BOOL wglMakeCurrent ( HDC hDC, HGLRC hglrc ) ; + + diff --git a/library/win32/types.factor b/library/win32/types.factor new file mode 100644 index 0000000000..3512b004a8 --- /dev/null +++ b/library/win32/types.factor @@ -0,0 +1,358 @@ +USING: alien namespaces kernel words ; +IN: win32-api + +! http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_data_types.asp + +SYMBOL: unicode f unicode set +: unicode-exec ( unicode-func ascii-func -- func ) + unicode get [ + drop execute + ] [ + nip execute + ] if ; inline + +: unicode? unicode get ; inline + +: win64? f ; + +! win64 +! char uchar short ushort int uint long ulong longlong ulonglong +! 1 1 2 2 * * ? +! win32 +! char uchar short ushort int uint long ulong longlong ulonglong +! 1 1 2 2 * * 4 4 8 8 + + +TYPEDEF: char CHAR +TYPEDEF: uchar UCHAR +TYPEDEF: uchar BYTE + +TYPEDEF: short wchar_t +TYPEDEF: wchar_t WCHAR + +TYPEDEF: short SHORT +TYPEDEF: ushort USHORT + +TYPEDEF: ushort WORD +TYPEDEF: ulong DWORD + +TYPEDEF: int INT +TYPEDEF: uint UINT + +TYPEDEF: int BOOL + +TYPEDEF: int* PINT +TYPEDEF: int* LPINT +TYPEDEF: int HFILE + +TYPEDEF: long LONG +TYPEDEF: long* LPLONG +TYPEDEF: long LONG_PTR +TYPEDEF: long* PLONG_PTR + +TYPEDEF: uint ULONG +TYPEDEF: ulong ULONG_PTR +TYPEDEF: ulong* PULONG_PTR + +TYPEDEF: void VOID +TYPEDEF: void* PVOID +TYPEDEF: void* LPVOID +TYPEDEF: void* LPCVOID + +TYPEDEF: float FLOAT +win64? [ + ! TODO: check these! + TYPEDEF: INT32 HALF_PTR + TYPEDEF: UINT32 UHALF_PTR + TYPEDEF: long INT_PTR + TYPEDEF: ulong UINT_PTR + + TYPEDEF: longlong LONG_PTR ! 64bit + TYPEDEF: ulonglong ULONG_PTR ! 64bit + + TYPEDEF: int INT32 + TYPEDEF: uint UINT32 + TYPEDEF: uint DWORD32 + TYPEDEF: uint ULONG32 + TYPEDEF: ulong ULONG64 + TYPEDEF: int* POINTER_32 + TYPEDEF: long* POINTER_64 + TYPEDEF: longlong INT64 + TYPEDEF: ulonglong UINT64 + TYPEDEF: longlong LONGLONG ! 64bit + TYPEDEF: ulonglong ULONGLONG + TYPEDEF: longlong LONG64 + TYPEDEF: ulonglong DWORD64 + ] [ + TYPEDEF: short HALF_PTR + TYPEDEF: ushort UHALF_PTR + TYPEDEF: int INT_PTR + TYPEDEF: uint UINT_PTR + + TYPEDEF: int LONG_PTR + TYPEDEF: ulong ULONG_PTR + + TYPEDEF: int INT32 + TYPEDEF: uint UINT32 + TYPEDEF: uint DWORD32 + TYPEDEF: ulong ULONG32 + TYPEDEF: ulonglong ULONG64 + TYPEDEF: long* POINTER_32 + TYPEDEF: longlong* POINTER_64 + TYPEDEF: longlong INT64 + TYPEDEF: ulonglong UINT64 + TYPEDEF: longlong LONGLONG + TYPEDEF: ulonglong ULONGLONG + TYPEDEF: longlong LONG64 + TYPEDEF: ulonglong DWORD64 +] if + +unicode? [ + TYPEDEF: WCHAR TBYTE + TYPEDEF: WCHAR TCHAR + ] [ + TYPEDEF: uchar TBYTE + TYPEDEF: char TCHAR +] if + +! Below down is based on the above definitions +! There should be no 32/64bit issues + +TYPEDEF: WORD ATOM +TYPEDEF: BYTE BOOLEAN +! TYPEDEF: __stdcall CALLBACK +TYPEDEF: DWORD COLORREF +TYPEDEF: ULONGLONG DWORDLONG +TYPEDEF: ULONG_PTR DWORD_PTR +TYPEDEF: PVOID HANDLE +TYPEDEF: HANDLE HACCEL +TYPEDEF: HANDLE HBITMAP +TYPEDEF: HANDLE HBRUSH +TYPEDEF: HANDLE HCOLORSPACE +TYPEDEF: HANDLE HCONV +TYPEDEF: HANDLE HCONVLIST +TYPEDEF: HANDLE HICON +TYPEDEF: HICON HCURSOR +TYPEDEF: HANDLE HDC +TYPEDEF: HANDLE HDDEDATA +TYPEDEF: HANDLE HDESK +TYPEDEF: HANDLE HDROP +TYPEDEF: HANDLE HDWP +TYPEDEF: HANDLE HENMETAFILE +TYPEDEF: HANDLE HFONT +TYPEDEF: HANDLE HGDIOBJ +TYPEDEF: HANDLE HGLOBAL +TYPEDEF: HANDLE HHOOK +TYPEDEF: HANDLE HINSTANCE +TYPEDEF: HANDLE HKEY +TYPEDEF: HANDLE HKL +TYPEDEF: HANDLE HLOCAL +TYPEDEF: HANDLE HMENU +TYPEDEF: HANDLE HMETAFILE +TYPEDEF: HINSTANCE HMODULE +TYPEDEF: HANDLE HMONITOR +TYPEDEF: HANDLE HPALETTE +TYPEDEF: HANDLE HPEN +TYPEDEF: LONG HRESULT +TYPEDEF: HANDLE HRGN +TYPEDEF: HANDLE HRSRC +TYPEDEF: HANDLE HSZ +TYPEDEF: HANDLE WINSTA ! MS docs say typedef HANDLE WINSTA ; +TYPEDEF: HANDLE HWINSTA ! typo?? +TYPEDEF: HANDLE HWND +TYPEDEF: WORD LANGID +TYPEDEF: DWORD LCID +TYPEDEF: DWORD LCTYPE +TYPEDEF: DWORD LGRPID +TYPEDEF: LONG_PTR LPARAM +TYPEDEF: BOOL* LPBOOL +TYPEDEF: BYTE* LPBYTE +TYPEDEF: DWORD* LPCOLORREF +TYPEDEF: CHAR* LPCSTR +TYPEDEF: WCHAR* LPCWSTR +TYPEDEF: WCHAR* LPWSTR +unicode? [ + TYPEDEF: LPCWSTR LPCTSTR + TYPEDEF: LPWSTR LPTSTR + TYPEDEF: LPCWSTR PCTSTR + TYPEDEF: LPWSTR PTSTR + ] [ + TYPEDEF: LPCSTR LPCTSTR + TYPEDEF: LPSTR LPTSTR + TYPEDEF: LPCSTR PCTSTR + TYPEDEF: LPSTR PTSTR +] if +TYPEDEF: DWORD* LPDWORD +TYPEDEF: HANDLE* LPHANDLE +TYPEDEF: CHAR* LPSTR +TYPEDEF: WORD* LPWORD +TYPEDEF: WCHAR* LPWSTR +TYPEDEF: LONG_PTR LRESULT +TYPEDEF: BOOL* PBOOL +TYPEDEF: BOOLEAN* PBOOLEAN +TYPEDEF: BYTE* PBYTE +TYPEDEF: CHAR* PCHAR +TYPEDEF: CHAR* PCSTR +TYPEDEF: WCHAR* PCWSTR +TYPEDEF: DWORD* PDWORD +TYPEDEF: DWORDLONG* PDWORDLONG +TYPEDEF: DWORD_PTR* PDWORD_PTR +TYPEDEF: DWORD32* PDWORD32 +TYPEDEF: DWORD64* PDWORD64 +TYPEDEF: FLOAT* PFLOAT +TYPEDEF: HALF_PTR* PHALF_PTR +TYPEDEF: HANDLE* PHANDLE +TYPEDEF: HKEY* PHKEY +TYPEDEF: INT_PTR* PINT_PTR +TYPEDEF: INT32* PINT32 +TYPEDEF: INT64* PINT64 +TYPEDEF: PDWORD PLCID +TYPEDEF: LONG* PLONG +TYPEDEF: LONGLONG* PLONGLONG +TYPEDEF: LONG_PTR* PLONG_PTR +TYPEDEF: LONG32* PLONG32 +TYPEDEF: LONG64* PLONG64 +TYPEDEF: SHORT* PSHORT +TYPEDEF: SIZE_T* PSIZE_T +TYPEDEF: SSIZE_T* PSSIZE_T +TYPEDEF: CHAR* PSTR +TYPEDEF: TBYTE* PTBYTE +TYPEDEF: TCHAR* PTCHAR +TYPEDEF: UCHAR* PUCHAR +TYPEDEF: UHALF_PTR* PUHALF_PTR +TYPEDEF: UINT* PUINT +TYPEDEF: UINT_PTR* PUINT_PTR +TYPEDEF: UINT32* PUINT32 +TYPEDEF: UINT64* PUINT64 +TYPEDEF: ULONG* PULONG +TYPEDEF: ULONGLONG* PULONGLONG +TYPEDEF: ULONG_PTR* PULONG_PTR +TYPEDEF: ULONG32* PULONG32 +TYPEDEF: ULONG64* PULONG64 +TYPEDEF: USHORT* PUSHORT +TYPEDEF: WCHAR* PWCHAR +TYPEDEF: WORD* PWORD +TYPEDEF: WCHAR* PWSTR +TYPEDEF: HANDLE SC_HANDLE +TYPEDEF: LPVOID SC_LOCK +TYPEDEF: HANDLE SERVICE_STATUS_HANDLE +TYPEDEF: ULONG_PTR SIZE_T +TYPEDEF: LONG_PTR SSIZE_T +TYPEDEF: LONGLONG USN +! TYPEDEF: __stdcall WINAPI +TYPEDEF: UINT_PTR WPARAM + + + + +TYPEDEF: RECT* LPRECT +TYPEDEF: void* PWNDCLASS +TYPEDEF: void* PWNDCLASSEX + +TYPEDEF: void* WNDPROC + +! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM); + +BEGIN-STRUCT: WNDCLASS + FIELD: UINT style + FIELD: WNDPROC lpfnWndProc + FIELD: int cbClsExtra + FIELD: int cbWndExtra + FIELD: HINSTANCE hInstance + FIELD: HICON hIcon + FIELD: HCURSOR hCursor + FIELD: HBRUSH hbrBackground + FIELD: LPCTSTR lpszMenuName + FIELD: LPCTSTR lpszClassName +END-STRUCT + +BEGIN-STRUCT: WNDCLASSEX + FIELD: UINT cbSize + FIELD: UINT style + FIELD: WNDPROC lpfnWndProc + FIELD: int cbClsExtra + FIELD: int cbWndExtra + FIELD: HINSTANCE hInstance + FIELD: HICON hIcon + FIELD: HCURSOR hCursor + FIELD: HBRUSH hbrBackground + FIELD: LPCTSTR lpszMenuName + FIELD: LPCTSTR lpszClassName + FIELD: HICON hIconSm +END-STRUCT + +BEGIN-STRUCT: RECT + FIELD: LONG left + FIELD: LONG top + FIELD: LONG right + FIELD: LONG bottom +END-STRUCT + +BEGIN-STRUCT: PAINTSTRUCT + FIELD: HDC hdc + FIELD: BOOL fErase + FIELD: RECT rcPaint + FIELD: BOOL fRestore + FIELD: BOOL fIncUpdate + FIELD: BYTE rgbReserved[32] +END-STRUCT + +TYPEDEF: PAINTSTRUCT* LPPAINTSTRUCT + +BEGIN-STRUCT: POINT + FIELD: LONG x + FIELD: LONG y +END-STRUCT + +BEGIN-STRUCT: MSG + FIELD: HWND hWnd + FIELD: UINT message + FIELD: WPARAM wParam + FIELD: LPARAM lParam + FIELD: DWORD time + FIELD: POINT pt +END-STRUCT +TYPEDEF: MSG* LPMSG + +BEGIN-STRUCT: PIXELFORMATDESCRIPTOR + FIELD: WORD nSize + FIELD: WORD nVersion + FIELD: DWORD dwFlags + FIELD: BYTE iPixelType + FIELD: BYTE cColorBits + FIELD: BYTE cRedBits + FIELD: BYTE cRedShift + FIELD: BYTE cGreenBits + FIELD: BYTE cGreenShift + FIELD: BYTE cBlueBits + FIELD: BYTE cBlueShift + FIELD: BYTE cAlphaBits + FIELD: BYTE cAlphaShift + FIELD: BYTE cAccumBits + FIELD: BYTE cAccumRedBits + FIELD: BYTE cAccumGreenBits + FIELD: BYTE cAccumBlueBits + FIELD: BYTE cAccumAlphaBits + FIELD: BYTE cDepthBits + FIELD: BYTE cStencilBits + FIELD: BYTE cAuxBuffers + FIELD: BYTE iLayerType + FIELD: BYTE bReserved + FIELD: DWORD dwLayerMask + FIELD: DWORD dwVisibleMask + FIELD: DWORD dwDamageMask +END-STRUCT + +BEGIN-STRUCT: RECT + FIELD: LONG left + FIELD: LONG top + FIELD: LONG right + FIELD: LONG bottom +END-STRUCT + +TYPEDEF: RECT* PRECT +TYPEDEF: RECT* LPRECT +TYPEDEF: PIXELFORMATDESCRIPTOR PFD +TYPEDEF: PFD* LPPFD +TYPEDEF: HANDLE HGLRC +TYPEDEF: HANDLE HRGN diff --git a/library/win32/ui.factor b/library/win32/ui.factor new file mode 100644 index 0000000000..3146fe9e35 --- /dev/null +++ b/library/win32/ui.factor @@ -0,0 +1,274 @@ +USING: alien arrays errors freetype gadgets gadgets-launchpad gadgets-layouts + gadgets-listener hashtables io kernel lists math namespaces prettyprint + sequences strings vectors words win32-api-messages win32-api ; +USING: inspector threads memory ; +IN: win32 + +SYMBOL: windows +SYMBOL: msg-obj + +! 'SYMBOL: windows' is a hashtable of 'gadget-window' objects indexed by hWnd. +! hDC = handle to device context, hRC = handle to render context +TUPLE: gadget-window world hWnd hDC hRC ; + +: class-name "Factor" ; + +: get-world ( hWnd -- world ) windows get hash gadget-window-world ; +: get-gadget-window ( hWnd -- gadget-window ) + windows get hash ; + +: style ( -- n ) WS_OVERLAPPEDWINDOW ; inline +: ex-style ( -- n ) WS_EX_APPWINDOW WS_EX_WINDOWEDGE bitor ; inline + +: adjust-RECT ( RECT -- ) + style 0 ex-style AdjustWindowRectEx win32-error=0 ; + +: make-RECT ( width height -- RECT ) + "RECT" [ set-RECT-bottom ] keep [ set-RECT-right ] keep ; + +: make-adjusted-RECT ( width height -- RECT ) + make-RECT dup adjust-RECT ; + +: cleanup-gadget-window ( gadget-window -- ) + dup gadget-window-hRC wglDeleteContext win32-error=0 + [ gadget-window-hWnd ] keep gadget-window-hDC ReleaseDC win32-error=0 ; + +: get-RECT-dimensions ( RECT -- width height ) + [ RECT-right ] keep [ RECT-left - ] keep + [ RECT-bottom ] keep RECT-top - ; + +: handle-wm-paint ( hWnd uMsg wParam lParam -- ) + #! wParam and lParam are unused + 3drop get-world redraw-world ; + +: handle-wm-size ( hWnd uMsg wParam lParam -- ) + [ lo-word ] keep hi-word make-RECT get-RECT-dimensions 0 3array + 2nip + dup { 0 0 0 } = [ + 2drop + ] [ + swap get-world set-gadget-dim + ] if ; + +: wm-keydown-codes ( n -- key ) + H{ + { 8 "BACKSPACE" } + { 9 "TAB" } + { 13 "RETURN" } + { 27 "ESCAPE" } + { 33 "PAGE_UP" } + { 34 "PAGE_DOWN" } + { 35 "END" } + { 36 "HOME" } + { 37 "LEFT" } + { 38 "UP" } + { 39 "RIGHT" } + { 40 "DOWN" } + { 45 "INSERT" } + { 46 "DELETE" } + } ; + +: wm-char-exclude-keys + H{ + { 8 "BACKSPACE" } + { 13 "RETURN" } + } ; + +: handle-key? ( n -- bool ) wm-keydown-codes hash* nip ; +: exclude-key? ( n -- bool ) wm-char-exclude-keys hash* nip ; +: keystroke>gesture ( n -- list ) wm-keydown-codes hash unit ; + +SYMBOL: lParam +SYMBOL: wParam +SYMBOL: uMsg +SYMBOL: hWnd + +! wparam = keystroke, lparam = parameters +: handle-wm-keydown ( hWnd uMsg wParam lParam -- ) + lParam set wParam set uMsg set hWnd set + wParam get handle-key? [ + wParam get keystroke>gesture + hWnd get get-world world-focus handle-gesture 0 + ] [ + hWnd get uMsg get wParam get lParam get DefWindowProc + ] if ; + +: handle-wm-destroy ( hWnd uMsg wParam lParam -- ) + 3drop + + [ + get-gadget-window + dup gadget-window-world close-world + cleanup-gadget-window + ] keep + windows get remove-hash + 0 PostQuitMessage ; + + +: handle-wm-char ( hWnd uMsg wParam lParam -- ) + lParam set wParam set uMsg set hWnd set + wParam get exclude-key? [ + hWnd get uMsg get wParam get lParam get DefWindowProc + ] [ + wParam get ch>string hWnd get get-world world-focus user-input + 0 ! retval + ] if ; + +! TODO: handle alt keystrokes as gestures +: handle-wm-syschar ( hWnd uMsg wParam lParam -- ) + lParam set wParam set uMsg set hWnd set + ; + +: mouse-button ( uMsg -- n ) + { + { [ dup WM_LBUTTONDOWN = ] [ drop 1 ] } + { [ dup WM_LBUTTONUP = ] [ drop 1 ] } + { [ dup WM_MBUTTONDOWN = ] [ drop 2 ] } + { [ dup WM_MBUTTONUP = ] [ drop 2 ] } + { [ dup WM_RBUTTONDOWN = ] [ drop 3 ] } + { [ dup WM_RBUTTONUP = ] [ drop 3 ] } + { [ t ] [ "bad button" throw ] } + } cond ; + +: mouse-coordinate ( lParam -- seq ) [ lo-word ] keep hi-word 0 3array ; +: mouse-wheel ( lParam -- n ) hi-word 0 > 1 -1 ? ; + +: prepare-mouse ( hWnd uMsg wParam lParam -- ) + nip >r mouse-button r> mouse-coordinate rot get-world ; + +: handle-wm-buttondown ( hWnd uMsg wParam lParam -- ) + prepare-mouse send-button-down ; + +: handle-wm-buttonup ( hWnd uMsg wParam lParam -- ) + prepare-mouse send-button-up ; + +: handle-wm-mousemove ( hWnd uMsg wParam lParam -- ) + 2nip mouse-coordinate swap get-world move-hand ; + +: handle-wm-mousewheel ( hWnd uMsg wParam lParam -- ) + mouse-coordinate >r mouse-wheel nip r> rot get-world send-wheel ; + +! return 0 if you handle the message, else just let DefWindowProc return its val +: ui-wndproc ( hWnd uMsg wParam lParam -- lresult ) + "uint" { "void*" "uint" "long" "long" } [ + [ + pick + ! "Message: " write dup get-windows-message-name write + ! " " write dup unparse print + { + { [ dup WM_DESTROY = ] [ drop handle-wm-destroy 0 ] } + { [ dup WM_PAINT = ] [ drop handle-wm-paint 0 ] } + { [ dup WM_SIZE = ] [ drop handle-wm-size 0 ] } + + ! Keyboard events + { [ dup WM_KEYDOWN = over WM_SYSKEYDOWN = or ] + [ drop handle-wm-keydown ] } + { [ dup WM_CHAR = over WM_SYSCHAR = or ] + [ drop handle-wm-char ] } + + ! Mouse events + { [ dup WM_LBUTTONDOWN = ] [ drop handle-wm-buttondown 0 ] } + { [ dup WM_MBUTTONDOWN = ] [ drop handle-wm-buttondown 0 ] } + { [ dup WM_RBUTTONDOWN = ] [ drop handle-wm-buttondown 0 ] } + { [ dup WM_LBUTTONUP = ] [ drop handle-wm-buttonup 0 ] } + { [ dup WM_MBUTTONUP = ] [ drop handle-wm-buttonup 0 ] } + { [ dup WM_RBUTTONUP = ] [ drop handle-wm-buttonup 0 ] } + { [ dup WM_MOUSEMOVE = ] [ drop handle-wm-mousemove 0 ] } + { [ dup WM_MOUSEWHEEL = ] [ drop handle-wm-mousewheel 0 ] } + + { [ t ] [ drop DefWindowProc ] } + } cond + ] catch [ error. 0 ] when* + ] alien-callback ; + +: event-loop ( -- ) + msg-obj get f 0 0 PM_REMOVE PeekMessage + zero? not [ + msg-obj get MSG-message WM_QUIT = [ + msg-obj get [ TranslateMessage drop ] keep DispatchMessage drop + ] unless + ] when + ui-step windows get hash-empty? [ event-loop ] unless ; + +: register-wndclassex ( classname wndproc -- ) + "WNDCLASSEX" + "WNDCLASSEX" c-size over set-WNDCLASSEX-cbSize + CS_HREDRAW CS_VREDRAW bitor CS_OWNDC bitor over set-WNDCLASSEX-style + [ set-WNDCLASSEX-lpfnWndProc ] keep + 0 over set-WNDCLASSEX-cbClsExtra + 0 over set-WNDCLASSEX-cbWndExtra + f GetModuleHandle over set-WNDCLASSEX-hInstance + f IDI_APPLICATION LoadIcon over set-WNDCLASSEX-hIcon + f IDC_ARROW LoadCursor over set-WNDCLASSEX-hCursor + [ set-WNDCLASSEX-lpszClassName ] keep + RegisterClassEx dup win32-error=0 ; + + +: create-window ( className title width height -- hwnd ) + make-adjusted-RECT + >r >r >r ex-style r> r> + WS_CLIPSIBLINGS WS_CLIPCHILDREN bitor style bitor + 0 0 r> + get-RECT-dimensions + f f f GetModuleHandle f CreateWindowEx dup win32-error=0 ; + +: show-window ( hWnd -- ) + dup SW_SHOW ShowWindow drop ! always succeeds + dup SetForegroundWindow drop + SetFocus drop ; + +: init-win32-ui + "MSG" msg-obj set + class-name ui-wndproc register-wndclassex win32-error=0 + H{ } clone windows set + init-ui ; + +: cleanup-win32-ui ( -- ) class-name f UnregisterClass drop ; + +: setup-pixel-format ( hdc -- ) + 16 make-pfd [ ChoosePixelFormat dup win32-error=0 ] 2keep + swapd SetPixelFormat win32-error=0 ; + +: get-dc ( hWnd -- hDC ) GetDC dup win32-error=0 ; + +: get-rc ( hDC -- hRC ) + dup wglCreateContext dup win32-error=0 + [ wglMakeCurrent win32-error=0 ] keep ; + +: setup-gl ( hwnd -- hDC hRC ) + get-dc + dup setup-pixel-format + dup get-rc ; + +: make-gadget-window ( world title -- ) + class-name swap pick rect-dim first2 create-window + dup setup-gl ; + +IN: gadgets + +: open-window* ( world title -- ) + make-gadget-window + [ [ gadget-window-hWnd ] keep gadget-window-world set-world-handle ] keep + dup gadget-window-hWnd [ windows get set-hash ] keep show-window ; + +: select-gl-context ( handle -- ) + get-gadget-window + [ + [ gadget-window-hDC ] keep gadget-window-hRC + wglMakeCurrent win32-error=0 + ] when* ; + +: flush-gl-context ( handle -- ) + get-gadget-window [ gadget-window-hDC SwapBuffers win32-error=0 ] when* ; + +IN: shells +: ui + [ + [ + init-win32-ui + launchpad-window + listener-window + event-loop + ] with-freetype + ] [ cleanup-win32-ui ] cleanup ; + diff --git a/library/win32/user32.factor b/library/win32/user32.factor new file mode 100644 index 0000000000..a63a0a3623 --- /dev/null +++ b/library/win32/user32.factor @@ -0,0 +1,1371 @@ +USING: alien parser namespaces kernel syntax words math io prettyprint ; +IN: win32-api + + +TYPEDEF: void* MSGBOXPARAMSA +TYPEDEF: void* MSGBOXPARAMSW + + +! HKL for ActivateKeyboardLayout +: HKL_PREV 0 ; +: HKL_NEXT 1 ; + +: CW_USEDEFAULT HEX: 80000000 ; + +: WS_OVERLAPPED HEX: 00000000 ; +: WS_POPUP HEX: 80000000 ; +: WS_CHILD HEX: 40000000 ; +: WS_MINIMIZE HEX: 20000000 ; +: WS_VISIBLE HEX: 10000000 ; +: WS_DISABLED HEX: 08000000 ; +: WS_CLIPSIBLINGS HEX: 04000000 ; +: WS_CLIPCHILDREN HEX: 02000000 ; +: WS_MAXIMIZE HEX: 01000000 ; +: WS_CAPTION HEX: 00C00000 ; ! /* WS_BORDER | WS_DLGFRAME */ +: WS_BORDER HEX: 00800000 ; +: WS_DLGFRAME HEX: 00400000 ; +: WS_VSCROLL HEX: 00200000 ; +: WS_HSCROLL HEX: 00100000 ; +: WS_SYSMENU HEX: 00080000 ; +: WS_THICKFRAME HEX: 00040000 ; +: WS_GROUP HEX: 00020000 ; +: WS_TABSTOP HEX: 00010000 ; +: WS_MINIMIZEBOX HEX: 00020000 ; +: WS_MAXIMIZEBOX HEX: 00010000 ; + +! Common window styles +: WS_OVERLAPPEDWINDOW WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX bitor bitor bitor bitor bitor ; + +: WS_POPUPWINDOW WS_POPUP WS_BORDER WS_SYSMENU bitor bitor ; + +: WS_CHILDWINDOW WS_CHILD ; + +: WS_TILED WS_OVERLAPPED ; +: WS_ICONIC WS_MINIMIZE ; +: WS_SIZEBOX WS_THICKFRAME ; +: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW ; + + + +! Extended window styles + +: WS_EX_DLGMODALFRAME HEX: 00000001 ; inline +: WS_EX_NOPARENTNOTIFY HEX: 00000004 ; inline +: WS_EX_TOPMOST HEX: 00000008 ; inline +: WS_EX_ACCEPTFILES HEX: 00000010 ; inline +: WS_EX_TRANSPARENT HEX: 00000020 ; inline +: WS_EX_MDICHILD HEX: 00000040 ; inline +: WS_EX_TOOLWINDOW HEX: 00000080 ; inline +: WS_EX_WINDOWEDGE HEX: 00000100 ; inline +: WS_EX_CLIENTEDGE HEX: 00000200 ; inline +: WS_EX_CONTEXTHELP HEX: 00000400 ; inline + +: WS_EX_RIGHT HEX: 00001000 ; inline +: WS_EX_LEFT HEX: 00000000 ; inline +: WS_EX_RTLREADING HEX: 00002000 ; inline +: WS_EX_LTRREADING HEX: 00000000 ; inline +: WS_EX_LEFTSCROLLBAR HEX: 00004000 ; inline +: WS_EX_RIGHTSCROLLBAR HEX: 00000000 ; inline +: WS_EX_CONTROLPARENT HEX: 00010000 ; inline +: WS_EX_STATICEDGE HEX: 00020000 ; inline +: WS_EX_APPWINDOW HEX: 00040000 ; inline +: WS_EX_OVERLAPPEDWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; inline +: WS_EX_PALETTEWINDOW + WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW bitor WS_EX_TOPMOST bitor ; inline + + +: CS_VREDRAW HEX: 0001 ; +: CS_HREDRAW HEX: 0002 ; +: CS_DBLCLKS HEX: 0008 ; +: CS_OWNDC HEX: 0020 ; +: CS_CLASSDC HEX: 0040 ; +: CS_PARENTDC HEX: 0080 ; +: CS_NOCLOSE HEX: 0200 ; +: CS_SAVEBITS HEX: 0800 ; +: CS_BYTEALIGNCLIENT HEX: 1000 ; +: CS_BYTEALIGNWINDOW HEX: 2000 ; +: CS_GLOBALCLASS HEX: 4000 ; + +: COLOR_SCROLLBAR 0 ; +: COLOR_BACKGROUND 1 ; +: COLOR_ACTIVECAPTION 2 ; +: COLOR_INACTIVECAPTION 3 ; +: COLOR_MENU 4 ; +: COLOR_WINDOW 5 ; +: COLOR_WINDOWFRAME 6 ; +: COLOR_MENUTEXT 7 ; +: COLOR_WINDOWTEXT 8 ; +: COLOR_CAPTIONTEXT 9 ; +: COLOR_ACTIVEBORDER 10 ; +: COLOR_INACTIVEBORDER 11 ; +: COLOR_APPWORKSPACE 12 ; +: COLOR_HIGHLIGHT 13 ; +: COLOR_HIGHLIGHTTEXT 14 ; +: COLOR_BTNFACE 15 ; +: COLOR_BTNSHADOW 16 ; +: COLOR_GRAYTEXT 17 ; +: COLOR_BTNTEXT 18 ; +: COLOR_INACTIVECAPTIONTEXT 19 ; +: COLOR_BTNHIGHLIGHT 20 ; + +: IDI_APPLICATION 32512 ; +: IDI_HAND 32513 ; +: IDI_QUESTION 32514 ; +: IDI_EXCLAMATION 32515 ; +: IDI_ASTERISK 32516 ; +: IDI_WINLOGO 32517 ; + +! ShowWindow() Commands +: SW_HIDE 0 ; +: SW_SHOWNORMAL 1 ; +: SW_NORMAL 1 ; +: SW_SHOWMINIMIZED 2 ; +: SW_SHOWMAXIMIZED 3 ; +: SW_MAXIMIZE 3 ; +: SW_SHOWNOACTIVATE 4 ; +: SW_SHOW 5 ; +: SW_MINIMIZE 6 ; +: SW_SHOWMINNOACTIVE 7 ; +: SW_SHOWNA 8 ; +: SW_RESTORE 9 ; +: SW_SHOWDEFAULT 10 ; +: SW_FORCEMINIMIZE 11 ; +: SW_MAX 11 ; + +! PeekMessage +: PM_NOREMOVE 0 ; +: PM_REMOVE 1 ; +: PM_NOYIELD 2 ; +! : PM_QS_INPUT (QS_INPUT << 16) ; +! : PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) ; +! : PM_QS_PAINT (QS_PAINT << 16) ; +! : PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16) ; + + +! +! Standard Cursor IDs +! +: IDC_ARROW 32512 ; +: IDC_IBEAM 32513 ; +: IDC_WAIT 32514 ; +: IDC_CROSS 32515 ; +: IDC_UPARROW 32516 ; +: IDC_SIZE 32640 ; ! OBSOLETE: use IDC_SIZEALL +: IDC_ICON 32641 ; ! OBSOLETE: use IDC_ARROW +: IDC_SIZENWSE 32642 ; +: IDC_SIZENESW 32643 ; +: IDC_SIZEWE 32644 ; +: IDC_SIZENS 32645 ; +: IDC_SIZEALL 32646 ; +: IDC_NO 32648 ; ! not in win3.1 +: IDC_HAND 32649 ; +: IDC_APPSTARTING 32650 ; ! not in win3.1 +: IDC_HELP 32651 ; + + + + + +! Predefined Clipboard Formats +: CF_TEXT 1 ; inline +: CF_BITMAP 2 ; inline +: CF_METAFILEPICT 3 ; inline +: CF_SYLK 4 ; inline +: CF_DIF 5 ; inline +: CF_TIFF 6 ; inline +: CF_OEMTEXT 7 ; inline +: CF_DIB 8 ; inline +: CF_PALETTE 9 ; inline +: CF_PENDATA 10 ; inline +: CF_RIFF 11 ; inline +: CF_WAVE 12 ; inline +: CF_UNICODETEXT 13 ; inline +: CF_ENHMETAFILE 14 ; inline +: CF_HDROP 15 ; inline +: CF_LOCALE 16 ; inline +: CF_DIBV5 17 ; inline +: CF_MAX 18 ; inline + +: CF_OWNERDISPLAY HEX: 0080 ; inline +: CF_DSPTEXT HEX: 0081 ; inline +: CF_DSPBITMAP HEX: 0082 ; inline +: CF_DSPMETAFILEPICT HEX: 0083 ; inline +: CF_DSPENHMETAFILE HEX: 008E ; inline + +! "Private" formats don't get GlobalFree()'d +: CF_PRIVATEFIRST HEX: 200 ; inline +: CF_PRIVATELAST HEX: 2FF ; inline + + + + + +! "GDIOBJ" formats do get DeleteObject()'d +: CF_GDIOBJFIRST HEX: 300 ; inline +: CF_GDIOBJLAST HEX: 3FF ; inline + + +: WM_NULL 0 ; inline +: WM_CREATE 1 ; inline +: WM_DESTROY 2 ; inline +: WM_MOVE 3 ; inline +: WM_SIZE 5 ; inline +: WM_ACTIVATE 6 ; inline + + +! Virtual Keys, Standard Set +: VK_LBUTTON HEX: 01 ; inline +: VK_RBUTTON HEX: 02 ; inline +: VK_CANCEL HEX: 03 ; inline +: VK_MBUTTON HEX: 04 ; inline ! NOT contiguous with L & RBUTTON +: VK_XBUTTON1 HEX: 05 ; inline ! NOT contiguous with L & RBUTTON +: VK_XBUTTON2 HEX: 06 ; inline ! NOT contiguous with L & RBUTTON +! 0x07 : unassigned +: VK_BACK HEX: 08 ; inline +: VK_TAB HEX: 09 ; inline +! 0x0A - 0x0B : reserved + +: VK_CLEAR HEX: 0C ; inline +: VK_RETURN HEX: 0D ; inline + +: VK_SHIFT HEX: 10 ; inline +: VK_CONTROL HEX: 11 ; inline +: VK_MENU HEX: 12 ; inline +: VK_PAUSE HEX: 13 ; inline +: VK_CAPITAL HEX: 14 ; inline + +: VK_KANA HEX: 15 ; inline +: VK_HANGEUL HEX: 15 ; inline ! old name - here for compatibility +: VK_HANGUL HEX: 15 ; inline +: VK_JUNJA HEX: 17 ; inline +: VK_FINAL HEX: 18 ; inline +: VK_HANJA HEX: 19 ; inline +: VK_KANJI HEX: 19 ; inline + +: VK_ESCAPE HEX: 1B ; inline + +: VK_CONVERT HEX: 1C ; inline +: VK_NONCONVERT HEX: 1D ; inline +: VK_ACCEPT HEX: 1E ; inline +: VK_MODECHANGE HEX: 1F ; inline + +: VK_SPACE HEX: 20 ; inline +: VK_PRIOR HEX: 21 ; inline +: VK_NEXT HEX: 22 ; inline +: VK_END HEX: 23 ; inline +: VK_HOME HEX: 24 ; inline +: VK_LEFT HEX: 25 ; inline +: VK_UP HEX: 26 ; inline +: VK_RIGHT HEX: 27 ; inline +: VK_DOWN HEX: 28 ; inline +: VK_SELECT HEX: 29 ; inline +: VK_PRINT HEX: 2A ; inline +: VK_EXECUTE HEX: 2B ; inline +: VK_SNAPSHOT HEX: 2C ; inline +: VK_INSERT HEX: 2D ; inline +: VK_DELETE HEX: 2E ; inline +: VK_HELP HEX: 2F ; inline + +! VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) +! 0x40 : unassigned +! VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) + +: VK_LWIN HEX: 5B ; inline +: VK_RWIN HEX: 5C ; inline +: VK_APPS HEX: 5D ; inline + +! 0x5E : reserved + +: VK_SLEEP HEX: 5F ; inline + +: VK_NUMPAD0 HEX: 60 ; inline +: VK_NUMPAD1 HEX: 61 ; inline +: VK_NUMPAD2 HEX: 62 ; inline +: VK_NUMPAD3 HEX: 63 ; inline +: VK_NUMPAD4 HEX: 64 ; inline +: VK_NUMPAD5 HEX: 65 ; inline +: VK_NUMPAD6 HEX: 66 ; inline +: VK_NUMPAD7 HEX: 67 ; inline +: VK_NUMPAD8 HEX: 68 ; inline +: VK_NUMPAD9 HEX: 69 ; inline +: VK_MULTIPLY HEX: 6A ; inline +: VK_ADD HEX: 6B ; inline +: VK_SEPARATOR HEX: 6C ; inline +: VK_SUBTRACT HEX: 6D ; inline +: VK_DECIMAL HEX: 6E ; inline +: VK_DIVIDE HEX: 6F ; inline +: VK_F1 HEX: 70 ; inline +: VK_F2 HEX: 71 ; inline +: VK_F3 HEX: 72 ; inline +: VK_F4 HEX: 73 ; inline +: VK_F5 HEX: 74 ; inline +: VK_F6 HEX: 75 ; inline +: VK_F7 HEX: 76 ; inline +: VK_F8 HEX: 77 ; inline +: VK_F9 HEX: 78 ; inline +: VK_F10 HEX: 79 ; inline +: VK_F11 HEX: 7A ; inline +: VK_F12 HEX: 7B ; inline +: VK_F13 HEX: 7C ; inline +: VK_F14 HEX: 7D ; inline +: VK_F15 HEX: 7E ; inline +: VK_F16 HEX: 7F ; inline +: VK_F17 HEX: 80 ; inline +: VK_F18 HEX: 81 ; inline +: VK_F19 HEX: 82 ; inline +: VK_F20 HEX: 83 ; inline +: VK_F21 HEX: 84 ; inline +: VK_F22 HEX: 85 ; inline +: VK_F23 HEX: 86 ; inline +: VK_F24 HEX: 87 ; inline + +! 0x88 - 0x8F : unassigned + +: VK_NUMLOCK HEX: 90 ; inline +: VK_SCROLL HEX: 91 ; inline + +! NEC PC-9800 kbd definitions +: VK_OEM_NEC_EQUAL HEX: 92 ; inline ! '=' key on numpad + +! Fujitsu/OASYS kbd definitions +: VK_OEM_FJ_JISHO HEX: 92 ; inline ! 'Dictionary' key +: VK_OEM_FJ_MASSHOU HEX: 93 ; inline ! 'Unregister word' key +: VK_OEM_FJ_TOUROKU HEX: 94 ; inline ! 'Register word' key +: VK_OEM_FJ_LOYA HEX: 95 ; inline ! 'Left OYAYUBI' key +: VK_OEM_FJ_ROYA HEX: 96 ; inline ! 'Right OYAYUBI' key + +! 0x97 - 0x9F : unassigned + +! VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. +! Used only as parameters to GetAsyncKeyState() and GetKeyState(). +! No other API or message will distinguish left and right keys in this way. +: VK_LSHIFT HEX: A0 ; inline +: VK_RSHIFT HEX: A1 ; inline +: VK_LCONTROL HEX: A2 ; inline +: VK_RCONTROL HEX: A3 ; inline +: VK_LMENU HEX: A4 ; inline +: VK_RMENU HEX: A5 ; inline + +: VK_BROWSER_BACK HEX: A6 ; inline +: VK_BROWSER_FORWARD HEX: A7 ; inline +: VK_BROWSER_REFRESH HEX: A8 ; inline +: VK_BROWSER_STOP HEX: A9 ; inline +: VK_BROWSER_SEARCH HEX: AA ; inline +: VK_BROWSER_FAVORITES HEX: AB ; inline +: VK_BROWSER_HOME HEX: AC ; inline + +: VK_VOLUME_MUTE HEX: AD ; inline +: VK_VOLUME_DOWN HEX: AE ; inline +: VK_VOLUME_UP HEX: AF ; inline +: VK_MEDIA_NEXT_TRACK HEX: B0 ; inline +: VK_MEDIA_PREV_TRACK HEX: B1 ; inline +: VK_MEDIA_STOP HEX: B2 ; inline +: VK_MEDIA_PLAY_PAUSE HEX: B3 ; inline +: VK_LAUNCH_MAIL HEX: B4 ; inline +: VK_LAUNCH_MEDIA_SELECT HEX: B5 ; inline +: VK_LAUNCH_APP1 HEX: B6 ; inline +: VK_LAUNCH_APP2 HEX: B7 ; inline + +! 0xB8 - 0xB9 : reserved + +: VK_OEM_1 HEX: BA ; inline ! ';:' for US +: VK_OEM_PLUS HEX: BB ; inline ! '+' any country +: VK_OEM_COMMA HEX: BC ; inline ! ',' any country +: VK_OEM_MINUS HEX: BD ; inline ! '-' any country +: VK_OEM_PERIOD HEX: BE ; inline ! '.' any country +: VK_OEM_2 HEX: BF ; inline ! '/?' for US +: VK_OEM_3 HEX: C0 ; inline ! '`~' for US + +! 0xC1 - 0xD7 : reserved + +! 0xD8 - 0xDA : unassigned + +: VK_OEM_4 HEX: DB ; inline ! '[{' for US +: VK_OEM_5 HEX: DC ; inline ! '\|' for US +: VK_OEM_6 HEX: DD ; inline ! ']}' for US +: VK_OEM_7 HEX: DE ; inline ! ''"' for US +: VK_OEM_8 HEX: DF ; inline + +! 0xE0 : reserved + +! Various extended or enhanced keyboards +: VK_OEM_AX HEX: E1 ; inline ! 'AX' key on Japanese AX kbd +: VK_OEM_102 HEX: E2 ; inline ! "<>" or "\|" on RT 102-key kbd. +: VK_ICO_HELP HEX: E3 ; inline ! Help key on ICO +: VK_ICO_00 HEX: E4 ; inline ! 00 key on ICO + +: VK_PROCESSKEY HEX: E5 ; inline + +: VK_ICO_CLEAR HEX: E6 ; inline + +: VK_PACKET HEX: E7 ; inline + +! 0xE8 : unassigned + +! Nokia/Ericsson definitions +: VK_OEM_RESET HEX: E9 ; inline +: VK_OEM_JUMP HEX: EA ; inline +: VK_OEM_PA1 HEX: EB ; inline +: VK_OEM_PA2 HEX: EC ; inline +: VK_OEM_PA3 HEX: ED ; inline +: VK_OEM_WSCTRL HEX: EE ; inline +: VK_OEM_CUSEL HEX: EF ; inline +: VK_OEM_ATTN HEX: F0 ; inline +: VK_OEM_FINISH HEX: F1 ; inline +: VK_OEM_COPY HEX: F2 ; inline +: VK_OEM_AUTO HEX: F3 ; inline +: VK_OEM_ENLW HEX: F4 ; inline +: VK_OEM_BACKTAB HEX: F5 ; inline + +: VK_ATTN HEX: F6 ; inline +: VK_CRSEL HEX: F7 ; inline +: VK_EXSEL HEX: F8 ; inline +: VK_EREOF HEX: F9 ; inline +: VK_PLAY HEX: FA ; inline +: VK_ZOOM HEX: FB ; inline +: VK_NONAME HEX: FC ; inline +: VK_PA1 HEX: FD ; inline +: VK_OEM_CLEAR HEX: FE ; inline +! 0xFF : reserved + +! Key State Masks for Mouse Messages +: MK_LBUTTON HEX: 0001 ; inline +: MK_RBUTTON HEX: 0002 ; inline +: MK_SHIFT HEX: 0004 ; inline +: MK_CONTROL HEX: 0008 ; inline +: MK_MBUTTON HEX: 0010 ; inline +: MK_XBUTTON1 HEX: 0020 ; inline +: MK_XBUTTON2 HEX: 0040 ; inline + + +! Some fields are not defined for win64 +! Window field offsets for GetWindowLong() +! TODO: win32 only!! +windows? [ + : GWL_WNDPROC -4 ; + : GWL_HINSTANCE -6 ; + : GWL_HWNDPARENT -8 ; + : GWL_USERDATA -21 ; + : GWL_ID -12 ; +] when + +: GWL_STYLE -16 ; +: GWL_EXSTYLE -20 ; + +: GWLP_WNDPROC -4 ; +: GWLP_HINSTANCE -6 ; +: GWLP_HWNDPARENT -8 ; +: GWLP_USERDATA -21 ; +: GWLP_ID -12 ; + +! Class field offsets for GetClassLong() +! TODO: win32 only! +windows? [ + : GCL_MENUNAME -8 ; + : GCL_HBRBACKGROUND -10 ; + : GCL_HCURSOR -12 ; + : GCL_HICON -14 ; + : GCL_HMODULE -16 ; + : GCL_WNDPROC -24 ; + : GCL_HICONSM -34 ; +] when +: GCL_CBWNDEXTRA -18 ; +: GCL_CBCLSEXTRA -20 ; +: GCL_STYLE -26 ; +: GCW_ATOM -32 ; + +: GCLP_MENUNAME -8 ; +: GCLP_HBRBACKGROUND -10 ; +: GCLP_HCURSOR -12 ; +: GCLP_HICON -14 ; +: GCLP_HMODULE -16 ; +: GCLP_WNDPROC -24 ; +: GCLP_HICONSM -34 ; + + + +LIBRARY: user32 +FUNCTION: HKL ActivateKeyboardLayout ( HKL hkl, UINT Flags ) ; + +FUNCTION: BOOL AdjustWindowRect ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu ) ; +FUNCTION: BOOL AdjustWindowRectEx ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle ) ; +! FUNCTION: AlignRects +! FUNCTION: AllowForegroundActivation +! FUNCTION: AllowSetForegroundWindow +! FUNCTION: AnimateWindow + + + +FUNCTION: BOOL AnyPopup ( ) ; + +! FUNCTION: AppendMenuA +! FUNCTION: AppendMenuW +! FUNCTION: ArrangeIconicWindows +! FUNCTION: AttachThreadInput +! FUNCTION: BeginDeferWindowPos + + +FUNCTION: HDC BeginPaint ( HWND hwnd, LPPAINTSTRUCT lpPaint ) ; + +! FUNCTION: BlockInput +! FUNCTION: BringWindowToTop +! FUNCTION: BroadcastSystemMessage +! FUNCTION: BroadcastSystemMessageA +! FUNCTION: BroadcastSystemMessageExA +! FUNCTION: BroadcastSystemMessageExW +! FUNCTION: BroadcastSystemMessageW +! FUNCTION: BuildReasonArray +! FUNCTION: CalcMenuBar +! FUNCTION: CallMsgFilter +! FUNCTION: CallMsgFilterA +! FUNCTION: CallMsgFilterW +! FUNCTION: CallNextHookEx +! FUNCTION: CallWindowProcA +! FUNCTION: CallWindowProcW +! FUNCTION: CascadeChildWindows +! FUNCTION: CascadeWindows +! FUNCTION: ChangeClipboardChain +! FUNCTION: ChangeDisplaySettingsA +! FUNCTION: ChangeDisplaySettingsExA +! FUNCTION: ChangeDisplaySettingsExW +! FUNCTION: ChangeDisplaySettingsW +! FUNCTION: ChangeMenuA +! FUNCTION: ChangeMenuW +! FUNCTION: CharLowerA +! FUNCTION: CharLowerBuffA +! FUNCTION: CharLowerBuffW +! FUNCTION: CharLowerW +! FUNCTION: CharNextA +! FUNCTION: CharNextExA +! FUNCTION: CharNextW +! FUNCTION: CharPrevA +! FUNCTION: CharPrevExA +! FUNCTION: CharPrevW +! FUNCTION: CharToOemA +! FUNCTION: CharToOemBuffA +! FUNCTION: CharToOemBuffW +! FUNCTION: CharToOemW +! FUNCTION: CharUpperA +! FUNCTION: CharUpperBuffA +! FUNCTION: CharUpperBuffW +! FUNCTION: CharUpperW +! FUNCTION: CheckDlgButton +! FUNCTION: CheckMenuItem +! FUNCTION: CheckMenuRadioItem +! FUNCTION: CheckRadioButton +! FUNCTION: ChildWindowFromPoint +! FUNCTION: ChildWindowFromPointEx +! FUNCTION: ClientThreadSetup +! FUNCTION: ClientToScreen +! FUNCTION: CliImmSetHotKey +! FUNCTION: ClipCursor +FUNCTION: BOOL CloseClipboard ( ) ; +! FUNCTION: CloseDesktop +! FUNCTION: CloseWindow +! FUNCTION: CloseWindowStation +! FUNCTION: CopyAcceleratorTableA +! FUNCTION: CopyAcceleratorTableW +! FUNCTION: CopyIcon +! FUNCTION: CopyImage +! FUNCTION: CopyRect +! FUNCTION: CountClipboardFormats +! FUNCTION: CreateAcceleratorTableA +! FUNCTION: CreateAcceleratorTableW +! FUNCTION: CreateCaret +! FUNCTION: CreateCursor +! FUNCTION: CreateDesktopA +! FUNCTION: CreateDesktopW +! FUNCTION: CreateDialogIndirectParamA +! FUNCTION: CreateDialogIndirectParamAorW +! FUNCTION: CreateDialogIndirectParamW +! FUNCTION: CreateDialogParamA +! FUNCTION: CreateDialogParamW +! FUNCTION: CreateIcon +! FUNCTION: CreateIconFromResource +! FUNCTION: CreateIconFromResourceEx +! FUNCTION: CreateIconIndirect +! FUNCTION: CreateMDIWindowA +! FUNCTION: CreateMDIWindowW +! FUNCTION: CreateMenu +! FUNCTION: CreatePopupMenu +! FUNCTION: CreateSystemThreads + +FUNCTION: HWND CreateWindowExA ( + DWORD dwExStyle, + LPCSTR lpClassName, + LPCSTR lpWindowName, + DWORD dwStyle, + uint X, + uint Y, + uint nWidth, + uint nHeight, + HWND hWndParent, + HMENU hMenu, + HINSTANCE hInstance, + LPVOID lpParam ) ; + +FUNCTION: HWND CreateWindowExW ( + DWORD dwExStyle, + LPCWSTR lpClassName, + LPCWSTR lpWindowName, + DWORD dwStyle, + uint X, + uint Y, + uint nWidth, + uint nHeight, + HWND hWndParent, + HMENU hMenu, + HINSTANCE hInstance, + LPVOID lpParam ) ; + +: CreateWindowEx \ CreateWindowExW \ CreateWindowExA unicode-exec ; + +! 11 >r r >r >r >r >r >r >r >r >r >r >r 0 r> r> r> r> r> r> r> r> r> r> r> CreateWindowEx ; + + +! FUNCTION: CreateWindowStationA +! FUNCTION: CreateWindowStationW +! FUNCTION: CsrBroadcastSystemMessageExW +! FUNCTION: CtxInitUser32 +! FUNCTION: DdeAbandonTransaction +! FUNCTION: DdeAccessData +! FUNCTION: DdeAddData +! FUNCTION: DdeClientTransaction +! FUNCTION: DdeCmpStringHandles +! FUNCTION: DdeConnect +! FUNCTION: DdeConnectList +! FUNCTION: DdeCreateDataHandle +! FUNCTION: DdeCreateStringHandleA +! FUNCTION: DdeCreateStringHandleW +! FUNCTION: DdeDisconnect +! FUNCTION: DdeDisconnectList +! FUNCTION: DdeEnableCallback +! FUNCTION: DdeFreeDataHandle +! FUNCTION: DdeFreeStringHandle +! FUNCTION: DdeGetData +! FUNCTION: DdeGetLastError +! FUNCTION: DdeGetQualityOfService +! FUNCTION: DdeImpersonateClient +! FUNCTION: DdeInitializeA +! FUNCTION: DdeInitializeW +! FUNCTION: DdeKeepStringHandle +! FUNCTION: DdeNameService +! FUNCTION: DdePostAdvise +! FUNCTION: DdeQueryConvInfo +! FUNCTION: DdeQueryNextServer +! FUNCTION: DdeQueryStringA +! FUNCTION: DdeQueryStringW +! FUNCTION: DdeReconnect +! FUNCTION: DdeSetQualityOfService +! FUNCTION: DdeSetUserHandle +! FUNCTION: DdeUnaccessData +! FUNCTION: DdeUninitialize +! FUNCTION: DefDlgProcA +! FUNCTION: DefDlgProcW +! FUNCTION: DeferWindowPos +! FUNCTION: DefFrameProcA +! FUNCTION: DefFrameProcW +! FUNCTION: DefMDIChildProcA +! FUNCTION: DefMDIChildProcW +! FUNCTION: DefRawInputProc +FUNCTION: LRESULT DefWindowProcA ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ) ; +FUNCTION: LRESULT DefWindowProcW ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ) ; +: DefWindowProc \ DefWindowProcW \ DefWindowProcA unicode-exec ; +! FUNCTION: DeleteMenu +! FUNCTION: DeregisterShellHookWindow +! FUNCTION: DestroyAcceleratorTable +! FUNCTION: DestroyCaret +! FUNCTION: DestroyCursor +! FUNCTION: DestroyIcon +! FUNCTION: DestroyMenu +! FUNCTION: DestroyReasons +FUNCTION: BOOL DestroyWindow ( HWND hWnd ) ; +! FUNCTION: DeviceEventWorker +! FUNCTION: DialogBoxIndirectParamA +! FUNCTION: DialogBoxIndirectParamAorW +! FUNCTION: DialogBoxIndirectParamW +! FUNCTION: DialogBoxParamA +! FUNCTION: DialogBoxParamW +! FUNCTION: DisableProcessWindowsGhosting + +FUNCTION: LONG DispatchMessageA ( MSG* lpMsg ) ; +FUNCTION: LONG DispatchMessageW ( MSG* lpMsg ) ; +: DispatchMessage \ DispatchMessageW \ DispatchMessageA unicode-exec ; + +! FUNCTION: DisplayExitWindowsWarnings +! FUNCTION: DlgDirListA +! FUNCTION: DlgDirListComboBoxA +! FUNCTION: DlgDirListComboBoxW +! FUNCTION: DlgDirListW +! FUNCTION: DlgDirSelectComboBoxExA +! FUNCTION: DlgDirSelectComboBoxExW +! FUNCTION: DlgDirSelectExA +! FUNCTION: DlgDirSelectExW +! FUNCTION: DragDetect +! FUNCTION: DragObject + + +FUNCTION: BOOL DrawAnimatedRects ( HWND hWnd, int idAni, RECT* lprcFrom, RECT* lprcTo ) ; +! FUNCTION: BOOL DrawCaption ( HWND hWnd, HDC hdc, LPRECT lprc, UINT uFlags ) ; + +! FUNCTION: DrawEdge +! FUNCTION: DrawFocusRect +! FUNCTION: DrawFrame +! FUNCTION: DrawFrameControl +! FUNCTION: DrawIcon +! FUNCTION: DrawIconEx +! FUNCTION: DrawMenuBar +! FUNCTION: DrawMenuBarTemp +! FUNCTION: DrawStateA +! FUNCTION: DrawStateW +! FUNCTION: DrawTextA +! FUNCTION: DrawTextExA +! FUNCTION: DrawTextExW +! FUNCTION: DrawTextW +! FUNCTION: EditWndProc +FUNCTION: BOOL EmptyClipboard ( ) ; +! FUNCTION: EnableMenuItem +! FUNCTION: EnableScrollBar +! FUNCTION: EnableWindow +! FUNCTION: EndDeferWindowPos +! FUNCTION: EndDialog +! FUNCTION: EndMenu + +FUNCTION: BOOL EndPaint ( HWND hWnd, PAINTSTRUCT* lpPaint) ; + +! FUNCTION: EndTask +! FUNCTION: EnterReaderModeHelper +! FUNCTION: EnumChildWindows +FUNCTION: UINT EnumClipboardFormats ( UINT format ) ; +! FUNCTION: EnumDesktopsA +! FUNCTION: EnumDesktopsW +! FUNCTION: EnumDesktopWindows +! FUNCTION: EnumDisplayDevicesA +! FUNCTION: EnumDisplayDevicesW +! FUNCTION: EnumDisplayMonitors +! FUNCTION: EnumDisplaySettingsA +! FUNCTION: EnumDisplaySettingsExA +! FUNCTION: EnumDisplaySettingsExW +! FUNCTION: EnumDisplaySettingsW +! FUNCTION: EnumPropsA +! FUNCTION: EnumPropsExA +! FUNCTION: EnumPropsExW +! FUNCTION: EnumPropsW +! FUNCTION: EnumThreadWindows +! FUNCTION: EnumWindows +! FUNCTION: EnumWindowStationsA +! FUNCTION: EnumWindowStationsW +! FUNCTION: EqualRect +! FUNCTION: ExcludeUpdateRgn +! FUNCTION: ExitWindowsEx +! FUNCTION: FillRect +! FUNCTION: FindWindowA +! FUNCTION: FindWindowExA +! FUNCTION: FindWindowExW +! FUNCTION: FindWindowW +! FUNCTION: FlashWindow +! FUNCTION: FlashWindowEx +! FUNCTION: FrameRect +! FUNCTION: FreeDDElParam +! FUNCTION: GetActiveWindow +! FUNCTION: GetAltTabInfo +! FUNCTION: GetAltTabInfoA +! FUNCTION: GetAltTabInfoW +! FUNCTION: GetAncestor +! FUNCTION: GetAppCompatFlags +! FUNCTION: GetAppCompatFlags2 +! FUNCTION: GetAsyncKeyState +! FUNCTION: GetCapture +! FUNCTION: GetCaretBlinkTime +! FUNCTION: GetCaretPos +FUNCTION: BOOL GetClassInfoA ( HINSTANCE hInst, LPCTSTR lpszClass, LPWNDCLASS lpwcx ) ; +FUNCTION: BOOL GetClassInfoW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASS lpwcx ) ; +: GetClassInfo \ GetClassInfoW \ GetClassInfoA unicode-exec ; + +FUNCTION: BOOL GetClassInfoExA ( HINSTANCE hInst, LPCTSTR lpszClass, LPWNDCLASSEX lpwcx ) ; +FUNCTION: BOOL GetClassInfoExW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASSEX lpwcx ) ; +: GetClassInfoEx \ GetClassInfoExW \ GetClassInfoExA unicode-exec ; + +FUNCTION: ULONG_PTR GetClassLongA ( HWND hWnd, int nIndex ) ; +FUNCTION: ULONG_PTR GetClassLongW ( HWND hWnd, int nIndex ) ; +: GetClassLong \ GetClassLongW \ GetClassLongA unicode-exec ; +: GetClassLongPtr \ GetClassLongW \ GetClassLongA unicode-exec ; + + +! FUNCTION: GetClassNameA +! FUNCTION: GetClassNameW +! FUNCTION: GetClassWord +! FUNCTION: BOOL GetClientRect ( HWND hWnd, LPRECT lpRect ) ; + +FUNCTION: HANDLE GetClipboardData ( UINT uFormat ) ; + +! FUNCTION: GetClipboardFormatNameA +! FUNCTION: GetClipboardFormatNameW +FUNCTION: HWND GetClipboardOwner ( ) ; +FUNCTION: DWORD GetClipboardSequenceNumber ( ) ; +! FUNCTION: GetClipboardViewer +! FUNCTION: GetClipCursor +! FUNCTION: GetComboBoxInfo +! FUNCTION: GetCursor +! FUNCTION: GetCursorFrameInfo +! FUNCTION: GetCursorInfo +! FUNCTION: GetCursorPos +FUNCTION: HDC GetDC ( HWND hWnd ) ; +FUNCTION: HDC GetDCEx ( HWND hWnd, HRGN hrgnClip, DWORD flags ) ; +! FUNCTION: GetDesktopWindow +! FUNCTION: GetDialogBaseUnits +! FUNCTION: GetDlgCtrlID +! FUNCTION: GetDlgItem +! FUNCTION: GetDlgItemInt +! FUNCTION: GetDlgItemTextA +! FUNCTION: GetDlgItemTextW +! FUNCTION: GetDoubleClickTime +FUNCTION: HWND GetFocus ( ) ; +! FUNCTION: GetForegroundWindow +! FUNCTION: GetGuiResources +! FUNCTION: GetGUIThreadInfo +! FUNCTION: GetIconInfo +! FUNCTION: GetInputDesktop +! FUNCTION: GetInputState +! FUNCTION: GetInternalWindowPos +! FUNCTION: GetKBCodePage +! FUNCTION: GetKeyboardLayout +! FUNCTION: GetKeyboardLayoutList +! FUNCTION: GetKeyboardLayoutNameA +! FUNCTION: GetKeyboardLayoutNameW +! FUNCTION: GetKeyboardState +! FUNCTION: GetKeyboardType +! FUNCTION: GetKeyNameTextA +! FUNCTION: GetKeyNameTextW +! FUNCTION: GetKeyState +! FUNCTION: GetLastActivePopup +! FUNCTION: GetLastInputInfo +! FUNCTION: GetLayeredWindowAttributes +! FUNCTION: GetListBoxInfo +! FUNCTION: GetMenu +! FUNCTION: GetMenuBarInfo +! FUNCTION: GetMenuCheckMarkDimensions +! FUNCTION: GetMenuContextHelpId +! FUNCTION: GetMenuDefaultItem +! FUNCTION: GetMenuInfo +! FUNCTION: GetMenuItemCount +! FUNCTION: GetMenuItemID +! FUNCTION: GetMenuItemInfoA +! FUNCTION: GetMenuItemInfoW +! FUNCTION: GetMenuItemRect +! FUNCTION: GetMenuState +! FUNCTION: GetMenuStringA +! FUNCTION: GetMenuStringW + +FUNCTION: BOOL GetMessageA ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) ; +FUNCTION: BOOL GetMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) ; +: GetMessage \ GetMessageW \ GetMessageA unicode-exec ; + +! FUNCTION: GetMessageExtraInfo +! FUNCTION: GetMessagePos +! FUNCTION: GetMessageTime +! FUNCTION: GetMonitorInfoA +! FUNCTION: GetMonitorInfoW +! FUNCTION: GetMouseMovePointsEx +! FUNCTION: GetNextDlgGroupItem +! FUNCTION: GetNextDlgTabItem +! FUNCTION: GetOpenClipboardWindow +FUNCTION: HWND GetParent ( HWND hWnd ) ; +FUNCTION: int GetPriorityClipboardFormat ( UINT* paFormatPriorityList, int cFormats ) ; +! FUNCTION: GetProcessDefaultLayout +! FUNCTION: GetProcessWindowStation +! FUNCTION: GetProgmanWindow +! FUNCTION: GetPropA +! FUNCTION: GetPropW +! FUNCTION: GetQueueStatus +! FUNCTION: GetRawInputBuffer +! FUNCTION: GetRawInputData +! FUNCTION: GetRawInputDeviceInfoA +! FUNCTION: GetRawInputDeviceInfoW +! FUNCTION: GetRawInputDeviceList +! FUNCTION: GetReasonTitleFromReasonCode +! FUNCTION: GetRegisteredRawInputDevices +! FUNCTION: GetScrollBarInfo +! FUNCTION: GetScrollInfo +! FUNCTION: GetScrollPos +! FUNCTION: GetScrollRange +! FUNCTION: GetShellWindow +! FUNCTION: GetSubMenu +! FUNCTION: GetSysColor +FUNCTION: HBRUSH GetSysColorBrush ( int nIndex ) ; +! FUNCTION: GetSystemMenu +! FUNCTION: GetSystemMetrics +! FUNCTION: GetTabbedTextExtentA +! FUNCTION: GetTabbedTextExtentW +! FUNCTION: GetTaskmanWindow +! FUNCTION: GetThreadDesktop +! FUNCTION: GetTitleBarInfo + + +FUNCTION: HWND GetTopWindow ( HWND hWnd ) ; +! FUNCTION: BOOL GetUpdateRect ( HWND hWnd, LPRECT lpRect, BOOL bErase ) ; +FUNCTION: int GetUpdateRgn ( HWND hWnd, HRGN hRgn, BOOL bErase ) ; + + +! FUNCTION: GetUserObjectInformationA +! FUNCTION: GetUserObjectInformationW +! FUNCTION: GetUserObjectSecurity +FUNCTION: HWND GetWindow ( HWND hWnd, UINT uCmd ) ; +! FUNCTION: GetWindowContextHelpId +! FUNCTION: GetWindowDC +! FUNCTION: GetWindowInfo +! FUNCTION: GetWindowLongA +! FUNCTION: GetWindowLongW +! FUNCTION: GetWindowModuleFileName +! FUNCTION: GetWindowModuleFileNameA +! FUNCTION: GetWindowModuleFileNameW +! FUNCTION: GetWindowPlacement +! FUNCTION: BOOL GetWindowRect ( HWND hWnd, LPRECT lpRect ) ; +! FUNCTION: GetWindowRgn +! FUNCTION: GetWindowRgnBox +! FUNCTION: GetWindowTextA +! FUNCTION: GetWindowTextLengthA +! FUNCTION: GetWindowTextLengthW +! FUNCTION: GetWindowTextW +! FUNCTION: GetWindowThreadProcessId +! FUNCTION: GetWindowWord +! FUNCTION: GetWinStationInfo +! FUNCTION: GrayStringA +! FUNCTION: GrayStringW +! FUNCTION: HideCaret +! FUNCTION: HiliteMenuItem +! FUNCTION: ImpersonateDdeClientWindow +! FUNCTION: IMPGetIMEA +! FUNCTION: IMPGetIMEW +! FUNCTION: IMPQueryIMEA +! FUNCTION: IMPQueryIMEW +! FUNCTION: IMPSetIMEA +! FUNCTION: IMPSetIMEW +! FUNCTION: InflateRect +! FUNCTION: InitializeLpkHooks +! FUNCTION: InitializeWin32EntryTable +! FUNCTION: InSendMessage +! FUNCTION: InSendMessageEx +! FUNCTION: InsertMenuA +! FUNCTION: InsertMenuItemA +! FUNCTION: InsertMenuItemW +! FUNCTION: InsertMenuW +! FUNCTION: InternalGetWindowText +! FUNCTION: IntersectRect +! FUNCTION: InvalidateRect +! FUNCTION: InvalidateRgn +! FUNCTION: InvertRect +! FUNCTION: IsCharAlphaA +! FUNCTION: IsCharAlphaNumericA +! FUNCTION: IsCharAlphaNumericW +! FUNCTION: IsCharAlphaW +! FUNCTION: IsCharLowerA +! FUNCTION: IsCharLowerW +! FUNCTION: IsCharUpperA +! FUNCTION: IsCharUpperW +FUNCTION: BOOL IsChild ( HWND hWndParent, HWND hWnd ) ; +FUNCTION: BOOL IsClipboardFormatAvailable ( UINT format ) ; +! FUNCTION: IsDialogMessage +! FUNCTION: IsDialogMessageA +! FUNCTION: IsDialogMessageW +! FUNCTION: IsDlgButtonChecked +FUNCTION: BOOL IsGUIThread ( BOOL bConvert ) ; +FUNCTION: BOOL IsHungAppWindow ( HWND hWnd ) ; +FUNCTION: BOOL IsIconic ( HWND hWnd ) ; +FUNCTION: BOOL IsMenu ( HMENU hMenu ) ; +! FUNCTION: BOOL IsRectEmpty +! FUNCTION: BOOL IsServerSideWindow +FUNCTION: BOOL IsWindow ( HWND hWnd ) ; +! FUNCTION: BOOL IsWindowEnabled +! FUNCTION: BOOL IsWindowInDestroy +FUNCTION: BOOL IsWindowUnicode ( HWND hWnd ) ; +FUNCTION: BOOL IsWindowVisible ( HWND hWnd ) ; +! FUNCTION: BOOL IsWinEventHookInstalled +FUNCTION: BOOL IsZoomed ( HWND hWnd ) ; +! FUNCTION: keybd_event +! FUNCTION: KillSystemTimer +! FUNCTION: KillTimer +! FUNCTION: LoadAcceleratorsA +! FUNCTION: LoadAcceleratorsW +! FUNCTION: LoadBitmapA +! FUNCTION: LoadBitmapW +! FUNCTION: LoadCursorFromFileA +! FUNCTION: LoadCursorFromFileW + + +! FUNCTION: HCURSOR LoadCursorA ( HINSTANCE hInstance, LPCTSTR lpCursorName ) ; +! FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, LPCWSTR lpCursorName ) ; +FUNCTION: HCURSOR LoadCursorA ( HINSTANCE hInstance, ushort lpCursorName ) ; +FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, ushort lpCursorName ) ; +: LoadCursor \ LoadCursorW \ LoadCursorA unicode-exec ; + +! FUNCTION: HICON LoadIconA ( HINSTANCE hInstance, LPCTSTR lpIconName ) ; +! FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCWSTR lpIconName ) ; +FUNCTION: HICON LoadIconA ( HINSTANCE hInstance, ushort lpIconName ) ; +FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, ushort lpIconName ) ; +: LoadIcon \ LoadIconW \ LoadIconA unicode-exec ; + +! FUNCTION: LoadImageA +! FUNCTION: LoadImageW +! FUNCTION: LoadKeyboardLayoutA +! FUNCTION: LoadKeyboardLayoutEx +! FUNCTION: LoadKeyboardLayoutW +! FUNCTION: LoadLocalFonts +! FUNCTION: LoadMenuA +! FUNCTION: LoadMenuIndirectA +! FUNCTION: LoadMenuIndirectW +! FUNCTION: LoadMenuW +! FUNCTION: LoadRemoteFonts +! FUNCTION: LoadStringA +! FUNCTION: LoadStringW +! FUNCTION: LockSetForegroundWindow +! FUNCTION: LockWindowStation +! FUNCTION: LockWindowUpdate +! FUNCTION: LockWorkStation +! FUNCTION: LookupIconIdFromDirectory +! FUNCTION: LookupIconIdFromDirectoryEx +! FUNCTION: MapDialogRect +! FUNCTION: MapVirtualKeyA +! FUNCTION: MapVirtualKeyExA +! FUNCTION: MapVirtualKeyExW +! FUNCTION: MapVirtualKeyW +! FUNCTION: MapWindowPoints +! FUNCTION: MB_GetString +! FUNCTION: MBToWCSEx +! FUNCTION: MenuItemFromPoint +! FUNCTION: MenuWindowProcA +! FUNCTION: MenuWindowProcW + + +: MB_ICONASTERISK HEX: 00000040 ; +: MB_ICONEXCLAMATION HEX: 00000030 ; +: MB_ICONHAND HEX: 00000010 ; +: MB_ICONQUESTION HEX: 00000020 ; +: MB_OK HEX: 00000000 ; +! -1 is Simple beep +FUNCTION: BOOL MessageBeep ( UINT uType ) ; + +FUNCTION: int MessageBoxA ( + HWND hWnd, + LPCSTR lpText, + LPCSTR lpCaption, + UINT uType ) ; + +FUNCTION: int MessageBoxW ( + HWND hWnd, + LPCWSTR lpText, + LPCWSTR lpCaption, + UINT uType) ; + +FUNCTION: int MessageBoxExA ( HWND hWnd, + LPCSTR lpText, + LPCSTR lpCaption, + UINT uType, + WORD wLanguageId + ) ; + +FUNCTION: int MessageBoxExW ( + HWND hWnd, + LPCWSTR lpText, + LPCWSTR lpCaption, + UINT uType, + WORD wLanguageId ) ; + +FUNCTION: int MessageBoxIndirectA ( + MSGBOXPARAMSA* params ) ; + +FUNCTION: int MessageBoxIndirectW ( + MSGBOXPARAMSW* params ) ; + + +: MessageBox ( -- ) + \ MessageBoxW \ MessageBoxA unicode-exec ; + +: MessageBoxEx ( -- ) + \ MessageBoxExW \ MessageBoxExA unicode-exec ; + +: MessageBoxIndirect ( -- ) + \ MessageBoxIndirectW \ MessageBoxIndirectA unicode-exec ; + +! FUNCTION: MessageBoxTimeoutA ! dllexported, not in header +! FUNCTION: MessageBoxTimeoutW ! dllexported, not in header + +! FUNCTION: ModifyMenuA +! FUNCTION: ModifyMenuW +! FUNCTION: MonitorFromPoint +! FUNCTION: MonitorFromRect +! FUNCTION: MonitorFromWindow +! FUNCTION: mouse_event + + + +FUNCTION: BOOL MoveWindow ( + HWND hWnd, + int X, + int Y, + int nWidth, + int nHeight, + BOOL bRepaint ) ; + + +! FUNCTION: MsgWaitForMultipleObjects +! FUNCTION: MsgWaitForMultipleObjectsEx +! FUNCTION: NotifyWinEvent +! FUNCTION: OemKeyScan +! FUNCTION: OemToCharA +! FUNCTION: OemToCharBuffA +! FUNCTION: OemToCharBuffW +! FUNCTION: OemToCharW +! FUNCTION: OffsetRect +FUNCTION: BOOL OpenClipboard ( HWND hWndNewOwner ) ; +! FUNCTION: OpenDesktopA +! FUNCTION: OpenDesktopW +! FUNCTION: OpenIcon +! FUNCTION: OpenInputDesktop +! FUNCTION: OpenWindowStationA +! FUNCTION: OpenWindowStationW +! FUNCTION: PackDDElParam +! FUNCTION: PaintDesktop +! FUNCTION: PaintMenuBar +FUNCTION: BOOL PeekMessageA ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg ) ; +FUNCTION: BOOL PeekMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg ) ; +: PeekMessage \ PeekMessageW \ PeekMessageA unicode-exec ; + +! FUNCTION: PostMessageA +! FUNCTION: PostMessageW +FUNCTION: void PostQuitMessage ( int nExitCode ) ; +! FUNCTION: PostThreadMessageA +! FUNCTION: PostThreadMessageW +! FUNCTION: PrintWindow +! FUNCTION: PrivateExtractIconExA +! FUNCTION: PrivateExtractIconExW +! FUNCTION: PrivateExtractIconsA +! FUNCTION: PrivateExtractIconsW +! FUNCTION: PrivateSetDbgTag +! FUNCTION: PrivateSetRipFlags +! FUNCTION: PtInRect +! FUNCTION: QuerySendMessage +! FUNCTION: QueryUserCounters +! FUNCTION: RealChildWindowFromPoint +! FUNCTION: RealGetWindowClass +! FUNCTION: RealGetWindowClassA +! FUNCTION: RealGetWindowClassW +! FUNCTION: ReasonCodeNeedsBugID +! FUNCTION: ReasonCodeNeedsComment +! FUNCTION: RecordShutdownReason +! FUNCTION: RedrawWindow + +FUNCTION: ATOM RegisterClassA ( WNDCLASS* lpWndClass) ; +FUNCTION: ATOM RegisterClassW ( WNDCLASS* lpWndClass ) ; +FUNCTION: ATOM RegisterClassExA ( WNDCLASSEX* lpwcx ) ; +FUNCTION: ATOM RegisterClassExW ( WNDCLASSEX* lpwcx ) ; + +: RegisterClass \ RegisterClassW \ RegisterClassA unicode-exec ; +: RegisterClassEx \ RegisterClassExW \ RegisterClassExA unicode-exec ; + +! FUNCTION: RegisterClipboardFormatA +! FUNCTION: RegisterClipboardFormatW +! FUNCTION: RegisterDeviceNotificationA +! FUNCTION: RegisterDeviceNotificationW +! FUNCTION: RegisterHotKey +! FUNCTION: RegisterLogonProcess +! FUNCTION: RegisterMessagePumpHook +! FUNCTION: RegisterRawInputDevices +! FUNCTION: RegisterServicesProcess +! FUNCTION: RegisterShellHookWindow +! FUNCTION: RegisterSystemThread +! FUNCTION: RegisterTasklist +! FUNCTION: RegisterUserApiHook +! FUNCTION: RegisterWindowMessageA +! FUNCTION: RegisterWindowMessageW +! FUNCTION: ReleaseCapture +FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC ) ; +! FUNCTION: RemoveMenu +! FUNCTION: RemovePropA +! FUNCTION: RemovePropW +! FUNCTION: ReplyMessage +! FUNCTION: ResolveDesktopForWOW +! FUNCTION: ReuseDDElParam +! FUNCTION: ScreenToClient +! FUNCTION: ScrollChildren +! FUNCTION: ScrollDC +! FUNCTION: ScrollWindow +! FUNCTION: ScrollWindowEx +! FUNCTION: SendDlgItemMessageA +! FUNCTION: SendDlgItemMessageW +! FUNCTION: SendIMEMessageExA +! FUNCTION: SendIMEMessageExW +! FUNCTION: UINT SendInput ( UINT nInputs, LPINPUT pInputs, int cbSize ) ; +! FUNCTION: SendMessageA +! FUNCTION: SendMessageCallbackA +! FUNCTION: SendMessageCallbackW +! FUNCTION: SendMessageTimeoutA +! FUNCTION: SendMessageTimeoutW +! FUNCTION: SendMessageW +! FUNCTION: SendNotifyMessageA +! FUNCTION: SendNotifyMessageW +! FUNCTION: SetActiveWindow +! FUNCTION: SetCapture +! FUNCTION: SetCaretBlinkTime +! FUNCTION: SetCaretPos + +FUNCTION: ULONG_PTR SetClassLongW ( HWND hWnd, int nIndex, LONG_PTR dwNewLong ) ; +FUNCTION: ULONG_PTR SetClassLongA ( HWND hWnd, int nIndex, LONG_PTR dwNewLong ) ; +: SetClassLongPtr \ SetClassLongW \ SetClassLongA unicode-exec ; +: SetClassLong \ SetClassLongW \ SetClassLongA unicode-exec ; + +! FUNCTION: SetClassWord +FUNCTION: HANDLE SetClipboardData ( UINT uFormat, HANDLE hMem ) ; +! FUNCTION: SetClipboardViewer +! FUNCTION: SetConsoleReserveKeys +! FUNCTION: SetCursor +! FUNCTION: SetCursorContents +! FUNCTION: SetCursorPos +! FUNCTION: SetDebugErrorLevel +! FUNCTION: SetDeskWallpaper +! FUNCTION: SetDlgItemInt +! FUNCTION: SetDlgItemTextA +! FUNCTION: SetDlgItemTextW +! FUNCTION: SetDoubleClickTime +FUNCTION: HWND SetFocus ( HWND hWnd ) ; +FUNCTION: BOOL SetForegroundWindow ( HWND hWnd ) ; +! FUNCTION: SetInternalWindowPos +! FUNCTION: SetKeyboardState +! type is ignored +FUNCTION: void SetLastErrorEx ( DWORD dwErrCode, DWORD dwType ) ; +: SetLastError 0 SetLastErrorEx ; +! FUNCTION: SetLayeredWindowAttributes +! FUNCTION: SetLogonNotifyWindow +! FUNCTION: SetMenu +! FUNCTION: SetMenuContextHelpId +! FUNCTION: SetMenuDefaultItem +! FUNCTION: SetMenuInfo +! FUNCTION: SetMenuItemBitmaps +! FUNCTION: SetMenuItemInfoA +! FUNCTION: SetMenuItemInfoW +! FUNCTION: SetMessageExtraInfo +! FUNCTION: SetMessageQueue +! FUNCTION: SetParent +! FUNCTION: SetProcessDefaultLayout +! FUNCTION: SetProcessWindowStation +! FUNCTION: SetProgmanWindow +! FUNCTION: SetPropA +! FUNCTION: SetPropW +! FUNCTION: SetRect +! FUNCTION: SetRectEmpty +! FUNCTION: SetScrollInfo +! FUNCTION: SetScrollPos +! FUNCTION: SetScrollRange +! FUNCTION: SetShellWindow +! FUNCTION: SetShellWindowEx +! FUNCTION: SetSysColors +! FUNCTION: SetSysColorsTemp +! FUNCTION: SetSystemCursor +! FUNCTION: SetSystemMenu +! FUNCTION: SetSystemTimer +! FUNCTION: SetTaskmanWindow +! FUNCTION: SetThreadDesktop +! FUNCTION: SetTimer +! FUNCTION: SetUserObjectInformationA +! FUNCTION: SetUserObjectInformationW +! FUNCTION: SetUserObjectSecurity +! FUNCTION: SetWindowContextHelpId +! FUNCTION: SetWindowLongA +! FUNCTION: SetWindowLongW +! FUNCTION: SetWindowPlacement +! FUNCTION: SetWindowPos +! FUNCTION: SetWindowRgn +! FUNCTION: SetWindowsHookA +! FUNCTION: SetWindowsHookExA +! FUNCTION: SetWindowsHookExW +! FUNCTION: SetWindowsHookW +! FUNCTION: SetWindowStationUser +! FUNCTION: SetWindowTextA +! FUNCTION: SetWindowTextW +! FUNCTION: SetWindowWord +! FUNCTION: SetWinEventHook +! FUNCTION: ShowCaret +! FUNCTION: ShowCursor +! FUNCTION: ShowOwnedPopups +! FUNCTION: ShowScrollBar +! FUNCTION: ShowStartGlass + +FUNCTION: BOOL ShowWindow ( HWND hWnd, int nCmdShow ) ; + +! FUNCTION: ShowWindowAsync +! FUNCTION: SoftModalMessageBox +! FUNCTION: SubtractRect +! FUNCTION: SwapMouseButton +! FUNCTION: SwitchDesktop +! FUNCTION: SwitchToThisWindow +! FUNCTION: SystemParametersInfoA +! FUNCTION: SystemParametersInfoW +! FUNCTION: TabbedTextOutA +! FUNCTION: TabbedTextOutW +! FUNCTION: TileChildWindows +! FUNCTION: TileWindows +! FUNCTION: ToAscii +! FUNCTION: ToAsciiEx +! FUNCTION: ToUnicode +! FUNCTION: ToUnicodeEx +! FUNCTION: TrackMouseEvent +! FUNCTION: TrackPopupMenu +! FUNCTION: TrackPopupMenuEx +! FUNCTION: TranslateAccelerator +! FUNCTION: TranslateAcceleratorA +! FUNCTION: TranslateAcceleratorW +! FUNCTION: TranslateMDISysAccel +FUNCTION: BOOL TranslateMessage ( MSG* lpMsg ) ; + +! FUNCTION: UnhookWindowsHook +! FUNCTION: UnhookWindowsHookEx +! FUNCTION: UnhookWinEvent +! FUNCTION: UnionRect +! FUNCTION: UnloadKeyboardLayout +! FUNCTION: UnlockWindowStation +! FUNCTION: UnpackDDElParam +FUNCTION: BOOL UnregisterClassA ( LPCTSTR lpClassName, HINSTANCE hInstance ) ; +FUNCTION: BOOL UnregisterClassW ( LPCWSTR lpClassName, HINSTANCE hInstance ) ; +: UnregisterClass \ UnregisterClassW \ UnregisterClassA unicode-exec ; +! FUNCTION: UnregisterDeviceNotification +! FUNCTION: UnregisterHotKey +! FUNCTION: UnregisterMessagePumpHook +! FUNCTION: UnregisterUserApiHook +! FUNCTION: UpdateLayeredWindow +! FUNCTION: UpdatePerUserSystemParameters + + +FUNCTION: BOOL UpdateWindow ( HWND hWnd ) ; + +! FUNCTION: User32InitializeImmEntryTable +! FUNCTION: UserClientDllInitialize +! FUNCTION: UserHandleGrantAccess +! FUNCTION: UserLpkPSMTextOut +! FUNCTION: UserLpkTabbedTextOut +! FUNCTION: UserRealizePalette +! FUNCTION: UserRegisterWowHandlers +! FUNCTION: ValidateRect +! FUNCTION: ValidateRgn +! FUNCTION: VkKeyScanA +! FUNCTION: VkKeyScanExA +! FUNCTION: VkKeyScanExW +! FUNCTION: VkKeyScanW +! FUNCTION: VRipOutput +! FUNCTION: VTagOutput +! FUNCTION: WaitForInputIdle +! FUNCTION: WaitMessage +! FUNCTION: WCSToMBEx +! FUNCTION: Win32PoolAllocationStats +! FUNCTION: WindowFromDC +! FUNCTION: WindowFromPoint +! FUNCTION: WinHelpA +! FUNCTION: WinHelpW +! FUNCTION: WINNLSEnableIME +! FUNCTION: WINNLSGetEnableStatus +! FUNCTION: WINNLSGetIMEHotkey +! FUNCTION: wsprintfA +! FUNCTION: wsprintfW +! FUNCTION: wvsprintfA +! FUNCTION: wvsprintfW + diff --git a/library/win32/utils.factor b/library/win32/utils.factor new file mode 100644 index 0000000000..bd203c3048 --- /dev/null +++ b/library/win32/utils.factor @@ -0,0 +1,14 @@ +USING: alien parser namespaces kernel syntax words math io prettyprint ; +IN: win32-api + +: win32-error=0 zero? [ win32-error ] when ; +: win32-error>0 0 > [ win32-error ] when ; +: win32-error<0 0 < [ win32-error ] when ; +: win32-error<>0 zero? [ win32-error ] unless ; + +: lo-word ( wparam -- lo ) HEX: ffff bitand ; +: hi-word ( wparam -- hi ) -16 shift ; + +: msgbox ( str -- ) + f swap "DebugMsg" MB_OK MessageBox drop ; + diff --git a/library/win32/windows-messages.factor b/library/win32/windows-messages.factor new file mode 100644 index 0000000000..3c1f5ad5e2 --- /dev/null +++ b/library/win32/windows-messages.factor @@ -0,0 +1,1003 @@ +USING: hashtables kernel math namespaces parser prettyprint words ; +IN: win32-api-messages + +SYMBOL: windows-messages + +USE: inspector + +: maybe-create-windows-messages + windows-messages get hashtable? + [ H{ } clone global [ windows-messages set ] bind ] unless ; + +: add-windows-message ( -- ) + word [ unparse ] keep execute maybe-create-windows-messages + windows-messages get set-hash ; parsing + +: get-windows-message-name ( n -- name ) + windows-messages get hash* [ drop "unknown message" ] unless ; + +: WM_NULL HEX: 0000 ; inline add-windows-message +: WM_CREATE HEX: 0001 ; inline add-windows-message +: WM_DESTROY HEX: 0002 ; inline add-windows-message +: WM_MOVE HEX: 0003 ; inline add-windows-message +: WM_SIZE HEX: 0005 ; inline add-windows-message +: WM_ACTIVATE HEX: 0006 ; inline add-windows-message +: WM_SETFOCUS HEX: 0007 ; inline add-windows-message +: WM_KILLFOCUS HEX: 0008 ; inline add-windows-message +: WM_ENABLE HEX: 000A ; inline add-windows-message +: WM_SETREDRAW HEX: 000B ; inline add-windows-message +: WM_SETTEXT HEX: 000C ; inline add-windows-message +: WM_GETTEXT HEX: 000D ; inline add-windows-message +: WM_GETTEXTLENGTH HEX: 000E ; inline add-windows-message +: WM_PAINT HEX: 000F ; inline add-windows-message +: WM_CLOSE HEX: 0010 ; inline add-windows-message +: WM_QUERYENDSESSION HEX: 0011 ; inline add-windows-message +: WM_QUERYOPEN HEX: 0013 ; inline add-windows-message +: WM_ENDSESSION HEX: 0016 ; inline add-windows-message +: WM_QUIT HEX: 0012 ; inline add-windows-message +: WM_ERASEBKGND HEX: 0014 ; inline add-windows-message +: WM_SYSCOLORCHANGE HEX: 0015 ; inline add-windows-message +: WM_SHOWWINDOW HEX: 0018 ; inline add-windows-message +: WM_WININICHANGE HEX: 001A ; inline add-windows-message +: WM_SETTINGCHANGE HEX: 001A ; inline add-windows-message +: WM_DEVMODECHANGE HEX: 001B ; inline add-windows-message +: WM_ACTIVATEAPP HEX: 001C ; inline add-windows-message +: WM_FONTCHANGE HEX: 001D ; inline add-windows-message +: WM_TIMECHANGE HEX: 001E ; inline add-windows-message +: WM_CANCELMODE HEX: 001F ; inline add-windows-message +: WM_SETCURSOR HEX: 0020 ; inline add-windows-message +: WM_MOUSEACTIVATE HEX: 0021 ; inline add-windows-message +: WM_CHILDACTIVATE HEX: 0022 ; inline add-windows-message +: WM_QUEUESYNC HEX: 0023 ; inline add-windows-message +: WM_GETMINMAXINFO HEX: 0024 ; inline add-windows-message +: WM_PAINTICON HEX: 0026 ; inline add-windows-message +: WM_ICONERASEBKGND HEX: 0027 ; inline add-windows-message +: WM_NEXTDLGCTL HEX: 0028 ; inline add-windows-message +: WM_SPOOLERSTATUS HEX: 002A ; inline add-windows-message +: WM_DRAWITEM HEX: 002B ; inline add-windows-message +: WM_MEASUREITEM HEX: 002C ; inline add-windows-message +: WM_DELETEITEM HEX: 002D ; inline add-windows-message +: WM_VKEYTOITEM HEX: 002E ; inline add-windows-message +: WM_CHARTOITEM HEX: 002F ; inline add-windows-message +: WM_SETFONT HEX: 0030 ; inline add-windows-message +: WM_GETFONT HEX: 0031 ; inline add-windows-message +: WM_SETHOTKEY HEX: 0032 ; inline add-windows-message +: WM_GETHOTKEY HEX: 0033 ; inline add-windows-message +: WM_QUERYDRAGICON HEX: 0037 ; inline add-windows-message +: WM_COMPAREITEM HEX: 0039 ; inline add-windows-message +: WM_GETOBJECT HEX: 003D ; inline add-windows-message +: WM_COMPACTING HEX: 0041 ; inline add-windows-message +: WM_COMMNOTIFY HEX: 0044 ; inline add-windows-message +: WM_WINDOWPOSCHANGING HEX: 0046 ; inline add-windows-message +: WM_WINDOWPOSCHANGED HEX: 0047 ; inline add-windows-message +: WM_POWER HEX: 0048 ; inline add-windows-message +: WM_COPYDATA HEX: 004A ; inline add-windows-message +: WM_CANCELJOURNAL HEX: 004B ; inline add-windows-message +: WM_NOTIFY HEX: 004E ; inline add-windows-message +: WM_INPUTLANGCHANGEREQUEST HEX: 0050 ; inline add-windows-message +: WM_INPUTLANGCHANGE HEX: 0051 ; inline add-windows-message +: WM_TCARD HEX: 0052 ; inline add-windows-message +: WM_HELP HEX: 0053 ; inline add-windows-message +: WM_USERCHANGED HEX: 0054 ; inline add-windows-message +: WM_NOTIFYFORMAT HEX: 0055 ; inline add-windows-message +: WM_CONTEXTMENU HEX: 007B ; inline add-windows-message +: WM_STYLECHANGING HEX: 007C ; inline add-windows-message +: WM_STYLECHANGED HEX: 007D ; inline add-windows-message +: WM_DISPLAYCHANGE HEX: 007E ; inline add-windows-message +: WM_GETICON HEX: 007F ; inline add-windows-message +: WM_SETICON HEX: 0080 ; inline add-windows-message +: WM_NCCREATE HEX: 0081 ; inline add-windows-message +: WM_NCDESTROY HEX: 0082 ; inline add-windows-message +: WM_NCCALCSIZE HEX: 0083 ; inline add-windows-message +: WM_NCHITTEST HEX: 0084 ; inline add-windows-message +: WM_NCPAINT HEX: 0085 ; inline add-windows-message +: WM_NCACTIVATE HEX: 0086 ; inline add-windows-message +: WM_GETDLGCODE HEX: 0087 ; inline add-windows-message +: WM_SYNCPAINT HEX: 0088 ; inline add-windows-message +: WM_NCMOUSEMOVE HEX: 00A0 ; inline add-windows-message +: WM_NCLBUTTONDOWN HEX: 00A1 ; inline add-windows-message +: WM_NCLBUTTONUP HEX: 00A2 ; inline add-windows-message +: WM_NCLBUTTONDBLCLK HEX: 00A3 ; inline add-windows-message +: WM_NCRBUTTONDOWN HEX: 00A4 ; inline add-windows-message +: WM_NCRBUTTONUP HEX: 00A5 ; inline add-windows-message +: WM_NCRBUTTONDBLCLK HEX: 00A6 ; inline add-windows-message +: WM_NCMBUTTONDOWN HEX: 00A7 ; inline add-windows-message +: WM_NCMBUTTONUP HEX: 00A8 ; inline add-windows-message +: WM_NCMBUTTONDBLCLK HEX: 00A9 ; inline add-windows-message +: WM_NCXBUTTONDOWN HEX: 00AB ; inline add-windows-message +: WM_NCXBUTTONUP HEX: 00AC ; inline add-windows-message +: WM_NCXBUTTONDBLCLK HEX: 00AD ; inline add-windows-message +: WM_INPUT HEX: 00FF ; inline add-windows-message +: WM_KEYFIRST HEX: 0100 ; inline add-windows-message +: WM_KEYDOWN HEX: 0100 ; inline add-windows-message +: WM_KEYUP HEX: 0101 ; inline add-windows-message +: WM_CHAR HEX: 0102 ; inline add-windows-message +: WM_DEADCHAR HEX: 0103 ; inline add-windows-message +: WM_SYSKEYDOWN HEX: 0104 ; inline add-windows-message +: WM_SYSKEYUP HEX: 0105 ; inline add-windows-message +: WM_SYSCHAR HEX: 0106 ; inline add-windows-message +: WM_SYSDEADCHAR HEX: 0107 ; inline add-windows-message +: WM_UNICHAR HEX: 0109 ; inline add-windows-message +: WM_KEYLAST_NT501 HEX: 0109 ; inline add-windows-message +: UNICODE_NOCHAR HEX: FFFF ; inline add-windows-message +: WM_KEYLAST_PRE501 HEX: 0108 ; inline add-windows-message +: WM_IME_STARTCOMPOSITION HEX: 010D ; inline add-windows-message +: WM_IME_ENDCOMPOSITION HEX: 010E ; inline add-windows-message +: WM_IME_COMPOSITION HEX: 010F ; inline add-windows-message +: WM_IME_KEYLAST HEX: 010F ; inline add-windows-message +: WM_INITDIALOG HEX: 0110 ; inline add-windows-message +: WM_COMMAND HEX: 0111 ; inline add-windows-message +: WM_SYSCOMMAND HEX: 0112 ; inline add-windows-message +: WM_TIMER HEX: 0113 ; inline add-windows-message +: WM_HSCROLL HEX: 0114 ; inline add-windows-message +: WM_VSCROLL HEX: 0115 ; inline add-windows-message +: WM_INITMENU HEX: 0116 ; inline add-windows-message +: WM_INITMENUPOPUP HEX: 0117 ; inline add-windows-message +: WM_MENUSELECT HEX: 011F ; inline add-windows-message +: WM_MENUCHAR HEX: 0120 ; inline add-windows-message +: WM_ENTERIDLE HEX: 0121 ; inline add-windows-message +: WM_MENURBUTTONUP HEX: 0122 ; inline add-windows-message +: WM_MENUDRAG HEX: 0123 ; inline add-windows-message +: WM_MENUGETOBJECT HEX: 0124 ; inline add-windows-message +: WM_UNINITMENUPOPUP HEX: 0125 ; inline add-windows-message +: WM_MENUCOMMAND HEX: 0126 ; inline add-windows-message +: WM_CHANGEUISTATE HEX: 0127 ; inline add-windows-message +: WM_UPDATEUISTATE HEX: 0128 ; inline add-windows-message +: WM_QUERYUISTATE HEX: 0129 ; inline add-windows-message +: WM_CTLCOLORMSGBOX HEX: 0132 ; inline add-windows-message +: WM_CTLCOLOREDIT HEX: 0133 ; inline add-windows-message +: WM_CTLCOLORLISTBOX HEX: 0134 ; inline add-windows-message +: WM_CTLCOLORBTN HEX: 0135 ; inline add-windows-message +: WM_CTLCOLORDLG HEX: 0136 ; inline add-windows-message +: WM_CTLCOLORSCROLLBAR HEX: 0137 ; inline add-windows-message +: WM_CTLCOLORSTATIC HEX: 0138 ; inline add-windows-message +: WM_MOUSEFIRST HEX: 0200 ; inline add-windows-message +: WM_MOUSEMOVE HEX: 0200 ; inline add-windows-message +: WM_LBUTTONDOWN HEX: 0201 ; inline add-windows-message +: WM_LBUTTONUP HEX: 0202 ; inline add-windows-message +: WM_LBUTTONDBLCLK HEX: 0203 ; inline add-windows-message +: WM_RBUTTONDOWN HEX: 0204 ; inline add-windows-message +: WM_RBUTTONUP HEX: 0205 ; inline add-windows-message +: WM_RBUTTONDBLCLK HEX: 0206 ; inline add-windows-message +: WM_MBUTTONDOWN HEX: 0207 ; inline add-windows-message +: WM_MBUTTONUP HEX: 0208 ; inline add-windows-message +: WM_MBUTTONDBLCLK HEX: 0209 ; inline add-windows-message +: WM_MOUSEWHEEL HEX: 020A ; inline add-windows-message +: WM_XBUTTONDOWN HEX: 020B ; inline add-windows-message +: WM_XBUTTONUP HEX: 020C ; inline add-windows-message +: WM_XBUTTONDBLCLK HEX: 020D ; inline add-windows-message +: WM_MOUSELAST_5 HEX: 020D ; inline add-windows-message +: WM_MOUSELAST_4 HEX: 020A ; inline add-windows-message +: WM_MOUSELAST_PRE_4 HEX: 0209 ; inline add-windows-message +: WM_PARENTNOTIFY HEX: 0210 ; inline add-windows-message +: WM_ENTERMENULOOP HEX: 0211 ; inline add-windows-message +: WM_EXITMENULOOP HEX: 0212 ; inline add-windows-message +: WM_NEXTMENU HEX: 0213 ; inline add-windows-message +: WM_SIZING HEX: 0214 ; inline add-windows-message +: WM_CAPTURECHANGED HEX: 0215 ; inline add-windows-message +: WM_MOVING HEX: 0216 ; inline add-windows-message +: WM_POWERBROADCAST HEX: 0218 ; inline add-windows-message +: WM_DEVICECHANGE HEX: 0219 ; inline add-windows-message +: WM_MDICREATE HEX: 0220 ; inline add-windows-message +: WM_MDIDESTROY HEX: 0221 ; inline add-windows-message +: WM_MDIACTIVATE HEX: 0222 ; inline add-windows-message +: WM_MDIRESTORE HEX: 0223 ; inline add-windows-message +: WM_MDINEXT HEX: 0224 ; inline add-windows-message +: WM_MDIMAXIMIZE HEX: 0225 ; inline add-windows-message +: WM_MDITILE HEX: 0226 ; inline add-windows-message +: WM_MDICASCADE HEX: 0227 ; inline add-windows-message +: WM_MDIICONARRANGE HEX: 0228 ; inline add-windows-message +: WM_MDIGETACTIVE HEX: 0229 ; inline add-windows-message +: WM_MDISETMENU HEX: 0230 ; inline add-windows-message +: WM_ENTERSIZEMOVE HEX: 0231 ; inline add-windows-message +: WM_EXITSIZEMOVE HEX: 0232 ; inline add-windows-message +: WM_DROPFILES HEX: 0233 ; inline add-windows-message +: WM_MDIREFRESHMENU HEX: 0234 ; inline add-windows-message +: WM_IME_SETCONTEXT HEX: 0281 ; inline add-windows-message +: WM_IME_NOTIFY HEX: 0282 ; inline add-windows-message +: WM_IME_CONTROL HEX: 0283 ; inline add-windows-message +: WM_IME_COMPOSITIONFULL HEX: 0284 ; inline add-windows-message +: WM_IME_SELECT HEX: 0285 ; inline add-windows-message +: WM_IME_CHAR HEX: 0286 ; inline add-windows-message +: WM_IME_REQUEST HEX: 0288 ; inline add-windows-message +: WM_IME_KEYDOWN HEX: 0290 ; inline add-windows-message +: WM_IME_KEYUP HEX: 0291 ; inline add-windows-message +: WM_MOUSEHOVER HEX: 02A1 ; inline add-windows-message +: WM_MOUSELEAVE HEX: 02A3 ; inline add-windows-message +: WM_NCMOUSEHOVER HEX: 02A0 ; inline add-windows-message +: WM_NCMOUSELEAVE HEX: 02A2 ; inline add-windows-message +: WM_WTSSESSION_CHANGE HEX: 02B1 ; inline add-windows-message +: WM_TABLET_FIRST HEX: 02c0 ; inline add-windows-message +: WM_TABLET_LAST HEX: 02df ; inline add-windows-message +: WM_CUT HEX: 0300 ; inline add-windows-message +: WM_COPY HEX: 0301 ; inline add-windows-message +: WM_PASTE HEX: 0302 ; inline add-windows-message +: WM_CLEAR HEX: 0303 ; inline add-windows-message +: WM_UNDO HEX: 0304 ; inline add-windows-message +: WM_RENDERFORMAT HEX: 0305 ; inline add-windows-message +: WM_RENDERALLFORMATS HEX: 0306 ; inline add-windows-message +: WM_DESTROYCLIPBOARD HEX: 0307 ; inline add-windows-message +: WM_DRAWCLIPBOARD HEX: 0308 ; inline add-windows-message +: WM_PAINTCLIPBOARD HEX: 0309 ; inline add-windows-message +: WM_VSCROLLCLIPBOARD HEX: 030A ; inline add-windows-message +: WM_SIZECLIPBOARD HEX: 030B ; inline add-windows-message +: WM_ASKCBFORMATNAME HEX: 030C ; inline add-windows-message +: WM_CHANGECBCHAIN HEX: 030D ; inline add-windows-message +: WM_HSCROLLCLIPBOARD HEX: 030E ; inline add-windows-message +: WM_QUERYNEWPALETTE HEX: 030F ; inline add-windows-message +: WM_PALETTEISCHANGING HEX: 0310 ; inline add-windows-message +: WM_PALETTECHANGED HEX: 0311 ; inline add-windows-message +: WM_HOTKEY HEX: 0312 ; inline add-windows-message +: WM_PRINT HEX: 0317 ; inline add-windows-message +: WM_PRINTCLIENT HEX: 0318 ; inline add-windows-message +: WM_APPCOMMAND HEX: 0319 ; inline add-windows-message +: WM_THEMECHANGED HEX: 031A ; inline add-windows-message +: WM_HANDHELDFIRST HEX: 0358 ; inline add-windows-message +: WM_HANDHELDLAST HEX: 035F ; inline add-windows-message +: WM_AFXFIRST HEX: 0360 ; inline add-windows-message +: WM_AFXLAST HEX: 037F ; inline add-windows-message +: WM_PENWINFIRST HEX: 0380 ; inline add-windows-message +: WM_PENWINLAST HEX: 038F ; inline add-windows-message +: WM_APP HEX: 8000 ; inline add-windows-message +: WM_USER HEX: 0400 ; inline add-windows-message +: EM_GETSEL HEX: 00B0 ; inline add-windows-message +: EM_SETSEL HEX: 00B1 ; inline add-windows-message +: EM_GETRECT HEX: 00B2 ; inline add-windows-message +: EM_SETRECT HEX: 00B3 ; inline add-windows-message +: EM_SETRECTNP HEX: 00B4 ; inline add-windows-message +: EM_SCROLL HEX: 00B5 ; inline add-windows-message +: EM_LINESCROLL HEX: 00B6 ; inline add-windows-message +: EM_SCROLLCARET HEX: 00B7 ; inline add-windows-message +: EM_GETMODIFY HEX: 00B8 ; inline add-windows-message +: EM_SETMODIFY HEX: 00B9 ; inline add-windows-message +: EM_GETLINECOUNT HEX: 00BA ; inline add-windows-message +: EM_LINEINDEX HEX: 00BB ; inline add-windows-message +: EM_SETHANDLE HEX: 00BC ; inline add-windows-message +: EM_GETHANDLE HEX: 00BD ; inline add-windows-message +: EM_GETTHUMB HEX: 00BE ; inline add-windows-message +: EM_LINELENGTH HEX: 00C1 ; inline add-windows-message +: EM_REPLACESEL HEX: 00C2 ; inline add-windows-message +: EM_GETLINE HEX: 00C4 ; inline add-windows-message +: EM_LIMITTEXT HEX: 00C5 ; inline add-windows-message +: EM_CANUNDO HEX: 00C6 ; inline add-windows-message +: EM_UNDO HEX: 00C7 ; inline add-windows-message +: EM_FMTLINES HEX: 00C8 ; inline add-windows-message +: EM_LINEFROMCHAR HEX: 00C9 ; inline add-windows-message +: EM_SETTABSTOPS HEX: 00CB ; inline add-windows-message +: EM_SETPASSWORDCHAR HEX: 00CC ; inline add-windows-message +: EM_EMPTYUNDOBUFFER HEX: 00CD ; inline add-windows-message +: EM_GETFIRSTVISIBLELINE HEX: 00CE ; inline add-windows-message +: EM_SETREADONLY HEX: 00CF ; inline add-windows-message +: EM_SETWORDBREAKPROC HEX: 00D0 ; inline add-windows-message +: EM_GETWORDBREAKPROC HEX: 00D1 ; inline add-windows-message +: EM_GETPASSWORDCHAR HEX: 00D2 ; inline add-windows-message +: EM_SETMARGINS HEX: 00D3 ; inline add-windows-message +: EM_GETMARGINS HEX: 00D4 ; inline add-windows-message +: EM_SETLIMITTEXT EM_LIMITTEXT ; inline add-windows-message +: EM_GETLIMITTEXT HEX: 00D5 ; inline add-windows-message +: EM_POSFROMCHAR HEX: 00D6 ; inline add-windows-message +: EM_CHARFROMPOS HEX: 00D7 ; inline add-windows-message +: EM_SETIMESTATUS HEX: 00D8 ; inline add-windows-message +: EM_GETIMESTATUS HEX: 00D9 ; inline add-windows-message +: BM_GETCHECK HEX: 00F0 ; inline add-windows-message +: BM_SETCHECK HEX: 00F1 ; inline add-windows-message +: BM_GETSTATE HEX: 00F2 ; inline add-windows-message +: BM_SETSTATE HEX: 00F3 ; inline add-windows-message +: BM_SETSTYLE HEX: 00F4 ; inline add-windows-message +: BM_CLICK HEX: 00F5 ; inline add-windows-message +: BM_GETIMAGE HEX: 00F6 ; inline add-windows-message +: BM_SETIMAGE HEX: 00F7 ; inline add-windows-message +: STM_SETICON HEX: 0170 ; inline add-windows-message +: STM_GETICON HEX: 0171 ; inline add-windows-message +: STM_SETIMAGE HEX: 0172 ; inline add-windows-message +: STM_GETIMAGE HEX: 0173 ; inline add-windows-message +: STM_MSGMAX HEX: 0174 ; inline add-windows-message +: DM_GETDEFID WM_USER ; inline add-windows-message +: DM_SETDEFID WM_USER 1 + ; inline add-windows-message +: DM_REPOSITION WM_USER 2 + ; inline add-windows-message +: LB_ADDSTRING HEX: 0180 ; inline add-windows-message +: LB_INSERTSTRING HEX: 0181 ; inline add-windows-message +: LB_DELETESTRING HEX: 0182 ; inline add-windows-message +: LB_SELITEMRANGEEX HEX: 0183 ; inline add-windows-message +: LB_RESETCONTENT HEX: 0184 ; inline add-windows-message +: LB_SETSEL HEX: 0185 ; inline add-windows-message +: LB_SETCURSEL HEX: 0186 ; inline add-windows-message +: LB_GETSEL HEX: 0187 ; inline add-windows-message +: LB_GETCURSEL HEX: 0188 ; inline add-windows-message +: LB_GETTEXT HEX: 0189 ; inline add-windows-message +: LB_GETTEXTLEN HEX: 018A ; inline add-windows-message +: LB_GETCOUNT HEX: 018B ; inline add-windows-message +: LB_SELECTSTRING HEX: 018C ; inline add-windows-message +: LB_DIR HEX: 018D ; inline add-windows-message +: LB_GETTOPINDEX HEX: 018E ; inline add-windows-message +: LB_FINDSTRING HEX: 018F ; inline add-windows-message +: LB_GETSELCOUNT HEX: 0190 ; inline add-windows-message +: LB_GETSELITEMS HEX: 0191 ; inline add-windows-message +: LB_SETTABSTOPS HEX: 0192 ; inline add-windows-message +: LB_GETHORIZONTALEXTENT HEX: 0193 ; inline add-windows-message +: LB_SETHORIZONTALEXTENT HEX: 0194 ; inline add-windows-message +: LB_SETCOLUMNWIDTH HEX: 0195 ; inline add-windows-message +: LB_ADDFILE HEX: 0196 ; inline add-windows-message +: LB_SETTOPINDEX HEX: 0197 ; inline add-windows-message +: LB_GETITEMRECT HEX: 0198 ; inline add-windows-message +: LB_GETITEMDATA HEX: 0199 ; inline add-windows-message +: LB_SETITEMDATA HEX: 019A ; inline add-windows-message +: LB_SELITEMRANGE HEX: 019B ; inline add-windows-message +: LB_SETANCHORINDEX HEX: 019C ; inline add-windows-message +: LB_GETANCHORINDEX HEX: 019D ; inline add-windows-message +: LB_SETCARETINDEX HEX: 019E ; inline add-windows-message +: LB_GETCARETINDEX HEX: 019F ; inline add-windows-message +: LB_SETITEMHEIGHT HEX: 01A0 ; inline add-windows-message +: LB_GETITEMHEIGHT HEX: 01A1 ; inline add-windows-message +: LB_FINDSTRINGEXACT HEX: 01A2 ; inline add-windows-message +: LB_SETLOCALE HEX: 01A5 ; inline add-windows-message +: LB_GETLOCALE HEX: 01A6 ; inline add-windows-message +: LB_SETCOUNT HEX: 01A7 ; inline add-windows-message +: LB_INITSTORAGE HEX: 01A8 ; inline add-windows-message +: LB_ITEMFROMPOINT HEX: 01A9 ; inline add-windows-message +: LB_MULTIPLEADDSTRING HEX: 01B1 ; inline add-windows-message +: LB_GETLISTBOXINFO HEX: 01B2 ; inline add-windows-message +: LB_MSGMAX_501 HEX: 01B3 ; inline add-windows-message +: LB_MSGMAX_WCE4 HEX: 01B1 ; inline add-windows-message +: LB_MSGMAX_4 HEX: 01B0 ; inline add-windows-message +: LB_MSGMAX_PRE4 HEX: 01A8 ; inline add-windows-message +: CB_GETEDITSEL HEX: 0140 ; inline add-windows-message +: CB_LIMITTEXT HEX: 0141 ; inline add-windows-message +: CB_SETEDITSEL HEX: 0142 ; inline add-windows-message +: CB_ADDSTRING HEX: 0143 ; inline add-windows-message +: CB_DELETESTRING HEX: 0144 ; inline add-windows-message +: CB_DIR HEX: 0145 ; inline add-windows-message +: CB_GETCOUNT HEX: 0146 ; inline add-windows-message +: CB_GETCURSEL HEX: 0147 ; inline add-windows-message +: CB_GETLBTEXT HEX: 0148 ; inline add-windows-message +: CB_GETLBTEXTLEN HEX: 0149 ; inline add-windows-message +: CB_INSERTSTRING HEX: 014A ; inline add-windows-message +: CB_RESETCONTENT HEX: 014B ; inline add-windows-message +: CB_FINDSTRING HEX: 014C ; inline add-windows-message +: CB_SELECTSTRING HEX: 014D ; inline add-windows-message +: CB_SETCURSEL HEX: 014E ; inline add-windows-message +: CB_SHOWDROPDOWN HEX: 014F ; inline add-windows-message +: CB_GETITEMDATA HEX: 0150 ; inline add-windows-message +: CB_SETITEMDATA HEX: 0151 ; inline add-windows-message +: CB_GETDROPPEDCONTROLRECT HEX: 0152 ; inline add-windows-message +: CB_SETITEMHEIGHT HEX: 0153 ; inline add-windows-message +: CB_GETITEMHEIGHT HEX: 0154 ; inline add-windows-message +: CB_SETEXTENDEDUI HEX: 0155 ; inline add-windows-message +: CB_GETEXTENDEDUI HEX: 0156 ; inline add-windows-message +: CB_GETDROPPEDSTATE HEX: 0157 ; inline add-windows-message +: CB_FINDSTRINGEXACT HEX: 0158 ; inline add-windows-message +: CB_SETLOCALE HEX: 0159 ; inline add-windows-message +: CB_GETLOCALE HEX: 015A ; inline add-windows-message +: CB_GETTOPINDEX HEX: 015B ; inline add-windows-message +: CB_SETTOPINDEX HEX: 015C ; inline add-windows-message +: CB_GETHORIZONTALEXTENT HEX: 015d ; inline add-windows-message +: CB_SETHORIZONTALEXTENT HEX: 015e ; inline add-windows-message +: CB_GETDROPPEDWIDTH HEX: 015f ; inline add-windows-message +: CB_SETDROPPEDWIDTH HEX: 0160 ; inline add-windows-message +: CB_INITSTORAGE HEX: 0161 ; inline add-windows-message +: CB_MULTIPLEADDSTRING HEX: 0163 ; inline add-windows-message +: CB_GETCOMBOBOXINFO HEX: 0164 ; inline add-windows-message +: CB_MSGMAX_501 HEX: 0165 ; inline add-windows-message +: CB_MSGMAX_WCE400 HEX: 0163 ; inline add-windows-message +: CB_MSGMAX_400 HEX: 0162 ; inline add-windows-message +: CB_MSGMAX_PRE400 HEX: 015B ; inline add-windows-message +: SBM_SETPOS HEX: 00E0 ; inline add-windows-message +: SBM_GETPOS HEX: 00E1 ; inline add-windows-message +: SBM_SETRANGE HEX: 00E2 ; inline add-windows-message +: SBM_SETRANGEREDRAW HEX: 00E6 ; inline add-windows-message +: SBM_GETRANGE HEX: 00E3 ; inline add-windows-message +: SBM_ENABLE_ARROWS HEX: 00E4 ; inline add-windows-message +: SBM_SETSCROLLINFO HEX: 00E9 ; inline add-windows-message +: SBM_GETSCROLLINFO HEX: 00EA ; inline add-windows-message +: SBM_GETSCROLLBARINFO HEX: 00EB ; inline add-windows-message +: LVM_FIRST HEX: 1000 ; inline add-windows-message ! ListView messages +: TV_FIRST HEX: 1100 ; inline add-windows-message ! TreeView messages +: HDM_FIRST HEX: 1200 ; inline add-windows-message ! Header messages +: TCM_FIRST HEX: 1300 ; inline add-windows-message ! Tab control messages +: PGM_FIRST HEX: 1400 ; inline add-windows-message ! Pager control messages +: ECM_FIRST HEX: 1500 ; inline add-windows-message ! Edit control messages +: BCM_FIRST HEX: 1600 ; inline add-windows-message ! Button control messages +: CBM_FIRST HEX: 1700 ; inline add-windows-message ! Combobox control messages +: CCM_FIRST HEX: 2000 ; inline add-windows-message ! Common control shared messages +: CCM_LAST CCM_FIRST HEX: 0200 + ; inline add-windows-message +: CCM_SETBKCOLOR CCM_FIRST 1 + ; inline add-windows-message +: CCM_SETCOLORSCHEME CCM_FIRST 2 + ; inline add-windows-message +: CCM_GETCOLORSCHEME CCM_FIRST 3 + ; inline add-windows-message +: CCM_GETDROPTARGET CCM_FIRST 4 + ; inline add-windows-message +: CCM_SETUNICODEFORMAT CCM_FIRST 5 + ; inline add-windows-message +: CCM_GETUNICODEFORMAT CCM_FIRST 6 + ; inline add-windows-message +: CCM_SETVERSION CCM_FIRST 7 + ; inline add-windows-message +: CCM_GETVERSION CCM_FIRST 8 + ; inline add-windows-message +: CCM_SETNOTIFYWINDOW CCM_FIRST 9 + ; inline add-windows-message +: CCM_SETWINDOWTHEME CCM_FIRST HEX: b + ; inline add-windows-message +: CCM_DPISCALE CCM_FIRST HEX: c + ; inline add-windows-message +: HDM_GETITEMCOUNT HDM_FIRST 0 + ; inline add-windows-message +: HDM_INSERTITEMA HDM_FIRST 1 + ; inline add-windows-message +: HDM_INSERTITEMW HDM_FIRST 10 + ; inline add-windows-message +: HDM_DELETEITEM HDM_FIRST 2 + ; inline add-windows-message +: HDM_GETITEMA HDM_FIRST 3 + ; inline add-windows-message +: HDM_GETITEMW HDM_FIRST 11 + ; inline add-windows-message +: HDM_SETITEMA HDM_FIRST 4 + ; inline add-windows-message +: HDM_SETITEMW HDM_FIRST 12 + ; inline add-windows-message +: HDM_LAYOUT HDM_FIRST 5 + ; inline add-windows-message +: HDM_HITTEST HDM_FIRST 6 + ; inline add-windows-message +: HDM_GETITEMRECT HDM_FIRST 7 + ; inline add-windows-message +: HDM_SETIMAGELIST HDM_FIRST 8 + ; inline add-windows-message +: HDM_GETIMAGELIST HDM_FIRST 9 + ; inline add-windows-message +: HDM_ORDERTOINDEX HDM_FIRST 15 + ; inline add-windows-message +: HDM_CREATEDRAGIMAGE HDM_FIRST 16 + ; inline add-windows-message +: HDM_GETORDERARRAY HDM_FIRST 17 + ; inline add-windows-message +: HDM_SETORDERARRAY HDM_FIRST 18 + ; inline add-windows-message +: HDM_SETHOTDIVIDER HDM_FIRST 19 + ; inline add-windows-message +: HDM_SETBITMAPMARGIN HDM_FIRST 20 + ; inline add-windows-message +: HDM_GETBITMAPMARGIN HDM_FIRST 21 + ; inline add-windows-message +: HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: HDM_SETFILTERCHANGETIMEOUT HDM_FIRST 22 + ; inline add-windows-message +: HDM_EDITFILTER HDM_FIRST 23 + ; inline add-windows-message +: HDM_CLEARFILTER HDM_FIRST 24 + ; inline add-windows-message +: TB_ENABLEBUTTON WM_USER 1 + ; inline add-windows-message +: TB_CHECKBUTTON WM_USER 2 + ; inline add-windows-message +: TB_PRESSBUTTON WM_USER 3 + ; inline add-windows-message +: TB_HIDEBUTTON WM_USER 4 + ; inline add-windows-message +: TB_INDETERMINATE WM_USER 5 + ; inline add-windows-message +: TB_MARKBUTTON WM_USER 6 + ; inline add-windows-message +: TB_ISBUTTONENABLED WM_USER 9 + ; inline add-windows-message +: TB_ISBUTTONCHECKED WM_USER 10 + ; inline add-windows-message +: TB_ISBUTTONPRESSED WM_USER 11 + ; inline add-windows-message +: TB_ISBUTTONHIDDEN WM_USER 12 + ; inline add-windows-message +: TB_ISBUTTONINDETERMINATE WM_USER 13 + ; inline add-windows-message +: TB_ISBUTTONHIGHLIGHTED WM_USER 14 + ; inline add-windows-message +: TB_SETSTATE WM_USER 17 + ; inline add-windows-message +: TB_GETSTATE WM_USER 18 + ; inline add-windows-message +: TB_ADDBITMAP WM_USER 19 + ; inline add-windows-message +: TB_ADDBUTTONSA WM_USER 20 + ; inline add-windows-message +: TB_INSERTBUTTONA WM_USER 21 + ; inline add-windows-message +: TB_ADDBUTTONS WM_USER 20 + ; inline add-windows-message +: TB_INSERTBUTTON WM_USER 21 + ; inline add-windows-message +: TB_DELETEBUTTON WM_USER 22 + ; inline add-windows-message +: TB_GETBUTTON WM_USER 23 + ; inline add-windows-message +: TB_BUTTONCOUNT WM_USER 24 + ; inline add-windows-message +: TB_COMMANDTOINDEX WM_USER 25 + ; inline add-windows-message +: TB_SAVERESTOREA WM_USER 26 + ; inline add-windows-message +: TB_SAVERESTOREW WM_USER 76 + ; inline add-windows-message +: TB_CUSTOMIZE WM_USER 27 + ; inline add-windows-message +: TB_ADDSTRINGA WM_USER 28 + ; inline add-windows-message +: TB_ADDSTRINGW WM_USER 77 + ; inline add-windows-message +: TB_GETITEMRECT WM_USER 29 + ; inline add-windows-message +: TB_BUTTONSTRUCTSIZE WM_USER 30 + ; inline add-windows-message +: TB_SETBUTTONSIZE WM_USER 31 + ; inline add-windows-message +: TB_SETBITMAPSIZE WM_USER 32 + ; inline add-windows-message +: TB_AUTOSIZE WM_USER 33 + ; inline add-windows-message +: TB_GETTOOLTIPS WM_USER 35 + ; inline add-windows-message +: TB_SETTOOLTIPS WM_USER 36 + ; inline add-windows-message +: TB_SETPARENT WM_USER 37 + ; inline add-windows-message +: TB_SETROWS WM_USER 39 + ; inline add-windows-message +: TB_GETROWS WM_USER 40 + ; inline add-windows-message +: TB_SETCMDID WM_USER 42 + ; inline add-windows-message +: TB_CHANGEBITMAP WM_USER 43 + ; inline add-windows-message +: TB_GETBITMAP WM_USER 44 + ; inline add-windows-message +: TB_GETBUTTONTEXTA WM_USER 45 + ; inline add-windows-message +: TB_GETBUTTONTEXTW WM_USER 75 + ; inline add-windows-message +: TB_REPLACEBITMAP WM_USER 46 + ; inline add-windows-message +: TB_SETINDENT WM_USER 47 + ; inline add-windows-message +: TB_SETIMAGELIST WM_USER 48 + ; inline add-windows-message +: TB_GETIMAGELIST WM_USER 49 + ; inline add-windows-message +: TB_LOADIMAGES WM_USER 50 + ; inline add-windows-message +: TB_GETRECT WM_USER 51 + ; inline add-windows-message +: TB_SETHOTIMAGELIST WM_USER 52 + ; inline add-windows-message +: TB_GETHOTIMAGELIST WM_USER 53 + ; inline add-windows-message +: TB_SETDISABLEDIMAGELIST WM_USER 54 + ; inline add-windows-message +: TB_GETDISABLEDIMAGELIST WM_USER 55 + ; inline add-windows-message +: TB_SETSTYLE WM_USER 56 + ; inline add-windows-message +: TB_GETSTYLE WM_USER 57 + ; inline add-windows-message +: TB_GETBUTTONSIZE WM_USER 58 + ; inline add-windows-message +: TB_SETBUTTONWIDTH WM_USER 59 + ; inline add-windows-message +: TB_SETMAXTEXTROWS WM_USER 60 + ; inline add-windows-message +: TB_GETTEXTROWS WM_USER 61 + ; inline add-windows-message +: TB_GETOBJECT WM_USER 62 + ; inline add-windows-message +: TB_GETHOTITEM WM_USER 71 + ; inline add-windows-message +: TB_SETHOTITEM WM_USER 72 + ; inline add-windows-message +: TB_SETANCHORHIGHLIGHT WM_USER 73 + ; inline add-windows-message +: TB_GETANCHORHIGHLIGHT WM_USER 74 + ; inline add-windows-message +: TB_MAPACCELERATORA WM_USER 78 + ; inline add-windows-message +: TB_GETINSERTMARK WM_USER 79 + ; inline add-windows-message +: TB_SETINSERTMARK WM_USER 80 + ; inline add-windows-message +: TB_INSERTMARKHITTEST WM_USER 81 + ; inline add-windows-message +: TB_MOVEBUTTON WM_USER 82 + ; inline add-windows-message +: TB_GETMAXSIZE WM_USER 83 + ; inline add-windows-message +: TB_SETEXTENDEDSTYLE WM_USER 84 + ; inline add-windows-message +: TB_GETEXTENDEDSTYLE WM_USER 85 + ; inline add-windows-message +: TB_GETPADDING WM_USER 86 + ; inline add-windows-message +: TB_SETPADDING WM_USER 87 + ; inline add-windows-message +: TB_SETINSERTMARKCOLOR WM_USER 88 + ; inline add-windows-message +: TB_GETINSERTMARKCOLOR WM_USER 89 + ; inline add-windows-message +: TB_SETCOLORSCHEME CCM_SETCOLORSCHEME ; inline add-windows-message +: TB_GETCOLORSCHEME CCM_GETCOLORSCHEME ; inline add-windows-message +: TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: TB_MAPACCELERATORW WM_USER 90 + ; inline add-windows-message +: TB_GETBITMAPFLAGS WM_USER 41 + ; inline add-windows-message +: TB_GETBUTTONINFOW WM_USER 63 + ; inline add-windows-message +: TB_SETBUTTONINFOW WM_USER 64 + ; inline add-windows-message +: TB_GETBUTTONINFOA WM_USER 65 + ; inline add-windows-message +: TB_SETBUTTONINFOA WM_USER 66 + ; inline add-windows-message +: TB_INSERTBUTTONW WM_USER 67 + ; inline add-windows-message +: TB_ADDBUTTONSW WM_USER 68 + ; inline add-windows-message +: TB_HITTEST WM_USER 69 + ; inline add-windows-message +: TB_SETDRAWTEXTFLAGS WM_USER 70 + ; inline add-windows-message +: TB_GETSTRINGW WM_USER 91 + ; inline add-windows-message +: TB_GETSTRINGA WM_USER 92 + ; inline add-windows-message +: TB_GETMETRICS WM_USER 101 + ; inline add-windows-message +: TB_SETMETRICS WM_USER 102 + ; inline add-windows-message +: TB_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline add-windows-message +: RB_INSERTBANDA WM_USER 1 + ; inline add-windows-message +: RB_DELETEBAND WM_USER 2 + ; inline add-windows-message +: RB_GETBARINFO WM_USER 3 + ; inline add-windows-message +: RB_SETBARINFO WM_USER 4 + ; inline add-windows-message +: RB_GETBANDINFO WM_USER 5 + ; inline add-windows-message +: RB_SETBANDINFOA WM_USER 6 + ; inline add-windows-message +: RB_SETPARENT WM_USER 7 + ; inline add-windows-message +: RB_HITTEST WM_USER 8 + ; inline add-windows-message +: RB_GETRECT WM_USER 9 + ; inline add-windows-message +: RB_INSERTBANDW WM_USER 10 + ; inline add-windows-message +: RB_SETBANDINFOW WM_USER 11 + ; inline add-windows-message +: RB_GETBANDCOUNT WM_USER 12 + ; inline add-windows-message +: RB_GETROWCOUNT WM_USER 13 + ; inline add-windows-message +: RB_GETROWHEIGHT WM_USER 14 + ; inline add-windows-message +: RB_IDTOINDEX WM_USER 16 + ; inline add-windows-message +: RB_GETTOOLTIPS WM_USER 17 + ; inline add-windows-message +: RB_SETTOOLTIPS WM_USER 18 + ; inline add-windows-message +: RB_SETBKCOLOR WM_USER 19 + ; inline add-windows-message +: RB_GETBKCOLOR WM_USER 20 + ; inline add-windows-message +: RB_SETTEXTCOLOR WM_USER 21 + ; inline add-windows-message +: RB_GETTEXTCOLOR WM_USER 22 + ; inline add-windows-message +: RB_SIZETORECT WM_USER 23 + ; inline add-windows-message +: RB_SETCOLORSCHEME CCM_SETCOLORSCHEME ; inline add-windows-message +: RB_GETCOLORSCHEME CCM_GETCOLORSCHEME ; inline add-windows-message +: RB_BEGINDRAG WM_USER 24 + ; inline add-windows-message +: RB_ENDDRAG WM_USER 25 + ; inline add-windows-message +: RB_DRAGMOVE WM_USER 26 + ; inline add-windows-message +: RB_GETBARHEIGHT WM_USER 27 + ; inline add-windows-message +: RB_GETBANDINFOW WM_USER 28 + ; inline add-windows-message +: RB_GETBANDINFOA WM_USER 29 + ; inline add-windows-message +: RB_MINIMIZEBAND WM_USER 30 + ; inline add-windows-message +: RB_MAXIMIZEBAND WM_USER 31 + ; inline add-windows-message +: RB_GETDROPTARGET CCM_GETDROPTARGET ; inline add-windows-message +: RB_GETBANDBORDERS WM_USER 34 + ; inline add-windows-message +: RB_SHOWBAND WM_USER 35 + ; inline add-windows-message +: RB_SETPALETTE WM_USER 37 + ; inline add-windows-message +: RB_GETPALETTE WM_USER 38 + ; inline add-windows-message +: RB_MOVEBAND WM_USER 39 + ; inline add-windows-message +: RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: RB_GETBANDMARGINS WM_USER 40 + ; inline add-windows-message +: RB_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline add-windows-message +: RB_PUSHCHEVRON WM_USER 43 + ; inline add-windows-message +: TTM_ACTIVATE WM_USER 1 + ; inline add-windows-message +: TTM_SETDELAYTIME WM_USER 3 + ; inline add-windows-message +: TTM_ADDTOOLA WM_USER 4 + ; inline add-windows-message +: TTM_ADDTOOLW WM_USER 50 + ; inline add-windows-message +: TTM_DELTOOLA WM_USER 5 + ; inline add-windows-message +: TTM_DELTOOLW WM_USER 51 + ; inline add-windows-message +: TTM_NEWTOOLRECTA WM_USER 6 + ; inline add-windows-message +: TTM_NEWTOOLRECTW WM_USER 52 + ; inline add-windows-message +: TTM_RELAYEVENT WM_USER 7 + ; inline add-windows-message +: TTM_GETTOOLINFOA WM_USER 8 + ; inline add-windows-message +: TTM_GETTOOLINFOW WM_USER 53 + ; inline add-windows-message +: TTM_SETTOOLINFOA WM_USER 9 + ; inline add-windows-message +: TTM_SETTOOLINFOW WM_USER 54 + ; inline add-windows-message +: TTM_HITTESTA WM_USER 10 + ; inline add-windows-message +: TTM_HITTESTW WM_USER 55 + ; inline add-windows-message +: TTM_GETTEXTA WM_USER 11 + ; inline add-windows-message +: TTM_GETTEXTW WM_USER 56 + ; inline add-windows-message +: TTM_UPDATETIPTEXTA WM_USER 12 + ; inline add-windows-message +: TTM_UPDATETIPTEXTW WM_USER 57 + ; inline add-windows-message +: TTM_GETTOOLCOUNT WM_USER 13 + ; inline add-windows-message +: TTM_ENUMTOOLSA WM_USER 14 + ; inline add-windows-message +: TTM_ENUMTOOLSW WM_USER 58 + ; inline add-windows-message +: TTM_GETCURRENTTOOLA WM_USER 15 + ; inline add-windows-message +: TTM_GETCURRENTTOOLW WM_USER 59 + ; inline add-windows-message +: TTM_WINDOWFROMPOINT WM_USER 16 + ; inline add-windows-message +: TTM_TRACKACTIVATE WM_USER 17 + ; inline add-windows-message +: TTM_TRACKPOSITION WM_USER 18 + ; inline add-windows-message +: TTM_SETTIPBKCOLOR WM_USER 19 + ; inline add-windows-message +: TTM_SETTIPTEXTCOLOR WM_USER 20 + ; inline add-windows-message +: TTM_GETDELAYTIME WM_USER 21 + ; inline add-windows-message +: TTM_GETTIPBKCOLOR WM_USER 22 + ; inline add-windows-message +: TTM_GETTIPTEXTCOLOR WM_USER 23 + ; inline add-windows-message +: TTM_SETMAXTIPWIDTH WM_USER 24 + ; inline add-windows-message +: TTM_GETMAXTIPWIDTH WM_USER 25 + ; inline add-windows-message +: TTM_SETMARGIN WM_USER 26 + ; inline add-windows-message +: TTM_GETMARGIN WM_USER 27 + ; inline add-windows-message +: TTM_POP WM_USER 28 + ; inline add-windows-message +: TTM_UPDATE WM_USER 29 + ; inline add-windows-message +: TTM_GETBUBBLESIZE WM_USER 30 + ; inline add-windows-message +: TTM_ADJUSTRECT WM_USER 31 + ; inline add-windows-message +: TTM_SETTITLEA WM_USER 32 + ; inline add-windows-message +: TTM_SETTITLEW WM_USER 33 + ; inline add-windows-message +: TTM_POPUP WM_USER 34 + ; inline add-windows-message +: TTM_GETTITLE WM_USER 35 + ; inline add-windows-message +: TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline add-windows-message +: SB_SETTEXTA WM_USER 1+ ; inline add-windows-message +: SB_SETTEXTW WM_USER 11 + ; inline add-windows-message +: SB_GETTEXTA WM_USER 2 + ; inline add-windows-message +: SB_GETTEXTW WM_USER 13 + ; inline add-windows-message +: SB_GETTEXTLENGTHA WM_USER 3 + ; inline add-windows-message +: SB_GETTEXTLENGTHW WM_USER 12 + ; inline add-windows-message +: SB_SETPARTS WM_USER 4 + ; inline add-windows-message +: SB_GETPARTS WM_USER 6 + ; inline add-windows-message +: SB_GETBORDERS WM_USER 7 + ; inline add-windows-message +: SB_SETMINHEIGHT WM_USER 8 + ; inline add-windows-message +: SB_SIMPLE WM_USER 9 + ; inline add-windows-message +: SB_GETRECT WM_USER 10 + ; inline add-windows-message +: SB_ISSIMPLE WM_USER 14 + ; inline add-windows-message +: SB_SETICON WM_USER 15 + ; inline add-windows-message +: SB_SETTIPTEXTA WM_USER 16 + ; inline add-windows-message +: SB_SETTIPTEXTW WM_USER 17 + ; inline add-windows-message +: SB_GETTIPTEXTA WM_USER 18 + ; inline add-windows-message +: SB_GETTIPTEXTW WM_USER 19 + ; inline add-windows-message +: SB_GETICON WM_USER 20 + ; inline add-windows-message +: SB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: SB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: SB_SETBKCOLOR CCM_SETBKCOLOR ; inline add-windows-message +: SB_SIMPLEID HEX: 00ff ; inline add-windows-message +: TBM_GETPOS WM_USER ; inline add-windows-message +: TBM_GETRANGEMIN WM_USER 1 + ; inline add-windows-message +: TBM_GETRANGEMAX WM_USER 2 + ; inline add-windows-message +: TBM_GETTIC WM_USER 3 + ; inline add-windows-message +: TBM_SETTIC WM_USER 4 + ; inline add-windows-message +: TBM_SETPOS WM_USER 5 + ; inline add-windows-message +: TBM_SETRANGE WM_USER 6 + ; inline add-windows-message +: TBM_SETRANGEMIN WM_USER 7 + ; inline add-windows-message +: TBM_SETRANGEMAX WM_USER 8 + ; inline add-windows-message +: TBM_CLEARTICS WM_USER 9 + ; inline add-windows-message +: TBM_SETSEL WM_USER 10 + ; inline add-windows-message +: TBM_SETSELSTART WM_USER 11 + ; inline add-windows-message +: TBM_SETSELEND WM_USER 12 + ; inline add-windows-message +: TBM_GETPTICS WM_USER 14 + ; inline add-windows-message +: TBM_GETTICPOS WM_USER 15 + ; inline add-windows-message +: TBM_GETNUMTICS WM_USER 16 + ; inline add-windows-message +: TBM_GETSELSTART WM_USER 17 + ; inline add-windows-message +: TBM_GETSELEND WM_USER 18 + ; inline add-windows-message +: TBM_CLEARSEL WM_USER 19 + ; inline add-windows-message +: TBM_SETTICFREQ WM_USER 20 + ; inline add-windows-message +: TBM_SETPAGESIZE WM_USER 21 + ; inline add-windows-message +: TBM_GETPAGESIZE WM_USER 22 + ; inline add-windows-message +: TBM_SETLINESIZE WM_USER 23 + ; inline add-windows-message +: TBM_GETLINESIZE WM_USER 24 + ; inline add-windows-message +: TBM_GETTHUMBRECT WM_USER 25 + ; inline add-windows-message +: TBM_GETCHANNELRECT WM_USER 26 + ; inline add-windows-message +: TBM_SETTHUMBLENGTH WM_USER 27 + ; inline add-windows-message +: TBM_GETTHUMBLENGTH WM_USER 28 + ; inline add-windows-message +: TBM_SETTOOLTIPS WM_USER 29 + ; inline add-windows-message +: TBM_GETTOOLTIPS WM_USER 30 + ; inline add-windows-message +: TBM_SETTIPSIDE WM_USER 31 + ; inline add-windows-message +: TBM_SETBUDDY WM_USER 32 + ; inline add-windows-message +: TBM_GETBUDDY WM_USER 33 + ; inline add-windows-message +: TBM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: TBM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: DL_BEGINDRAG WM_USER 133 + ; inline add-windows-message +: DL_DRAGGING WM_USER 134 + ; inline add-windows-message +: DL_DROPPED WM_USER 135 + ; inline add-windows-message +: DL_CANCELDRAG WM_USER 136 + ; inline add-windows-message +: UDM_SETRANGE WM_USER 101 + ; inline add-windows-message +: UDM_GETRANGE WM_USER 102 + ; inline add-windows-message +: UDM_SETPOS WM_USER 103 + ; inline add-windows-message +: UDM_GETPOS WM_USER 104 + ; inline add-windows-message +: UDM_SETBUDDY WM_USER 105 + ; inline add-windows-message +: UDM_GETBUDDY WM_USER 106 + ; inline add-windows-message +: UDM_SETACCEL WM_USER 107 + ; inline add-windows-message +: UDM_GETACCEL WM_USER 108 + ; inline add-windows-message +: UDM_SETBASE WM_USER 109 + ; inline add-windows-message +: UDM_GETBASE WM_USER 110 + ; inline add-windows-message +: UDM_SETRANGE32 WM_USER 111 + ; inline add-windows-message +: UDM_GETRANGE32 WM_USER 112 + ; inline add-windows-message +: UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: UDM_SETPOS32 WM_USER 113 + ; inline add-windows-message +: UDM_GETPOS32 WM_USER 114 + ; inline add-windows-message +: PBM_SETRANGE WM_USER 1 + ; inline add-windows-message +: PBM_SETPOS WM_USER 2 + ; inline add-windows-message +: PBM_DELTAPOS WM_USER 3 + ; inline add-windows-message +: PBM_SETSTEP WM_USER 4 + ; inline add-windows-message +: PBM_STEPIT WM_USER 5 + ; inline add-windows-message +: PBM_SETRANGE32 WM_USER 6 + ; inline add-windows-message +: PBM_GETRANGE WM_USER 7 + ; inline add-windows-message +: PBM_GETPOS WM_USER 8 + ; inline add-windows-message +: PBM_SETBARCOLOR WM_USER 9 + ; inline add-windows-message +: PBM_SETBKCOLOR CCM_SETBKCOLOR ; inline add-windows-message +: HKM_SETHOTKEY WM_USER 1 + ; inline add-windows-message +: HKM_GETHOTKEY WM_USER 2 + ; inline add-windows-message +: HKM_SETRULES WM_USER 3 + ; inline add-windows-message +: LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: LVM_GETBKCOLOR LVM_FIRST 0 + ; inline add-windows-message +: LVM_SETBKCOLOR LVM_FIRST 1 + ; inline add-windows-message +: LVM_GETIMAGELIST LVM_FIRST 2 + ; inline add-windows-message +: LVM_SETIMAGELIST LVM_FIRST 3 + ; inline add-windows-message +: LVM_GETITEMCOUNT LVM_FIRST 4 + ; inline add-windows-message +: LVM_GETITEMA LVM_FIRST 5 + ; inline add-windows-message +: LVM_GETITEMW LVM_FIRST 75 + ; inline add-windows-message +: LVM_SETITEMA LVM_FIRST 6 + ; inline add-windows-message +: LVM_SETITEMW LVM_FIRST 76 + ; inline add-windows-message +: LVM_INSERTITEMA LVM_FIRST 7 + ; inline add-windows-message +: LVM_INSERTITEMW LVM_FIRST 77 + ; inline add-windows-message +: LVM_DELETEITEM LVM_FIRST 8 + ; inline add-windows-message +: LVM_DELETEALLITEMS LVM_FIRST 9 + ; inline add-windows-message +: LVM_GETCALLBACKMASK LVM_FIRST 10 + ; inline add-windows-message +: LVM_SETCALLBACKMASK LVM_FIRST 11 + ; inline add-windows-message +: LVM_FINDITEMA LVM_FIRST 13 + ; inline add-windows-message +: LVM_FINDITEMW LVM_FIRST 83 + ; inline add-windows-message +: LVM_GETITEMRECT LVM_FIRST 14 + ; inline add-windows-message +: LVM_SETITEMPOSITION LVM_FIRST 15 + ; inline add-windows-message +: LVM_GETITEMPOSITION LVM_FIRST 16 + ; inline add-windows-message +: LVM_GETSTRINGWIDTHA LVM_FIRST 17 + ; inline add-windows-message +: LVM_GETSTRINGWIDTHW LVM_FIRST 87 + ; inline add-windows-message +: LVM_HITTEST LVM_FIRST 18 + ; inline add-windows-message +: LVM_ENSUREVISIBLE LVM_FIRST 19 + ; inline add-windows-message +: LVM_SCROLL LVM_FIRST 20 + ; inline add-windows-message +: LVM_REDRAWITEMS LVM_FIRST 21 + ; inline add-windows-message +: LVM_ARRANGE LVM_FIRST 22 + ; inline add-windows-message +: LVM_EDITLABELA LVM_FIRST 23 + ; inline add-windows-message +: LVM_EDITLABELW LVM_FIRST 118 + ; inline add-windows-message +: LVM_GETEDITCONTROL LVM_FIRST 24 + ; inline add-windows-message +: LVM_GETCOLUMNA LVM_FIRST 25 + ; inline add-windows-message +: LVM_GETCOLUMNW LVM_FIRST 95 + ; inline add-windows-message +: LVM_SETCOLUMNA LVM_FIRST 26 + ; inline add-windows-message +: LVM_SETCOLUMNW LVM_FIRST 96 + ; inline add-windows-message +: LVM_INSERTCOLUMNA LVM_FIRST 27 + ; inline add-windows-message +: LVM_INSERTCOLUMNW LVM_FIRST 97 + ; inline add-windows-message +: LVM_DELETECOLUMN LVM_FIRST 28 + ; inline add-windows-message +: LVM_GETCOLUMNWIDTH LVM_FIRST 29 + ; inline add-windows-message +: LVM_SETCOLUMNWIDTH LVM_FIRST 30 + ; inline add-windows-message +: LVM_CREATEDRAGIMAGE LVM_FIRST 33 + ; inline add-windows-message +: LVM_GETVIEWRECT LVM_FIRST 34 + ; inline add-windows-message +: LVM_GETTEXTCOLOR LVM_FIRST 35 + ; inline add-windows-message +: LVM_SETTEXTCOLOR LVM_FIRST 36 + ; inline add-windows-message +: LVM_GETTEXTBKCOLOR LVM_FIRST 37 + ; inline add-windows-message +: LVM_SETTEXTBKCOLOR LVM_FIRST 38 + ; inline add-windows-message +: LVM_GETTOPINDEX LVM_FIRST 39 + ; inline add-windows-message +: LVM_GETCOUNTPERPAGE LVM_FIRST 40 + ; inline add-windows-message +: LVM_GETORIGIN LVM_FIRST 41 + ; inline add-windows-message +: LVM_UPDATE LVM_FIRST 42 + ; inline add-windows-message +: LVM_SETITEMSTATE LVM_FIRST 43 + ; inline add-windows-message +: LVM_GETITEMSTATE LVM_FIRST 44 + ; inline add-windows-message +: LVM_GETITEMTEXTA LVM_FIRST 45 + ; inline add-windows-message +: LVM_GETITEMTEXTW LVM_FIRST 115 + ; inline add-windows-message +: LVM_SETITEMTEXTA LVM_FIRST 46 + ; inline add-windows-message +: LVM_SETITEMTEXTW LVM_FIRST 116 + ; inline add-windows-message +: LVM_SETITEMCOUNT LVM_FIRST 47 + ; inline add-windows-message +: LVM_SORTITEMS LVM_FIRST 48 + ; inline add-windows-message +: LVM_SETITEMPOSITION32 LVM_FIRST 49 + ; inline add-windows-message +: LVM_GETSELECTEDCOUNT LVM_FIRST 50 + ; inline add-windows-message +: LVM_GETITEMSPACING LVM_FIRST 51 + ; inline add-windows-message +: LVM_GETISEARCHSTRINGA LVM_FIRST 52 + ; inline add-windows-message +: LVM_GETISEARCHSTRINGW LVM_FIRST 117 + ; inline add-windows-message +: LVM_SETICONSPACING LVM_FIRST 53 + ; inline add-windows-message +: LVM_SETEXTENDEDLISTVIEWSTYLE LVM_FIRST 54 + ; inline add-windows-message +: LVM_GETEXTENDEDLISTVIEWSTYLE LVM_FIRST 55 + ; inline add-windows-message +: LVM_GETSUBITEMRECT LVM_FIRST 56 + ; inline add-windows-message +: LVM_SUBITEMHITTEST LVM_FIRST 57 + ; inline add-windows-message +: LVM_SETCOLUMNORDERARRAY LVM_FIRST 58 + ; inline add-windows-message +: LVM_GETCOLUMNORDERARRAY LVM_FIRST 59 + ; inline add-windows-message +: LVM_SETHOTITEM LVM_FIRST 60 + ; inline add-windows-message +: LVM_GETHOTITEM LVM_FIRST 61 + ; inline add-windows-message +: LVM_SETHOTCURSOR LVM_FIRST 62 + ; inline add-windows-message +: LVM_GETHOTCURSOR LVM_FIRST 63 + ; inline add-windows-message +: LVM_APPROXIMATEVIEWRECT LVM_FIRST 64 + ; inline add-windows-message +: LVM_SETWORKAREAS LVM_FIRST 65 + ; inline add-windows-message +: LVM_GETWORKAREAS LVM_FIRST 70 + ; inline add-windows-message +: LVM_GETNUMBEROFWORKAREAS LVM_FIRST 73 + ; inline add-windows-message +: LVM_GETSELECTIONMARK LVM_FIRST 66 + ; inline add-windows-message +: LVM_SETSELECTIONMARK LVM_FIRST 67 + ; inline add-windows-message +: LVM_SETHOVERTIME LVM_FIRST 71 + ; inline add-windows-message +: LVM_GETHOVERTIME LVM_FIRST 72 + ; inline add-windows-message +: LVM_SETTOOLTIPS LVM_FIRST 74 + ; inline add-windows-message +: LVM_GETTOOLTIPS LVM_FIRST 78 + ; inline add-windows-message +: LVM_SORTITEMSEX LVM_FIRST 81 + ; inline add-windows-message +: LVM_SETBKIMAGEA LVM_FIRST 68 + ; inline add-windows-message +: LVM_SETBKIMAGEW LVM_FIRST 138 + ; inline add-windows-message +: LVM_GETBKIMAGEA LVM_FIRST 69 + ; inline add-windows-message +: LVM_GETBKIMAGEW LVM_FIRST 139 + ; inline add-windows-message +: LVM_SETSELECTEDCOLUMN LVM_FIRST 140 + ; inline add-windows-message +: LVM_SETTILEWIDTH LVM_FIRST 141 + ; inline add-windows-message +: LVM_SETVIEW LVM_FIRST 142 + ; inline add-windows-message +: LVM_GETVIEW LVM_FIRST 143 + ; inline add-windows-message +: LVM_INSERTGROUP LVM_FIRST 145 + ; inline add-windows-message +: LVM_SETGROUPINFO LVM_FIRST 147 + ; inline add-windows-message +: LVM_GETGROUPINFO LVM_FIRST 149 + ; inline add-windows-message +: LVM_REMOVEGROUP LVM_FIRST 150 + ; inline add-windows-message +: LVM_MOVEGROUP LVM_FIRST 151 + ; inline add-windows-message +: LVM_MOVEITEMTOGROUP LVM_FIRST 154 + ; inline add-windows-message +: LVM_SETGROUPMETRICS LVM_FIRST 155 + ; inline add-windows-message +: LVM_GETGROUPMETRICS LVM_FIRST 156 + ; inline add-windows-message +: LVM_ENABLEGROUPVIEW LVM_FIRST 157 + ; inline add-windows-message +: LVM_SORTGROUPS LVM_FIRST 158 + ; inline add-windows-message +: LVM_INSERTGROUPSORTED LVM_FIRST 159 + ; inline add-windows-message +: LVM_REMOVEALLGROUPS LVM_FIRST 160 + ; inline add-windows-message +: LVM_HASGROUP LVM_FIRST 161 + ; inline add-windows-message +: LVM_SETTILEVIEWINFO LVM_FIRST 162 + ; inline add-windows-message +: LVM_GETTILEVIEWINFO LVM_FIRST 163 + ; inline add-windows-message +: LVM_SETTILEINFO LVM_FIRST 164 + ; inline add-windows-message +: LVM_GETTILEINFO LVM_FIRST 165 + ; inline add-windows-message +: LVM_SETINSERTMARK LVM_FIRST 166 + ; inline add-windows-message +: LVM_GETINSERTMARK LVM_FIRST 167 + ; inline add-windows-message +: LVM_INSERTMARKHITTEST LVM_FIRST 168 + ; inline add-windows-message +: LVM_GETINSERTMARKRECT LVM_FIRST 169 + ; inline add-windows-message +: LVM_SETINSERTMARKCOLOR LVM_FIRST 170 + ; inline add-windows-message +: LVM_GETINSERTMARKCOLOR LVM_FIRST 171 + ; inline add-windows-message +: LVM_SETINFOTIP LVM_FIRST 173 + ; inline add-windows-message +: LVM_GETSELECTEDCOLUMN LVM_FIRST 174 + ; inline add-windows-message +: LVM_ISGROUPVIEWENABLED LVM_FIRST 175 + ; inline add-windows-message +: LVM_GETOUTLINECOLOR LVM_FIRST 176 + ; inline add-windows-message +: LVM_SETOUTLINECOLOR LVM_FIRST 177 + ; inline add-windows-message +: LVM_CANCELEDITLABEL LVM_FIRST 179 + ; inline add-windows-message +: LVM_MAPINDEXTOID LVM_FIRST 180 + ; inline add-windows-message +: LVM_MAPIDTOINDEX LVM_FIRST 181 + ; inline add-windows-message +: TVM_INSERTITEMA TV_FIRST 0 + ; inline add-windows-message +: TVM_INSERTITEMW TV_FIRST 50 + ; inline add-windows-message +: TVM_DELETEITEM TV_FIRST 1 + ; inline add-windows-message +: TVM_EXPAND TV_FIRST 2 + ; inline add-windows-message +: TVM_GETITEMRECT TV_FIRST 4 + ; inline add-windows-message +: TVM_GETCOUNT TV_FIRST 5 + ; inline add-windows-message +: TVM_GETINDENT TV_FIRST 6 + ; inline add-windows-message +: TVM_SETINDENT TV_FIRST 7 + ; inline add-windows-message +: TVM_GETIMAGELIST TV_FIRST 8 + ; inline add-windows-message +: TVM_SETIMAGELIST TV_FIRST 9 + ; inline add-windows-message +: TVM_GETNEXTITEM TV_FIRST 10 + ; inline add-windows-message +: TVM_SELECTITEM TV_FIRST 11 + ; inline add-windows-message +: TVM_GETITEMA TV_FIRST 12 + ; inline add-windows-message +: TVM_GETITEMW TV_FIRST 62 + ; inline add-windows-message +: TVM_SETITEMA TV_FIRST 13 + ; inline add-windows-message +: TVM_SETITEMW TV_FIRST 63 + ; inline add-windows-message +: TVM_EDITLABELA TV_FIRST 14 + ; inline add-windows-message +: TVM_EDITLABELW TV_FIRST 65 + ; inline add-windows-message +: TVM_GETEDITCONTROL TV_FIRST 15 + ; inline add-windows-message +: TVM_GETVISIBLECOUNT TV_FIRST 16 + ; inline add-windows-message +: TVM_HITTEST TV_FIRST 17 + ; inline add-windows-message +: TVM_CREATEDRAGIMAGE TV_FIRST 18 + ; inline add-windows-message +: TVM_SORTCHILDREN TV_FIRST 19 + ; inline add-windows-message +: TVM_ENSUREVISIBLE TV_FIRST 20 + ; inline add-windows-message +: TVM_SORTCHILDRENCB TV_FIRST 21 + ; inline add-windows-message +: TVM_ENDEDITLABELNOW TV_FIRST 22 + ; inline add-windows-message +: TVM_GETISEARCHSTRINGA TV_FIRST 23 + ; inline add-windows-message +: TVM_GETISEARCHSTRINGW TV_FIRST 64 + ; inline add-windows-message +: TVM_SETTOOLTIPS TV_FIRST 24 + ; inline add-windows-message +: TVM_GETTOOLTIPS TV_FIRST 25 + ; inline add-windows-message +: TVM_SETINSERTMARK TV_FIRST 26 + ; inline add-windows-message +: TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: TVM_SETITEMHEIGHT TV_FIRST 27 + ; inline add-windows-message +: TVM_GETITEMHEIGHT TV_FIRST 28 + ; inline add-windows-message +: TVM_SETBKCOLOR TV_FIRST 29 + ; inline add-windows-message +: TVM_SETTEXTCOLOR TV_FIRST 30 + ; inline add-windows-message +: TVM_GETBKCOLOR TV_FIRST 31 + ; inline add-windows-message +: TVM_GETTEXTCOLOR TV_FIRST 32 + ; inline add-windows-message +: TVM_SETSCROLLTIME TV_FIRST 33 + ; inline add-windows-message +: TVM_GETSCROLLTIME TV_FIRST 34 + ; inline add-windows-message +: TVM_SETINSERTMARKCOLOR TV_FIRST 37 + ; inline add-windows-message +: TVM_GETINSERTMARKCOLOR TV_FIRST 38 + ; inline add-windows-message +: TVM_GETITEMSTATE TV_FIRST 39 + ; inline add-windows-message +: TVM_SETLINECOLOR TV_FIRST 40 + ; inline add-windows-message +: TVM_GETLINECOLOR TV_FIRST 41 + ; inline add-windows-message +: TVM_MAPACCIDTOHTREEITEM TV_FIRST 42 + ; inline add-windows-message +: TVM_MAPHTREEITEMTOACCID TV_FIRST 43 + ; inline add-windows-message +: CBEM_INSERTITEMA WM_USER 1 + ; inline add-windows-message +: CBEM_SETIMAGELIST WM_USER 2 + ; inline add-windows-message +: CBEM_GETIMAGELIST WM_USER 3 + ; inline add-windows-message +: CBEM_GETITEMA WM_USER 4 + ; inline add-windows-message +: CBEM_SETITEMA WM_USER 5 + ; inline add-windows-message +: CBEM_DELETEITEM CB_DELETESTRING ; inline add-windows-message +: CBEM_GETCOMBOCONTROL WM_USER 6 + ; inline add-windows-message +: CBEM_GETEDITCONTROL WM_USER 7 + ; inline add-windows-message +: CBEM_SETEXTENDEDSTYLE WM_USER 14 + ; inline add-windows-message +: CBEM_GETEXTENDEDSTYLE WM_USER 9 + ; inline add-windows-message +: CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: CBEM_SETEXSTYLE WM_USER 8 + ; inline add-windows-message +: CBEM_GETEXSTYLE WM_USER 9 + ; inline add-windows-message +: CBEM_HASEDITCHANGED WM_USER 10 + ; inline add-windows-message +: CBEM_INSERTITEMW WM_USER 11 + ; inline add-windows-message +: CBEM_SETITEMW WM_USER 12 + ; inline add-windows-message +: CBEM_GETITEMW WM_USER 13 + ; inline add-windows-message +: TCM_GETIMAGELIST TCM_FIRST 2 + ; inline add-windows-message +: TCM_SETIMAGELIST TCM_FIRST 3 + ; inline add-windows-message +: TCM_GETITEMCOUNT TCM_FIRST 4 + ; inline add-windows-message +: TCM_GETITEMA TCM_FIRST 5 + ; inline add-windows-message +: TCM_GETITEMW TCM_FIRST 60 + ; inline add-windows-message +: TCM_SETITEMA TCM_FIRST 6 + ; inline add-windows-message +: TCM_SETITEMW TCM_FIRST 61 + ; inline add-windows-message +: TCM_INSERTITEMA TCM_FIRST 7 + ; inline add-windows-message +: TCM_INSERTITEMW TCM_FIRST 62 + ; inline add-windows-message +: TCM_DELETEITEM TCM_FIRST 8 + ; inline add-windows-message +: TCM_DELETEALLITEMS TCM_FIRST 9 + ; inline add-windows-message +: TCM_GETITEMRECT TCM_FIRST 10 + ; inline add-windows-message +: TCM_GETCURSEL TCM_FIRST 11 + ; inline add-windows-message +: TCM_SETCURSEL TCM_FIRST 12 + ; inline add-windows-message +: TCM_HITTEST TCM_FIRST 13 + ; inline add-windows-message +: TCM_SETITEMEXTRA TCM_FIRST 14 + ; inline add-windows-message +: TCM_ADJUSTRECT TCM_FIRST 40 + ; inline add-windows-message +: TCM_SETITEMSIZE TCM_FIRST 41 + ; inline add-windows-message +: TCM_REMOVEIMAGE TCM_FIRST 42 + ; inline add-windows-message +: TCM_SETPADDING TCM_FIRST 43 + ; inline add-windows-message +: TCM_GETROWCOUNT TCM_FIRST 44 + ; inline add-windows-message +: TCM_GETTOOLTIPS TCM_FIRST 45 + ; inline add-windows-message +: TCM_SETTOOLTIPS TCM_FIRST 46 + ; inline add-windows-message +: TCM_GETCURFOCUS TCM_FIRST 47 + ; inline add-windows-message +: TCM_SETCURFOCUS TCM_FIRST 48 + ; inline add-windows-message +: TCM_SETMINTABWIDTH TCM_FIRST 49 + ; inline add-windows-message +: TCM_DESELECTALL TCM_FIRST 50 + ; inline add-windows-message +: TCM_HIGHLIGHTITEM TCM_FIRST 51 + ; inline add-windows-message +: TCM_SETEXTENDEDSTYLE TCM_FIRST 52 + ; inline add-windows-message +: TCM_GETEXTENDEDSTYLE TCM_FIRST 53 + ; inline add-windows-message +: TCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: TCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: ACM_OPENA WM_USER 100 + ; inline add-windows-message +: ACM_OPENW WM_USER 103 + ; inline add-windows-message +: ACM_PLAY WM_USER 101 + ; inline add-windows-message +: ACM_STOP WM_USER 102 + ; inline add-windows-message +: MCM_FIRST HEX: 1000 ; inline add-windows-message +: MCM_GETCURSEL MCM_FIRST 1 + ; inline add-windows-message +: MCM_SETCURSEL MCM_FIRST 2 + ; inline add-windows-message +: MCM_GETMAXSELCOUNT MCM_FIRST 3 + ; inline add-windows-message +: MCM_SETMAXSELCOUNT MCM_FIRST 4 + ; inline add-windows-message +: MCM_GETSELRANGE MCM_FIRST 5 + ; inline add-windows-message +: MCM_SETSELRANGE MCM_FIRST 6 + ; inline add-windows-message +: MCM_GETMONTHRANGE MCM_FIRST 7 + ; inline add-windows-message +: MCM_SETDAYSTATE MCM_FIRST 8 + ; inline add-windows-message +: MCM_GETMINREQRECT MCM_FIRST 9 + ; inline add-windows-message +: MCM_SETCOLOR MCM_FIRST 10 + ; inline add-windows-message +: MCM_GETCOLOR MCM_FIRST 11 + ; inline add-windows-message +: MCM_SETTODAY MCM_FIRST 12 + ; inline add-windows-message +: MCM_GETTODAY MCM_FIRST 13 + ; inline add-windows-message +: MCM_HITTEST MCM_FIRST 14 + ; inline add-windows-message +: MCM_SETFIRSTDAYOFWEEK MCM_FIRST 15 + ; inline add-windows-message +: MCM_GETFIRSTDAYOFWEEK MCM_FIRST 16 + ; inline add-windows-message +: MCM_GETRANGE MCM_FIRST 17 + ; inline add-windows-message +: MCM_SETRANGE MCM_FIRST 18 + ; inline add-windows-message +: MCM_GETMONTHDELTA MCM_FIRST 19 + ; inline add-windows-message +: MCM_SETMONTHDELTA MCM_FIRST 20 + ; inline add-windows-message +: MCM_GETMAXTODAYWIDTH MCM_FIRST 21 + ; inline add-windows-message +: MCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message +: MCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message +: DTM_FIRST HEX: 1000 ; inline add-windows-message +: DTM_GETSYSTEMTIME DTM_FIRST 1 + ; inline add-windows-message +: DTM_SETSYSTEMTIME DTM_FIRST 2 + ; inline add-windows-message +: DTM_GETRANGE DTM_FIRST 3 + ; inline add-windows-message +: DTM_SETRANGE DTM_FIRST 4 + ; inline add-windows-message +: DTM_SETFORMATA DTM_FIRST 5 + ; inline add-windows-message +: DTM_SETFORMATW DTM_FIRST 50 + ; inline add-windows-message +: DTM_SETMCCOLOR DTM_FIRST 6 + ; inline add-windows-message +: DTM_GETMCCOLOR DTM_FIRST 7 + ; inline add-windows-message +: DTM_GETMONTHCAL DTM_FIRST 8 + ; inline add-windows-message +: DTM_SETMCFONT DTM_FIRST 9 + ; inline add-windows-message +: DTM_GETMCFONT DTM_FIRST 10 + ; inline add-windows-message +: PGM_SETCHILD PGM_FIRST 1 + ; inline add-windows-message +: PGM_RECALCSIZE PGM_FIRST 2 + ; inline add-windows-message +: PGM_FORWARDMOUSE PGM_FIRST 3 + ; inline add-windows-message +: PGM_SETBKCOLOR PGM_FIRST 4 + ; inline add-windows-message +: PGM_GETBKCOLOR PGM_FIRST 5 + ; inline add-windows-message +: PGM_SETBORDER PGM_FIRST 6 + ; inline add-windows-message +: PGM_GETBORDER PGM_FIRST 7 + ; inline add-windows-message +: PGM_SETPOS PGM_FIRST 8 + ; inline add-windows-message +: PGM_GETPOS PGM_FIRST 9 + ; inline add-windows-message +: PGM_SETBUTTONSIZE PGM_FIRST 10 + ; inline add-windows-message +: PGM_GETBUTTONSIZE PGM_FIRST 11 + ; inline add-windows-message +: PGM_GETBUTTONSTATE PGM_FIRST 12 + ; inline add-windows-message +: PGM_GETDROPTARGET CCM_GETDROPTARGET ; inline add-windows-message +: BCM_GETIDEALSIZE BCM_FIRST 1 + ; inline add-windows-message +: BCM_SETIMAGELIST BCM_FIRST 2 + ; inline add-windows-message +: BCM_GETIMAGELIST BCM_FIRST 3 + ; inline add-windows-message +: BCM_SETTEXTMARGIN BCM_FIRST 4 + ; inline add-windows-message +: BCM_GETTEXTMARGIN BCM_FIRST 5 + ; inline add-windows-message +: EM_SETCUEBANNER ECM_FIRST 1 + ; inline add-windows-message +: EM_GETCUEBANNER ECM_FIRST 2 + ; inline add-windows-message +: EM_SHOWBALLOONTIP ECM_FIRST 3 + ; inline add-windows-message +: EM_HIDEBALLOONTIP ECM_FIRST 4 + ; inline add-windows-message +: CB_SETMINVISIBLE CBM_FIRST 1 + ; inline add-windows-message +: CB_GETMINVISIBLE CBM_FIRST 2 + ; inline add-windows-message +: LM_HITTEST WM_USER HEX: 0300 + ; inline add-windows-message +: LM_GETIDEALHEIGHT WM_USER HEX: 0301 + ; inline add-windows-message +: LM_SETITEM WM_USER HEX: 0302 + ; inline add-windows-message +: LM_GETITEM WM_USER HEX: 0303 + ; inline add-windows-message