;--- include file created by h2incx v0.99.17, copyright 2005-2006 japheth
;--- source file: D:\Microsoft SDK\Include\winuser.h, last modified: 7/11/2001 23:43
;--- cmdline used for creation: -i -o ASM -d3 -I \vctk2003\include windows.h

ifndef _WINUSER_
_WINUSER_	EQU	<>
if  0 eq defined(_USER32_)
WINUSERAPI	EQU	<DECLSPEC_IMPORT>
else 
WINUSERAPI	EQU	<>
endif 
ifdef _MAC
	include macwin32.inc
endif 
ifdef __cplusplus
;extern "C"
;{
endif 
ifndef WINVER
WINVER	EQU	0500h
endif 
	include stdarg.inc
ifndef NOUSER
HDWP typedef HANDLE
MENUTEMPLATEA typedef BYTE
MENUTEMPLATEW typedef BYTE
ifdef UNICODE
MENUTEMPLATE typedef MENUTEMPLATEW
else 
MENUTEMPLATE typedef MENUTEMPLATEA
endif 
LPMENUTEMPLATEA typedef PVOID
LPMENUTEMPLATEW typedef PVOID
ifdef UNICODE
LPMENUTEMPLATE typedef LPMENUTEMPLATEW
else 
LPMENUTEMPLATE typedef LPMENUTEMPLATEA
endif 
proto_WNDPROC typedef proto stdcall :HWND,:DWORD,:WPARAM,:LPARAM
WNDPROC typedef ptr proto_WNDPROC
ifdef STRICT
proto_DLGPROC typedef proto stdcall :HWND,:DWORD,:WPARAM,:LPARAM
DLGPROC typedef ptr proto_DLGPROC
proto_TIMERPROC typedef proto stdcall :HWND,:DWORD,:UINT_PTR,:DWORD
TIMERPROC typedef ptr proto_TIMERPROC
proto_GRAYSTRINGPROC typedef proto stdcall :HDC,:LPARAM,:DWORD
GRAYSTRINGPROC typedef ptr proto_GRAYSTRINGPROC
proto_WNDENUMPROC typedef proto stdcall :HWND,:LPARAM
WNDENUMPROC typedef ptr proto_WNDENUMPROC
proto_HOOKPROC typedef proto stdcall :DWORD,:WPARAM,:LPARAM
HOOKPROC typedef ptr proto_HOOKPROC
proto_SENDASYNCPROC typedef proto stdcall :HWND,:DWORD,:DWORD,:LRESULT
SENDASYNCPROC typedef ptr proto_SENDASYNCPROC
proto_PROPENUMPROCA typedef proto stdcall :HWND,:LPSTR,:HANDLE
PROPENUMPROCA typedef ptr proto_PROPENUMPROCA
proto_PROPENUMPROCW typedef proto stdcall :HWND,:LPWSTR,:HANDLE
PROPENUMPROCW typedef ptr proto_PROPENUMPROCW
proto_PROPENUMPROCEXA typedef proto stdcall :HWND,:LPSTR,:HANDLE,:DWORD
PROPENUMPROCEXA typedef ptr proto_PROPENUMPROCEXA
proto_PROPENUMPROCEXW typedef proto stdcall :HWND,:LPWSTR,:HANDLE,:DWORD
PROPENUMPROCEXW typedef ptr proto_PROPENUMPROCEXW
proto_EDITWORDBREAKPROCA typedef proto stdcall :LPSTR,:DWORD,:DWORD,:DWORD
EDITWORDBREAKPROCA typedef ptr proto_EDITWORDBREAKPROCA
proto_EDITWORDBREAKPROCW typedef proto stdcall :LPWSTR,:DWORD,:DWORD,:DWORD
EDITWORDBREAKPROCW typedef ptr proto_EDITWORDBREAKPROCW
if (WINVER ge 0400h)
proto_DRAWSTATEPROC typedef proto stdcall :HDC,:LPARAM,:WPARAM,:DWORD,:DWORD
DRAWSTATEPROC typedef ptr proto_DRAWSTATEPROC
endif 
else 
DLGPROC typedef FARPROC
TIMERPROC typedef FARPROC
GRAYSTRINGPROC typedef FARPROC
WNDENUMPROC typedef FARPROC
HOOKPROC typedef FARPROC
SENDASYNCPROC typedef FARPROC
EDITWORDBREAKPROCA typedef FARPROC
EDITWORDBREAKPROCW typedef FARPROC
PROPENUMPROCA typedef FARPROC
PROPENUMPROCW typedef FARPROC
PROPENUMPROCEXA typedef FARPROC
PROPENUMPROCEXW typedef FARPROC
if (WINVER ge 0400h)
DRAWSTATEPROC typedef FARPROC
endif 
endif 
ifdef UNICODE
PROPENUMPROC typedef PROPENUMPROCW
PROPENUMPROCEX typedef PROPENUMPROCEXW
EDITWORDBREAKPROC typedef EDITWORDBREAKPROCW
else 
PROPENUMPROC typedef PROPENUMPROCA
PROPENUMPROCEX typedef PROPENUMPROCEXA
EDITWORDBREAKPROC typedef EDITWORDBREAKPROCA
endif 
ifdef STRICT
proto_NAMEENUMPROCA typedef proto stdcall :LPSTR,:LPARAM
NAMEENUMPROCA typedef ptr proto_NAMEENUMPROCA
proto_NAMEENUMPROCW typedef proto stdcall :LPWSTR,:LPARAM
NAMEENUMPROCW typedef ptr proto_NAMEENUMPROCW
WINSTAENUMPROCA typedef NAMEENUMPROCA
DESKTOPENUMPROCA typedef NAMEENUMPROCA
WINSTAENUMPROCW typedef NAMEENUMPROCW
DESKTOPENUMPROCW typedef NAMEENUMPROCW
else 
NAMEENUMPROCA typedef FARPROC
NAMEENUMPROCW typedef FARPROC
WINSTAENUMPROCA typedef FARPROC
DESKTOPENUMPROCA typedef FARPROC
WINSTAENUMPROCW typedef FARPROC
DESKTOPENUMPROCW typedef FARPROC
endif 
ifdef UNICODE
WINSTAENUMPROC typedef WINSTAENUMPROCW
DESKTOPENUMPROC typedef DESKTOPENUMPROCW
else 
WINSTAENUMPROC typedef WINSTAENUMPROCA
DESKTOPENUMPROC typedef DESKTOPENUMPROCA
endif 
IS_INTRESOURCE macro _r
	exitm <( ( ( _r )  shr  16 ) == 0 ) >
	endm
MAKEINTRESOURCEA macro i
	exitm <( ( ( i ) ) ) >
	endm
MAKEINTRESOURCE macro i
	exitm <( i )>
	endm
MAKEINTRESOURCEW macro i
	exitm <( ( ( i ) ) ) >
	endm
ifdef UNICODE
;MAKEINTRESOURCE	EQU	<MAKEINTRESOURCEW>
else 
;MAKEINTRESOURCE	EQU	<MAKEINTRESOURCEA>
endif 
ifndef NORESOURCE
RT_CURSOR	EQU	MAKEINTRESOURCE ( 1 )
RT_BITMAP	EQU	MAKEINTRESOURCE ( 2 )
RT_ICON	EQU	MAKEINTRESOURCE ( 3 )
RT_MENU	EQU	MAKEINTRESOURCE ( 4 )
RT_DIALOG	EQU	MAKEINTRESOURCE ( 5 )
RT_STRING	EQU	MAKEINTRESOURCE ( 6 )
RT_FONTDIR	EQU	MAKEINTRESOURCE ( 7 )
RT_FONT	EQU	MAKEINTRESOURCE ( 8 )
RT_ACCELERATOR	EQU	MAKEINTRESOURCE ( 9 )
RT_RCDATA	EQU	MAKEINTRESOURCE ( 10 )
RT_MESSAGETABLE	EQU	MAKEINTRESOURCE ( 11 )
DIFFERENCE	EQU	11
RT_GROUP_CURSOR	EQU	MAKEINTRESOURCE ( RT_CURSOR + DIFFERENCE )
RT_GROUP_ICON	EQU	MAKEINTRESOURCE ( RT_ICON + DIFFERENCE )
RT_VERSION	EQU	MAKEINTRESOURCE ( 16 )
RT_DLGINCLUDE	EQU	MAKEINTRESOURCE ( 17 )
if (WINVER ge 0400h)
RT_PLUGPLAY	EQU	MAKEINTRESOURCE ( 19 )
RT_VXD	EQU	MAKEINTRESOURCE ( 20 )
RT_ANICURSOR	EQU	MAKEINTRESOURCE ( 21 )
RT_ANIICON	EQU	MAKEINTRESOURCE ( 22 )
endif 
RT_HTML	EQU	MAKEINTRESOURCE ( 23 )
ifdef RC_INVOKED
RT_MANIFEST	EQU	24
CREATEPROCESS_MANIFEST_RESOURCE_ID	EQU	1
ISOLATIONAWARE_MANIFEST_RESOURCE_ID	EQU	2
ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID	EQU	3
MINIMUM_RESERVED_MANIFEST_RESOURCE_ID	EQU	1
MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID	EQU	16
else 
RT_MANIFEST	EQU	MAKEINTRESOURCE ( 24 )
CREATEPROCESS_MANIFEST_RESOURCE_ID	EQU	MAKEINTRESOURCE ( 1 )
ISOLATIONAWARE_MANIFEST_RESOURCE_ID	EQU	MAKEINTRESOURCE ( 2 )
ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID	EQU	MAKEINTRESOURCE ( 3 )
MINIMUM_RESERVED_MANIFEST_RESOURCE_ID	EQU	MAKEINTRESOURCE ( 1 )
MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID	EQU	MAKEINTRESOURCE ( 16 )
endif 
endif 
@DefProto WINUSERAPI, wvsprintfA, stdcall, , <:LPSTR, :LPSTR, :va_list>, 12
@DefProto WINUSERAPI, wvsprintfW, stdcall, , <:LPWSTR, :LPWSTR, :va_list>, 12
ifdef UNICODE
wvsprintf	EQU	<wvsprintfW>
else 
wvsprintf	EQU	<wvsprintfA>
endif 
@DefProto WINUSERAPI, wsprintfA, c, , <:LPSTR, :LPSTR, :VARARG>
@DefProto WINUSERAPI, wsprintfW, c, , <:LPWSTR, :LPWSTR, :VARARG>
ifdef UNICODE
wsprintf	EQU	<wsprintfW>
else 
wsprintf	EQU	<wsprintfA>
endif 
SETWALLPAPER_DEFAULT	EQU	- 1
ifndef NOSCROLL
SB_HORZ	EQU	0
SB_VERT	EQU	1
SB_CTL	EQU	2
SB_BOTH	EQU	3
SB_LINEUP	EQU	0
SB_LINELEFT	EQU	0
SB_LINEDOWN	EQU	1
SB_LINERIGHT	EQU	1
SB_PAGEUP	EQU	2
SB_PAGELEFT	EQU	2
SB_PAGEDOWN	EQU	3
SB_PAGERIGHT	EQU	3
SB_THUMBPOSITION	EQU	4
SB_THUMBTRACK	EQU	5
SB_TOP	EQU	6
SB_LEFT	EQU	6
SB_BOTTOM	EQU	7
SB_RIGHT	EQU	7
SB_ENDSCROLL	EQU	8
endif 
ifndef NOSHOWWINDOW
SW_HIDE	EQU	0
SW_SHOWNORMAL	EQU	1
SW_NORMAL	EQU	1
SW_SHOWMINIMIZED	EQU	2
SW_SHOWMAXIMIZED	EQU	3
SW_MAXIMIZE	EQU	3
SW_SHOWNOACTIVATE	EQU	4
SW_SHOW	EQU	5
SW_MINIMIZE	EQU	6
SW_SHOWMINNOACTIVE	EQU	7
SW_SHOWNA	EQU	8
SW_RESTORE	EQU	9
SW_SHOWDEFAULT	EQU	10
SW_FORCEMINIMIZE	EQU	11
SW_MAX	EQU	11
HIDE_WINDOW	EQU	0
SHOW_OPENWINDOW	EQU	1
SHOW_ICONWINDOW	EQU	2
SHOW_FULLSCREEN	EQU	3
SHOW_OPENNOACTIVATE	EQU	4
SW_PARENTCLOSING	EQU	1
SW_OTHERZOOM	EQU	2
SW_PARENTOPENING	EQU	3
SW_OTHERUNZOOM	EQU	4
endif 
if (WINVER ge 0500h)
AW_HOR_POSITIVE	EQU	00000001h
AW_HOR_NEGATIVE	EQU	00000002h
AW_VER_POSITIVE	EQU	00000004h
AW_VER_NEGATIVE	EQU	00000008h
AW_CENTER	EQU	00000010h
AW_HIDE	EQU	00010000h
AW_ACTIVATE	EQU	00020000h
AW_SLIDE	EQU	00040000h
AW_BLEND	EQU	00080000h
endif 
KF_EXTENDED	EQU	0100h
KF_DLGMODE	EQU	0800h
KF_MENUMODE	EQU	1000h
KF_ALTDOWN	EQU	2000h
KF_REPEAT	EQU	4000h
KF_UP	EQU	8000h
ifndef NOVIRTUALKEYCODES
VK_LBUTTON	EQU	01h
VK_RBUTTON	EQU	02h
VK_CANCEL	EQU	03h
VK_MBUTTON	EQU	04h
if (_WIN32_WINNT ge 0500h)
VK_XBUTTON1	EQU	05h
VK_XBUTTON2	EQU	06h
endif 
VK_BACK	EQU	08h
VK_TAB	EQU	09h
VK_CLEAR	EQU	0Ch
VK_RETURN	EQU	0Dh
VK_SHIFT	EQU	10h
VK_CONTROL	EQU	11h
VK_MENU	EQU	12h
VK_PAUSE	EQU	13h
VK_CAPITAL	EQU	14h
VK_KANA	EQU	15h
VK_HANGEUL	EQU	15h
VK_HANGUL	EQU	15h
VK_JUNJA	EQU	17h
VK_FINAL	EQU	18h
VK_HANJA	EQU	19h
VK_KANJI	EQU	19h
VK_ESCAPE	EQU	1Bh
VK_CONVERT	EQU	1Ch
VK_NONCONVERT	EQU	1Dh
VK_ACCEPT	EQU	1Eh
VK_MODECHANGE	EQU	1Fh
VK_SPACE	EQU	20h
VK_PRIOR	EQU	21h
VK_NEXT	EQU	22h
VK_END	EQU	23h
VK_HOME	EQU	24h
VK_LEFT	EQU	25h
VK_UP	EQU	26h
VK_RIGHT	EQU	27h
VK_DOWN	EQU	28h
VK_SELECT	EQU	29h
VK_PRINT	EQU	2Ah
VK_EXECUTE	EQU	2Bh
VK_SNAPSHOT	EQU	2Ch
VK_INSERT	EQU	2Dh
VK_DELETE	EQU	2Eh
VK_HELP	EQU	2Fh
VK_LWIN	EQU	5Bh
VK_RWIN	EQU	5Ch
VK_APPS	EQU	5Dh
VK_SLEEP	EQU	5Fh
VK_NUMPAD0	EQU	60h
VK_NUMPAD1	EQU	61h
VK_NUMPAD2	EQU	62h
VK_NUMPAD3	EQU	63h
VK_NUMPAD4	EQU	64h
VK_NUMPAD5	EQU	65h
VK_NUMPAD6	EQU	66h
VK_NUMPAD7	EQU	67h
VK_NUMPAD8	EQU	68h
VK_NUMPAD9	EQU	69h
VK_MULTIPLY	EQU	6Ah
VK_ADD	EQU	6Bh
VK_SEPARATOR	EQU	6Ch
VK_SUBTRACT	EQU	6Dh
VK_DECIMAL	EQU	6Eh
VK_DIVIDE	EQU	6Fh
VK_F1	EQU	70h
VK_F2	EQU	71h
VK_F3	EQU	72h
VK_F4	EQU	73h
VK_F5	EQU	74h
VK_F6	EQU	75h
VK_F7	EQU	76h
VK_F8	EQU	77h
VK_F9	EQU	78h
VK_F10	EQU	79h
VK_F11	EQU	7Ah
VK_F12	EQU	7Bh
VK_F13	EQU	7Ch
VK_F14	EQU	7Dh
VK_F15	EQU	7Eh
VK_F16	EQU	7Fh
VK_F17	EQU	80h
VK_F18	EQU	81h
VK_F19	EQU	82h
VK_F20	EQU	83h
VK_F21	EQU	84h
VK_F22	EQU	85h
VK_F23	EQU	86h
VK_F24	EQU	87h
VK_NUMLOCK	EQU	90h
VK_SCROLL	EQU	91h
VK_OEM_NEC_EQUAL	EQU	92h
VK_OEM_FJ_JISHO	EQU	92h
VK_OEM_FJ_MASSHOU	EQU	93h
VK_OEM_FJ_TOUROKU	EQU	94h
VK_OEM_FJ_LOYA	EQU	95h
VK_OEM_FJ_ROYA	EQU	96h
VK_LSHIFT	EQU	0A0h
VK_RSHIFT	EQU	0A1h
VK_LCONTROL	EQU	0A2h
VK_RCONTROL	EQU	0A3h
VK_LMENU	EQU	0A4h
VK_RMENU	EQU	0A5h
if (_WIN32_WINNT ge 0500h)
VK_BROWSER_BACK	EQU	0A6h
VK_BROWSER_FORWARD	EQU	0A7h
VK_BROWSER_REFRESH	EQU	0A8h
VK_BROWSER_STOP	EQU	0A9h
VK_BROWSER_SEARCH	EQU	0AAh
VK_BROWSER_FAVORITES	EQU	0ABh
VK_BROWSER_HOME	EQU	0ACh
VK_VOLUME_MUTE	EQU	0ADh
VK_VOLUME_DOWN	EQU	0AEh
VK_VOLUME_UP	EQU	0AFh
VK_MEDIA_NEXT_TRACK	EQU	0B0h
VK_MEDIA_PREV_TRACK	EQU	0B1h
VK_MEDIA_STOP	EQU	0B2h
VK_MEDIA_PLAY_PAUSE	EQU	0B3h
VK_LAUNCH_MAIL	EQU	0B4h
VK_LAUNCH_MEDIA_SELECT	EQU	0B5h
VK_LAUNCH_APP1	EQU	0B6h
VK_LAUNCH_APP2	EQU	0B7h
endif 
VK_OEM_1	EQU	0BAh
VK_OEM_PLUS	EQU	0BBh
VK_OEM_COMMA	EQU	0BCh
VK_OEM_MINUS	EQU	0BDh
VK_OEM_PERIOD	EQU	0BEh
VK_OEM_2	EQU	0BFh
VK_OEM_3	EQU	0C0h
VK_OEM_4	EQU	0DBh
VK_OEM_5	EQU	0DCh
VK_OEM_6	EQU	0DDh
VK_OEM_7	EQU	0DEh
VK_OEM_8	EQU	0DFh
VK_OEM_AX	EQU	0E1h
VK_OEM_102	EQU	0E2h
VK_ICO_HELP	EQU	0E3h
VK_ICO_00	EQU	0E4h
if (WINVER ge 0400h)
VK_PROCESSKEY	EQU	0E5h
endif 
VK_ICO_CLEAR	EQU	0E6h
if (_WIN32_WINNT ge 0500h)
VK_PACKET	EQU	0E7h
endif 
VK_OEM_RESET	EQU	0E9h
VK_OEM_JUMP	EQU	0EAh
VK_OEM_PA1	EQU	0EBh
VK_OEM_PA2	EQU	0ECh
VK_OEM_PA3	EQU	0EDh
VK_OEM_WSCTRL	EQU	0EEh
VK_OEM_CUSEL	EQU	0EFh
VK_OEM_ATTN	EQU	0F0h
VK_OEM_FINISH	EQU	0F1h
VK_OEM_COPY	EQU	0F2h
VK_OEM_AUTO	EQU	0F3h
VK_OEM_ENLW	EQU	0F4h
VK_OEM_BACKTAB	EQU	0F5h
VK_ATTN	EQU	0F6h
VK_CRSEL	EQU	0F7h
VK_EXSEL	EQU	0F8h
VK_EREOF	EQU	0F9h
VK_PLAY	EQU	0FAh
VK_ZOOM	EQU	0FBh
VK_NONAME	EQU	0FCh
VK_PA1	EQU	0FDh
VK_OEM_CLEAR	EQU	0FEh
endif 
ifndef NOWH
WH_MIN	EQU	- 1
WH_MSGFILTER	EQU	- 1
WH_JOURNALRECORD	EQU	0
WH_JOURNALPLAYBACK	EQU	1
WH_KEYBOARD	EQU	2
WH_GETMESSAGE	EQU	3
WH_CALLWNDPROC	EQU	4
WH_CBT	EQU	5
WH_SYSMSGFILTER	EQU	6
WH_MOUSE	EQU	7
ifndef defined
defined macro x
ifdef x
  exitm <1>
else
  exitm <0>
endif
endm
endif
if defined(_WIN32_WINDOWS)
WH_HARDWARE	EQU	8
endif 
WH_DEBUG	EQU	9
WH_SHELL	EQU	10
WH_FOREGROUNDIDLE	EQU	11
if (WINVER ge 0400h)
WH_CALLWNDPROCRET	EQU	12
endif 
if (_WIN32_WINNT ge 0400h)
WH_KEYBOARD_LL	EQU	13
WH_MOUSE_LL	EQU	14
endif 
if (WINVER ge 0400h)
if (_WIN32_WINNT ge 0400h)
WH_MAX	EQU	14
else 
WH_MAX	EQU	12
endif 
else 
WH_MAX	EQU	11
endif 
WH_MINHOOK	EQU	<WH_MIN>
WH_MAXHOOK	EQU	<WH_MAX>
HC_ACTION	EQU	0
HC_GETNEXT	EQU	1
HC_SKIP	EQU	2
HC_NOREMOVE	EQU	3
HC_NOREM	EQU	<HC_NOREMOVE>
HC_SYSMODALON	EQU	4
HC_SYSMODALOFF	EQU	5
HCBT_MOVESIZE	EQU	0
HCBT_MINMAX	EQU	1
HCBT_QS	EQU	2
HCBT_CREATEWND	EQU	3
HCBT_DESTROYWND	EQU	4
HCBT_ACTIVATE	EQU	5
HCBT_CLICKSKIPPED	EQU	6
HCBT_KEYSKIPPED	EQU	7
HCBT_SYSCOMMAND	EQU	8
HCBT_SETFOCUS	EQU	9
CBT_CREATEWNDA	struct 
lpcs DWORD ?
hwndInsertAfter	HWND	?
CBT_CREATEWNDA	ends

LPCBT_CREATEWNDA typedef ptr CBT_CREATEWNDA

CBT_CREATEWNDW	struct 
lpcs DWORD ?
hwndInsertAfter	HWND	?
CBT_CREATEWNDW	ends

LPCBT_CREATEWNDW typedef ptr CBT_CREATEWNDW

ifdef UNICODE
CBT_CREATEWND typedef CBT_CREATEWNDW
LPCBT_CREATEWND typedef LPCBT_CREATEWNDW
else 
CBT_CREATEWND typedef CBT_CREATEWNDA
LPCBT_CREATEWND typedef LPCBT_CREATEWNDA
endif 
CBTACTIVATESTRUCT	struct 
fMouse	BOOL	?
hWndActive	HWND	?
CBTACTIVATESTRUCT	ends

LPCBTACTIVATESTRUCT typedef ptr CBTACTIVATESTRUCT

if (_WIN32_WINNT ge 0501h)
WTSSESSION_NOTIFICATION	struct 
cbSize	DWORD	?
dwSessionId	DWORD	?
WTSSESSION_NOTIFICATION	ends

PWTSSESSION_NOTIFICATION typedef ptr WTSSESSION_NOTIFICATION

WTS_CONSOLE_CONNECT	EQU	1h
WTS_CONSOLE_DISCONNECT	EQU	2h
WTS_REMOTE_CONNECT	EQU	3h
WTS_REMOTE_DISCONNECT	EQU	4h
WTS_SESSION_LOGON	EQU	5h
WTS_SESSION_LOGOFF	EQU	6h
WTS_SESSION_LOCK	EQU	7h
WTS_SESSION_UNLOCK	EQU	8h
endif 
MSGF_DIALOGBOX	EQU	0
MSGF_MESSAGEBOX	EQU	1
MSGF_MENU	EQU	2
MSGF_SCROLLBAR	EQU	5
MSGF_NEXTWINDOW	EQU	6
MSGF_MAX	EQU	8
MSGF_USER	EQU	4096
HSHELL_WINDOWCREATED	EQU	1
HSHELL_WINDOWDESTROYED	EQU	2
HSHELL_ACTIVATESHELLWINDOW	EQU	3
if (WINVER ge 0400h)
HSHELL_WINDOWACTIVATED	EQU	4
HSHELL_GETMINRECT	EQU	5
HSHELL_REDRAW	EQU	6
HSHELL_TASKMAN	EQU	7
HSHELL_LANGUAGE	EQU	8
endif 
if (_WIN32_WINNT ge 0500h)
HSHELL_ACCESSIBILITYSTATE	EQU	11
HSHELL_APPCOMMAND	EQU	12
endif 
if (_WIN32_WINNT ge 0501h)
HSHELL_WINDOWREPLACED	EQU	13
endif 
if (_WIN32_WINNT ge 0500h)
ACCESS_STICKYKEYS	EQU	0001h
ACCESS_FILTERKEYS	EQU	0002h
ACCESS_MOUSEKEYS	EQU	0003h
APPCOMMAND_BROWSER_BACKWARD	EQU	1
APPCOMMAND_BROWSER_FORWARD	EQU	2
APPCOMMAND_BROWSER_REFRESH	EQU	3
APPCOMMAND_BROWSER_STOP	EQU	4
APPCOMMAND_BROWSER_SEARCH	EQU	5
APPCOMMAND_BROWSER_FAVORITES	EQU	6
APPCOMMAND_BROWSER_HOME	EQU	7
APPCOMMAND_VOLUME_MUTE	EQU	8
APPCOMMAND_VOLUME_DOWN	EQU	9
APPCOMMAND_VOLUME_UP	EQU	10
APPCOMMAND_MEDIA_NEXTTRACK	EQU	11
APPCOMMAND_MEDIA_PREVIOUSTRACK	EQU	12
APPCOMMAND_MEDIA_STOP	EQU	13
APPCOMMAND_MEDIA_PLAY_PAUSE	EQU	14
APPCOMMAND_LAUNCH_MAIL	EQU	15
APPCOMMAND_LAUNCH_MEDIA_SELECT	EQU	16
APPCOMMAND_LAUNCH_APP1	EQU	17
APPCOMMAND_LAUNCH_APP2	EQU	18
APPCOMMAND_BASS_DOWN	EQU	19
APPCOMMAND_BASS_BOOST	EQU	20
APPCOMMAND_BASS_UP	EQU	21
APPCOMMAND_TREBLE_DOWN	EQU	22
APPCOMMAND_TREBLE_UP	EQU	23
if (_WIN32_WINNT ge 0501h)
APPCOMMAND_MICROPHONE_VOLUME_MUTE	EQU	24
APPCOMMAND_MICROPHONE_VOLUME_DOWN	EQU	25
APPCOMMAND_MICROPHONE_VOLUME_UP	EQU	26
APPCOMMAND_HELP	EQU	27
APPCOMMAND_FIND	EQU	28
APPCOMMAND_NEW	EQU	29
APPCOMMAND_OPEN	EQU	30
APPCOMMAND_CLOSE	EQU	31
APPCOMMAND_SAVE	EQU	32
APPCOMMAND_PRINT	EQU	33
APPCOMMAND_UNDO	EQU	34
APPCOMMAND_REDO	EQU	35
APPCOMMAND_COPY	EQU	36
APPCOMMAND_CUT	EQU	37
APPCOMMAND_PASTE	EQU	38
APPCOMMAND_REPLY_TO_MAIL	EQU	39
APPCOMMAND_FORWARD_MAIL	EQU	40
APPCOMMAND_SEND_MAIL	EQU	41
APPCOMMAND_SPELL_CHECK	EQU	42
APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE	EQU	43
APPCOMMAND_MIC_ON_OFF_TOGGLE	EQU	44
APPCOMMAND_CORRECTION_LIST	EQU	45
endif 
FAPPCOMMAND_MOUSE	EQU	8000h
FAPPCOMMAND_KEY	EQU	0
FAPPCOMMAND_OEM	EQU	1000h
FAPPCOMMAND_MASK	EQU	0F000h
GET_APPCOMMAND_LPARAM macro lParam
	exitm <( ( HIWORD ( lParam )  and   not  FAPPCOMMAND_MASK ) ) >
	endm
GET_DEVICE_LPARAM macro lParam
	exitm <( ( HIWORD ( lParam )  and  FAPPCOMMAND_MASK ) ) >
	endm
GET_MOUSEORKEY_LPARAM	EQU	<GET_DEVICE_LPARAM>
GET_FLAGS_LPARAM macro lParam
	exitm <( LOWORD ( lParam ) ) >
	endm
GET_KEYSTATE_LPARAM macro lParam
	exitm <GET_FLAGS_LPARAM ( lParam ) >
	endm
endif 
EVENTMSG	struct 
message	DWORD	?
paramL	DWORD	?
paramH	DWORD	?
time	DWORD	?
hwnd	HWND	?
EVENTMSG	ends

PEVENTMSGMSG typedef ptr EVENTMSG
NPEVENTMSGMSG typedef ptr EVENTMSG
LPEVENTMSGMSG typedef ptr EVENTMSG

PEVENTMSG typedef ptr EVENTMSG
NPEVENTMSG typedef ptr EVENTMSG
LPEVENTMSG typedef ptr EVENTMSG

CWPSTRUCT	struct 
lParam	LPARAM	?
wParam	WPARAM	?
message	DWORD	?
hwnd	HWND	?
CWPSTRUCT	ends

PCWPSTRUCT typedef ptr CWPSTRUCT
NPCWPSTRUCT typedef ptr CWPSTRUCT
LPCWPSTRUCT typedef ptr CWPSTRUCT

if (WINVER ge 0400h)
CWPRETSTRUCT	struct 
lResult	LRESULT	?
lParam	LPARAM	?
wParam	WPARAM	?
message	DWORD	?
hwnd	HWND	?
CWPRETSTRUCT	ends

PCWPRETSTRUCT typedef ptr CWPRETSTRUCT
NPCWPRETSTRUCT typedef ptr CWPRETSTRUCT
LPCWPRETSTRUCT typedef ptr CWPRETSTRUCT

endif 
if (_WIN32_WINNT ge 0400h)
LLKHF_EXTENDED	EQU	( KF_EXTENDED  shr  8 )
LLKHF_INJECTED	EQU	00000010h
LLKHF_ALTDOWN	EQU	( KF_ALTDOWN  shr  8 )
LLKHF_UP	EQU	( KF_UP  shr  8 )
LLMHF_INJECTED	EQU	00000001h
KBDLLHOOKSTRUCT	struct 
vkCode	DWORD	?
scanCode	DWORD	?
flags	DWORD	?
time	DWORD	?
dwExtraInfo	DWORD	?
KBDLLHOOKSTRUCT	ends

LPKBDLLHOOKSTRUCT typedef ptr KBDLLHOOKSTRUCT
PKBDLLHOOKSTRUCT typedef ptr KBDLLHOOKSTRUCT

MSLLHOOKSTRUCT	struct 
pt	POINT	<>
mouseData	DWORD	?
flags	DWORD	?
time	DWORD	?
dwExtraInfo	DWORD	?
MSLLHOOKSTRUCT	ends

LPMSLLHOOKSTRUCT typedef ptr MSLLHOOKSTRUCT
PMSLLHOOKSTRUCT typedef ptr MSLLHOOKSTRUCT

endif 
DEBUGHOOKINFO	struct 
idThread	DWORD	?
idThreadInstaller	DWORD	?
lParam	LPARAM	?
wParam	WPARAM	?
code	DWORD	?
DEBUGHOOKINFO	ends

PDEBUGHOOKINFO typedef ptr DEBUGHOOKINFO
NPDEBUGHOOKINFO typedef ptr DEBUGHOOKINFO
LPDEBUGHOOKINFO typedef ptr DEBUGHOOKINFO

MOUSEHOOKSTRUCT	struct 
pt	POINT	<>
hwnd	HWND	?
wHitTestCode	DWORD	?
dwExtraInfo	DWORD	?
MOUSEHOOKSTRUCT	ends

LPMOUSEHOOKSTRUCT typedef ptr MOUSEHOOKSTRUCT
PMOUSEHOOKSTRUCT typedef ptr MOUSEHOOKSTRUCT

if (_WIN32_WINNT ge 0500h)
ifdef __cplusplus
MOUSEHOOKSTRUCTEX	struct 
;public:
	tagMOUSEHOOKSTRUCT <>
mouseData	DWORD	?
MOUSEHOOKSTRUCTEX	ends

LPMOUSEHOOKSTRUCTEX typedef ptr MOUSEHOOKSTRUCTEX
PMOUSEHOOKSTRUCTEX typedef ptr MOUSEHOOKSTRUCTEX

else 
MOUSEHOOKSTRUCTEX	struct 
	MOUSEHOOKSTRUCT	<>
mouseData	DWORD	?
MOUSEHOOKSTRUCTEX	ends

LPMOUSEHOOKSTRUCTEX typedef ptr MOUSEHOOKSTRUCTEX
PMOUSEHOOKSTRUCTEX typedef ptr MOUSEHOOKSTRUCTEX

endif 
endif 
if (WINVER ge 0400h)
HARDWAREHOOKSTRUCT	struct 
hwnd	HWND	?
message	DWORD	?
wParam	WPARAM	?
lParam	LPARAM	?
HARDWAREHOOKSTRUCT	ends

LPHARDWAREHOOKSTRUCT typedef ptr HARDWAREHOOKSTRUCT
PHARDWAREHOOKSTRUCT typedef ptr HARDWAREHOOKSTRUCT

endif 
endif 
HKL_PREV	EQU	0
HKL_NEXT	EQU	1
KLF_ACTIVATE	EQU	00000001h
KLF_SUBSTITUTE_OK	EQU	00000002h
KLF_REORDER	EQU	00000008h
if (WINVER ge 0400h)
KLF_REPLACELANG	EQU	00000010h
KLF_NOTELLSHELL	EQU	00000080h
endif 
KLF_SETFORPROCESS	EQU	00000100h
if (_WIN32_WINNT ge 0500h)
KLF_SHIFTLOCK	EQU	00010000h
KLF_RESET	EQU	40000000h
endif 
if (WINVER ge 0500h)
INPUTLANGCHANGE_SYSCHARSET	EQU	0001h
INPUTLANGCHANGE_FORWARD	EQU	0002h
INPUTLANGCHANGE_BACKWARD	EQU	0004h
endif 
KL_NAMELENGTH	EQU	9
@DefProto WINUSERAPI, LoadKeyboardLayoutA, stdcall, , <:LPSTR, :DWORD>, 8
@DefProto WINUSERAPI, LoadKeyboardLayoutW, stdcall, , <:LPWSTR, :DWORD>, 8
ifdef UNICODE
LoadKeyboardLayout	EQU	<LoadKeyboardLayoutW>
else 
LoadKeyboardLayout	EQU	<LoadKeyboardLayoutA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, ActivateKeyboardLayout, stdcall, , <:HKL, :DWORD>, 8
else 
@DefProto WINUSERAPI, ActivateKeyboardLayout, stdcall, , <:HKL, :DWORD>, 8
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, ToUnicodeEx, stdcall, , <:DWORD, :DWORD, :ptr BYTE, :LPWSTR, :DWORD, :DWORD, :HKL>, 28
endif 
@DefProto WINUSERAPI, UnloadKeyboardLayout, stdcall, , <:HKL>, 4
@DefProto WINUSERAPI, GetKeyboardLayoutNameA, stdcall, , <:LPSTR>, 4
@DefProto WINUSERAPI, GetKeyboardLayoutNameW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
GetKeyboardLayoutName	EQU	<GetKeyboardLayoutNameW>
else 
GetKeyboardLayoutName	EQU	<GetKeyboardLayoutNameA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, GetKeyboardLayoutList, stdcall, , <:DWORD, :ptr HKL>, 8
@DefProto WINUSERAPI, GetKeyboardLayout, stdcall, , <:DWORD>, 4
endif 
if (WINVER ge 0500h)
MOUSEMOVEPOINT	struct 
x	DWORD	?
y	DWORD	?
time	DWORD	?
dwExtraInfo	DWORD	?
MOUSEMOVEPOINT	ends

PMOUSEMOVEPOINT typedef ptr MOUSEMOVEPOINT
LPMOUSEMOVEPOINT typedef ptr MOUSEMOVEPOINT

GMMP_USE_DISPLAY_POINTS	EQU	1
GMMP_USE_HIGH_RESOLUTION_POINTS	EQU	2
@DefProto WINUSERAPI, GetMouseMovePointsEx, stdcall, , <:DWORD, :LPMOUSEMOVEPOINT, :LPMOUSEMOVEPOINT, :DWORD, :DWORD>, 20
endif 
ifndef NODESKTOP
DESKTOP_READOBJECTS	EQU	0001h
DESKTOP_CREATEWINDOW	EQU	0002h
DESKTOP_CREATEMENU	EQU	0004h
DESKTOP_HOOKCONTROL	EQU	0008h
DESKTOP_JOURNALRECORD	EQU	0010h
DESKTOP_JOURNALPLAYBACK	EQU	0020h
DESKTOP_ENUMERATE	EQU	0040h
DESKTOP_WRITEOBJECTS	EQU	0080h
DESKTOP_SWITCHDESKTOP	EQU	0100h
DF_ALLOWOTHERACCOUNTHOOK	EQU	0001h
ifdef _WINGDI_
ifndef NOGDI
@DefProto WINUSERAPI, CreateDesktopA, stdcall, , <:LPSTR, :LPSTR, :LPDEVMODEA, :DWORD, :ACCESS_MASK, :LPSECURITY_ATTRIBUTES>, 24
@DefProto WINUSERAPI, CreateDesktopW, stdcall, , <:LPWSTR, :LPWSTR, :LPDEVMODEW, :DWORD, :ACCESS_MASK, :LPSECURITY_ATTRIBUTES>, 24
ifdef UNICODE
CreateDesktop	EQU	<CreateDesktopW>
else 
CreateDesktop	EQU	<CreateDesktopA>
endif 
endif 
endif 
@DefProto WINUSERAPI, OpenDesktopA, stdcall, , <:LPSTR, :DWORD, :BOOL, :ACCESS_MASK>, 16
@DefProto WINUSERAPI, OpenDesktopW, stdcall, , <:LPWSTR, :DWORD, :BOOL, :ACCESS_MASK>, 16
ifdef UNICODE
OpenDesktop	EQU	<OpenDesktopW>
else 
OpenDesktop	EQU	<OpenDesktopA>
endif 
@DefProto WINUSERAPI, OpenInputDesktop, stdcall, , <:DWORD, :BOOL, :ACCESS_MASK>, 12
@DefProto WINUSERAPI, EnumDesktopsA, stdcall, , <:HWINSTA, :DESKTOPENUMPROCA, :LPARAM>, 12
@DefProto WINUSERAPI, EnumDesktopsW, stdcall, , <:HWINSTA, :DESKTOPENUMPROCW, :LPARAM>, 12
ifdef UNICODE
EnumDesktops	EQU	<EnumDesktopsW>
else 
EnumDesktops	EQU	<EnumDesktopsA>
endif 
@DefProto WINUSERAPI, EnumDesktopWindows, stdcall, , <:HDESK, :WNDENUMPROC, :LPARAM>, 12
@DefProto WINUSERAPI, SwitchDesktop, stdcall, , <:HDESK>, 4
@DefProto WINUSERAPI, SetThreadDesktop, stdcall, , <:HDESK>, 4
@DefProto WINUSERAPI, CloseDesktop, stdcall, , <:HDESK>, 4
@DefProto WINUSERAPI, GetThreadDesktop, stdcall, , <:DWORD>, 4
endif 
ifndef NOWINDOWSTATION
WINSTA_ENUMDESKTOPS	EQU	0001h
WINSTA_READATTRIBUTES	EQU	0002h
WINSTA_ACCESSCLIPBOARD	EQU	0004h
WINSTA_CREATEDESKTOP	EQU	0008h
WINSTA_WRITEATTRIBUTES	EQU	0010h
WINSTA_ACCESSGLOBALATOMS	EQU	0020h
WINSTA_EXITWINDOWS	EQU	0040h
WINSTA_ENUMERATE	EQU	0100h
WINSTA_READSCREEN	EQU	0200h
WSF_VISIBLE	EQU	0001h
@DefProto WINUSERAPI, CreateWindowStationA, stdcall, , <:LPSTR, :DWORD, :ACCESS_MASK, :LPSECURITY_ATTRIBUTES>, 16
@DefProto WINUSERAPI, CreateWindowStationW, stdcall, , <:LPWSTR, :DWORD, :ACCESS_MASK, :LPSECURITY_ATTRIBUTES>, 16
ifdef UNICODE
CreateWindowStation	EQU	<CreateWindowStationW>
else 
CreateWindowStation	EQU	<CreateWindowStationA>
endif 
@DefProto WINUSERAPI, OpenWindowStationA, stdcall, , <:LPSTR, :BOOL, :ACCESS_MASK>, 12
@DefProto WINUSERAPI, OpenWindowStationW, stdcall, , <:LPWSTR, :BOOL, :ACCESS_MASK>, 12
ifdef UNICODE
OpenWindowStation	EQU	<OpenWindowStationW>
else 
OpenWindowStation	EQU	<OpenWindowStationA>
endif 
@DefProto WINUSERAPI, EnumWindowStationsA, stdcall, , <:WINSTAENUMPROCA, :LPARAM>, 8
@DefProto WINUSERAPI, EnumWindowStationsW, stdcall, , <:WINSTAENUMPROCW, :LPARAM>, 8
ifdef UNICODE
EnumWindowStations	EQU	<EnumWindowStationsW>
else 
EnumWindowStations	EQU	<EnumWindowStationsA>
endif 
@DefProto WINUSERAPI, CloseWindowStation, stdcall, , <:HWINSTA>, 4
@DefProto WINUSERAPI, SetProcessWindowStation, stdcall, , <:HWINSTA>, 4
@DefProto WINUSERAPI, GetProcessWindowStation, stdcall, , <>, 0
endif 
ifndef NOSECURITY
@DefProto WINUSERAPI, SetUserObjectSecurity, stdcall, , <:HANDLE, :PSECURITY_INFORMATION, :PSECURITY_DESCRIPTOR>, 12
@DefProto WINUSERAPI, GetUserObjectSecurity, stdcall, , <:HANDLE, :PSECURITY_INFORMATION, :PSECURITY_DESCRIPTOR, :DWORD, :LPDWORD>, 20
UOI_FLAGS	EQU	1
UOI_NAME	EQU	2
UOI_TYPE	EQU	3
UOI_USER_SID	EQU	4
USEROBJECTFLAGS	struct 
fInherit	BOOL	?
fReserved	BOOL	?
dwFlags	DWORD	?
USEROBJECTFLAGS	ends

PUSEROBJECTFLAGS typedef ptr USEROBJECTFLAGS

@DefProto WINUSERAPI, GetUserObjectInformationA, stdcall, , <:HANDLE, :DWORD, :PVOID, :DWORD, :LPDWORD>, 20
@DefProto WINUSERAPI, GetUserObjectInformationW, stdcall, , <:HANDLE, :DWORD, :PVOID, :DWORD, :LPDWORD>, 20
ifdef UNICODE
GetUserObjectInformation	EQU	<GetUserObjectInformationW>
else 
GetUserObjectInformation	EQU	<GetUserObjectInformationA>
endif 
@DefProto WINUSERAPI, SetUserObjectInformationA, stdcall, , <:HANDLE, :DWORD, :PVOID, :DWORD>, 16
@DefProto WINUSERAPI, SetUserObjectInformationW, stdcall, , <:HANDLE, :DWORD, :PVOID, :DWORD>, 16
ifdef UNICODE
SetUserObjectInformation	EQU	<SetUserObjectInformationW>
else 
SetUserObjectInformation	EQU	<SetUserObjectInformationA>
endif 
endif 
if (WINVER ge 0400h)
WNDCLASSEXA	struct 
cbSize	DWORD	?
style	DWORD	?
lpfnWndProc	WNDPROC	?
cbClsExtra	DWORD	?
cbWndExtra	DWORD	?
hInstance	HINSTANCE	?
hIcon	HICON	?
hCursor	HCURSOR	?
hbrBackground	HBRUSH	?
lpszMenuName	LPSTR	?
lpszClassName	LPSTR	?
hIconSm	HICON	?
WNDCLASSEXA	ends

PWNDCLASSEXA typedef ptr WNDCLASSEXA
NPWNDCLASSEXA typedef ptr WNDCLASSEXA
LPWNDCLASSEXA typedef ptr WNDCLASSEXA

WNDCLASSEXW	struct 
cbSize	DWORD	?
style	DWORD	?
lpfnWndProc	WNDPROC	?
cbClsExtra	DWORD	?
cbWndExtra	DWORD	?
hInstance	HINSTANCE	?
hIcon	HICON	?
hCursor	HCURSOR	?
hbrBackground	HBRUSH	?
lpszMenuName	LPWSTR	?
lpszClassName	LPWSTR	?
hIconSm	HICON	?
WNDCLASSEXW	ends

PWNDCLASSEXW typedef ptr WNDCLASSEXW
NPWNDCLASSEXW typedef ptr WNDCLASSEXW
LPWNDCLASSEXW typedef ptr WNDCLASSEXW

ifdef UNICODE
WNDCLASSEX typedef WNDCLASSEXW
PWNDCLASSEX typedef PWNDCLASSEXW
NPWNDCLASSEX typedef NPWNDCLASSEXW
LPWNDCLASSEX typedef LPWNDCLASSEXW
else 
WNDCLASSEX typedef WNDCLASSEXA
PWNDCLASSEX typedef PWNDCLASSEXA
NPWNDCLASSEX typedef NPWNDCLASSEXA
LPWNDCLASSEX typedef LPWNDCLASSEXA
endif 
endif 
WNDCLASSA	struct 
style	DWORD	?
lpfnWndProc	WNDPROC	?
cbClsExtra	DWORD	?
cbWndExtra	DWORD	?
hInstance	HINSTANCE	?
hIcon	HICON	?
hCursor	HCURSOR	?
hbrBackground	HBRUSH	?
lpszMenuName	LPSTR	?
lpszClassName	LPSTR	?
WNDCLASSA	ends

PWNDCLASSA typedef ptr WNDCLASSA
NPWNDCLASSA typedef ptr WNDCLASSA
LPWNDCLASSA typedef ptr WNDCLASSA

WNDCLASSW	struct 
style	DWORD	?
lpfnWndProc	WNDPROC	?
cbClsExtra	DWORD	?
cbWndExtra	DWORD	?
hInstance	HINSTANCE	?
hIcon	HICON	?
hCursor	HCURSOR	?
hbrBackground	HBRUSH	?
lpszMenuName	LPWSTR	?
lpszClassName	LPWSTR	?
WNDCLASSW	ends

PWNDCLASSW typedef ptr WNDCLASSW
NPWNDCLASSW typedef ptr WNDCLASSW
LPWNDCLASSW typedef ptr WNDCLASSW

ifdef UNICODE
WNDCLASS typedef WNDCLASSW
PWNDCLASS typedef PWNDCLASSW
NPWNDCLASS typedef NPWNDCLASSW
LPWNDCLASS typedef LPWNDCLASSW
else 
WNDCLASS typedef WNDCLASSA
PWNDCLASS typedef PWNDCLASSA
NPWNDCLASS typedef NPWNDCLASSA
LPWNDCLASS typedef LPWNDCLASSA
endif 
ifndef NOMSG
MSG	struct 
hwnd	HWND	?
message	DWORD	?
wParam	WPARAM	?
lParam	LPARAM	?
time	DWORD	?
pt	POINT	<>
ifdef _MAC
lPrivate	DWORD	?
endif 
MSG	ends

PMSG typedef ptr MSG
NPMSG typedef ptr MSG
LPMSG typedef ptr MSG

POINTSTOPOINT macro pt,pts
	exitm <{ ( pt ) .x = LOWORD ( *  and  pts ) ; ( pt ) .y = HIWORD ( *  and  pts ) ; } >
	endm
POINTTOPOINTS macro pt
	exitm <( MAKELONG ( ( ( pt ) .x ) , ( ( pt ) .y ) ) ) >
	endm
MAKEWPARAM macro l,h
	exitm <( MAKELONG ( l , h ) ) >
	endm
MAKELPARAM macro l,h
	exitm <( MAKELONG ( l , h ) ) >
	endm
MAKELRESULT macro l,h
	exitm <( MAKELONG ( l , h ) ) >
	endm
endif 
ifndef NOWINOFFSETS
GWL_WNDPROC	EQU	- 4
GWL_HINSTANCE	EQU	- 6
GWL_HWNDPARENT	EQU	- 8
GWL_STYLE	EQU	- 16
GWL_EXSTYLE	EQU	- 20
GWL_USERDATA	EQU	- 21
GWL_ID	EQU	- 12
ifdef _WIN64
;#undef GWL_WNDPROC 
;#undef GWL_HINSTANCE 
;#undef GWL_HWNDPARENT 
;#undef GWL_USERDATA 
endif 
GWLP_WNDPROC	EQU	- 4
GWLP_HINSTANCE	EQU	- 6
GWLP_HWNDPARENT	EQU	- 8
GWLP_USERDATA	EQU	- 21
GWLP_ID	EQU	- 12
GCL_MENUNAME	EQU	- 8
GCL_HBRBACKGROUND	EQU	- 10
GCL_HCURSOR	EQU	- 12
GCL_HICON	EQU	- 14
GCL_HMODULE	EQU	- 16
GCL_CBWNDEXTRA	EQU	- 18
GCL_CBCLSEXTRA	EQU	- 20
GCL_WNDPROC	EQU	- 24
GCL_STYLE	EQU	- 26
GCW_ATOM	EQU	- 32
if (WINVER ge 0400h)
GCL_HICONSM	EQU	- 34
endif 
ifdef _WIN64
;#undef GCL_MENUNAME 
;#undef GCL_HBRBACKGROUND 
;#undef GCL_HCURSOR 
;#undef GCL_HICON 
;#undef GCL_HMODULE 
;#undef GCL_WNDPROC 
;#undef GCL_HICONSM 
endif 
GCLP_MENUNAME	EQU	- 8
GCLP_HBRBACKGROUND	EQU	- 10
GCLP_HCURSOR	EQU	- 12
GCLP_HICON	EQU	- 14
GCLP_HMODULE	EQU	- 16
GCLP_WNDPROC	EQU	- 24
GCLP_HICONSM	EQU	- 34
endif 
ifndef NOWINMESSAGES
WM_NULL	EQU	0000h
WM_CREATE	EQU	0001h
WM_DESTROY	EQU	0002h
WM_MOVE	EQU	0003h
WM_SIZE	EQU	0005h
WM_ACTIVATE	EQU	0006h
WA_INACTIVE	EQU	0
WA_ACTIVE	EQU	1
WA_CLICKACTIVE	EQU	2
WM_SETFOCUS	EQU	0007h
WM_KILLFOCUS	EQU	0008h
WM_ENABLE	EQU	000Ah
WM_SETREDRAW	EQU	000Bh
WM_SETTEXT	EQU	000Ch
WM_GETTEXT	EQU	000Dh
WM_GETTEXTLENGTH	EQU	000Eh
WM_PAINT	EQU	000Fh
WM_CLOSE	EQU	0010h
ifndef _WIN32_WCE
WM_QUERYENDSESSION	EQU	0011h
WM_QUERYOPEN	EQU	0013h
WM_ENDSESSION	EQU	0016h
endif 
WM_QUIT	EQU	0012h
WM_ERASEBKGND	EQU	0014h
WM_SYSCOLORCHANGE	EQU	0015h
WM_SHOWWINDOW	EQU	0018h
WM_WININICHANGE	EQU	001Ah
if (WINVER ge 0400h)
WM_SETTINGCHANGE	EQU	<WM_WININICHANGE>
endif 
WM_DEVMODECHANGE	EQU	001Bh
WM_ACTIVATEAPP	EQU	001Ch
WM_FONTCHANGE	EQU	001Dh
WM_TIMECHANGE	EQU	001Eh
WM_CANCELMODE	EQU	001Fh
WM_SETCURSOR	EQU	0020h
WM_MOUSEACTIVATE	EQU	0021h
WM_CHILDACTIVATE	EQU	0022h
WM_QUEUESYNC	EQU	0023h
WM_GETMINMAXINFO	EQU	0024h
MINMAXINFO	struct 
ptReserved	POINT	<>
ptMaxSize	POINT	<>
ptMaxPosition	POINT	<>
ptMinTrackSize	POINT	<>
ptMaxTrackSize	POINT	<>
MINMAXINFO	ends

PMINMAXINFO typedef ptr MINMAXINFO
LPMINMAXINFO typedef ptr MINMAXINFO

WM_PAINTICON	EQU	0026h
WM_ICONERASEBKGND	EQU	0027h
WM_NEXTDLGCTL	EQU	0028h
WM_SPOOLERSTATUS	EQU	002Ah
WM_DRAWITEM	EQU	002Bh
WM_MEASUREITEM	EQU	002Ch
WM_DELETEITEM	EQU	002Dh
WM_VKEYTOITEM	EQU	002Eh
WM_CHARTOITEM	EQU	002Fh
WM_SETFONT	EQU	0030h
WM_GETFONT	EQU	0031h
WM_SETHOTKEY	EQU	0032h
WM_GETHOTKEY	EQU	0033h
WM_QUERYDRAGICON	EQU	0037h
WM_COMPAREITEM	EQU	0039h
if (WINVER ge 0500h)
ifndef _WIN32_WCE
WM_GETOBJECT	EQU	003Dh
endif 
endif 
WM_COMPACTING	EQU	0041h
WM_COMMNOTIFY	EQU	0044h
WM_WINDOWPOSCHANGING	EQU	0046h
WM_WINDOWPOSCHANGED	EQU	0047h
WM_POWER	EQU	0048h
PWR_OK	EQU	1
PWR_FAIL	EQU	- 1
PWR_SUSPENDREQUEST	EQU	1
PWR_SUSPENDRESUME	EQU	2
PWR_CRITICALRESUME	EQU	3
WM_COPYDATA	EQU	004Ah
WM_CANCELJOURNAL	EQU	004Bh
COPYDATASTRUCT	struct 
dwData	DWORD	?
cbData	DWORD	?
lpData	PVOID	?
COPYDATASTRUCT	ends

PCOPYDATASTRUCT typedef ptr COPYDATASTRUCT

if (WINVER ge 0400h)
MDINEXTMENU	struct 
hmenuIn	HMENU	?
hmenuNext	HMENU	?
hwndNext	HWND	?
MDINEXTMENU	ends

PMDINEXTMENU typedef ptr MDINEXTMENU
LPMDINEXTMENU typedef ptr MDINEXTMENU

endif 
if (WINVER ge 0400h)
WM_NOTIFY	EQU	004Eh
WM_INPUTLANGCHANGEREQUEST	EQU	0050h
WM_INPUTLANGCHANGE	EQU	0051h
WM_TCARD	EQU	0052h
WM_HELP	EQU	0053h
WM_USERCHANGED	EQU	0054h
WM_NOTIFYFORMAT	EQU	0055h
NFR_ANSI	EQU	1
NFR_UNICODE	EQU	2
NF_QUERY	EQU	3
NF_REQUERY	EQU	4
WM_CONTEXTMENU	EQU	007Bh
WM_STYLECHANGING	EQU	007Ch
WM_STYLECHANGED	EQU	007Dh
WM_DISPLAYCHANGE	EQU	007Eh
WM_GETICON	EQU	007Fh
WM_SETICON	EQU	0080h
endif 
WM_NCCREATE	EQU	0081h
WM_NCDESTROY	EQU	0082h
WM_NCCALCSIZE	EQU	0083h
WM_NCHITTEST	EQU	0084h
WM_NCPAINT	EQU	0085h
WM_NCACTIVATE	EQU	0086h
WM_GETDLGCODE	EQU	0087h
ifndef _WIN32_WCE
WM_SYNCPAINT	EQU	0088h
endif 
WM_NCMOUSEMOVE	EQU	00A0h
WM_NCLBUTTONDOWN	EQU	00A1h
WM_NCLBUTTONUP	EQU	00A2h
WM_NCLBUTTONDBLCLK	EQU	00A3h
WM_NCRBUTTONDOWN	EQU	00A4h
WM_NCRBUTTONUP	EQU	00A5h
WM_NCRBUTTONDBLCLK	EQU	00A6h
WM_NCMBUTTONDOWN	EQU	00A7h
WM_NCMBUTTONUP	EQU	00A8h
WM_NCMBUTTONDBLCLK	EQU	00A9h
if (_WIN32_WINNT ge 0500h)
WM_NCXBUTTONDOWN	EQU	00ABh
WM_NCXBUTTONUP	EQU	00ACh
WM_NCXBUTTONDBLCLK	EQU	00ADh
endif 
if (_WIN32_WINNT ge 0501h)
WM_INPUT	EQU	00FFh
endif 
WM_KEYFIRST	EQU	0100h
WM_KEYDOWN	EQU	0100h
WM_KEYUP	EQU	0101h
WM_CHAR	EQU	0102h
WM_DEADCHAR	EQU	0103h
WM_SYSKEYDOWN	EQU	0104h
WM_SYSKEYUP	EQU	0105h
WM_SYSCHAR	EQU	0106h
WM_SYSDEADCHAR	EQU	0107h
if (_WIN32_WINNT ge 0501h)
WM_UNICHAR	EQU	0109h
WM_KEYLAST	EQU	0109h
UNICODE_NOCHAR	EQU	0FFFFh
else 
WM_KEYLAST	EQU	0108h
endif 
if (WINVER ge 0400h)
WM_IME_STARTCOMPOSITION	EQU	010Dh
WM_IME_ENDCOMPOSITION	EQU	010Eh
WM_IME_COMPOSITION	EQU	010Fh
WM_IME_KEYLAST	EQU	010Fh
endif 
WM_INITDIALOG	EQU	0110h
WM_COMMAND	EQU	0111h
WM_SYSCOMMAND	EQU	0112h
WM_TIMER	EQU	0113h
WM_HSCROLL	EQU	0114h
WM_VSCROLL	EQU	0115h
WM_INITMENU	EQU	0116h
WM_INITMENUPOPUP	EQU	0117h
WM_MENUSELECT	EQU	011Fh
WM_MENUCHAR	EQU	0120h
WM_ENTERIDLE	EQU	0121h
if (WINVER ge 0500h)
ifndef _WIN32_WCE
WM_MENURBUTTONUP	EQU	0122h
WM_MENUDRAG	EQU	0123h
WM_MENUGETOBJECT	EQU	0124h
WM_UNINITMENUPOPUP	EQU	0125h
WM_MENUCOMMAND	EQU	0126h
ifndef _WIN32_WCE
if (_WIN32_WINNT ge 0500h)
WM_CHANGEUISTATE	EQU	0127h
WM_UPDATEUISTATE	EQU	0128h
WM_QUERYUISTATE	EQU	0129h
UIS_SET	EQU	1
UIS_CLEAR	EQU	2
UIS_INITIALIZE	EQU	3
UISF_HIDEFOCUS	EQU	1h
UISF_HIDEACCEL	EQU	2h
if (_WIN32_WINNT ge 0501h)
UISF_ACTIVE	EQU	4h
endif 
endif 
endif 
endif 
endif 
WM_CTLCOLORMSGBOX	EQU	0132h
WM_CTLCOLOREDIT	EQU	0133h
WM_CTLCOLORLISTBOX	EQU	0134h
WM_CTLCOLORBTN	EQU	0135h
WM_CTLCOLORDLG	EQU	0136h
WM_CTLCOLORSCROLLBAR	EQU	0137h
WM_CTLCOLORSTATIC	EQU	0138h
WM_MOUSEFIRST	EQU	0200h
WM_MOUSEMOVE	EQU	0200h
WM_LBUTTONDOWN	EQU	0201h
WM_LBUTTONUP	EQU	0202h
WM_LBUTTONDBLCLK	EQU	0203h
WM_RBUTTONDOWN	EQU	0204h
WM_RBUTTONUP	EQU	0205h
WM_RBUTTONDBLCLK	EQU	0206h
WM_MBUTTONDOWN	EQU	0207h
WM_MBUTTONUP	EQU	0208h
WM_MBUTTONDBLCLK	EQU	0209h
if (_WIN32_WINNT ge 0400h) OR (_WIN32_WINDOWS gt 0400h)
WM_MOUSEWHEEL	EQU	020Ah
endif 
if (_WIN32_WINNT ge 0500h)
WM_XBUTTONDOWN	EQU	020Bh
WM_XBUTTONUP	EQU	020Ch
WM_XBUTTONDBLCLK	EQU	020Dh
endif 
if (_WIN32_WINNT ge 0500h)
WM_MOUSELAST	EQU	020Dh
elseif (_WIN32_WINNT ge 0400h) OR (_WIN32_WINDOWS gt 0400h)
WM_MOUSELAST	EQU	020Ah
else 
WM_MOUSELAST	EQU	0209h
endif 
if (_WIN32_WINNT ge 0400h)
WHEEL_DELTA	EQU	120
GET_WHEEL_DELTA_WPARAM macro wParam
	exitm <( HIWORD ( wParam ) ) >
	endm
WHEEL_PAGESCROLL	EQU	<( UINT_MAX )>
endif 
if (_WIN32_WINNT ge 0500h)
GET_KEYSTATE_WPARAM macro wParam
	exitm <( LOWORD ( wParam ) ) >
	endm
GET_NCHITTEST_WPARAM macro wParam
	exitm <( LOWORD ( wParam ) ) >
	endm
GET_XBUTTON_WPARAM macro wParam
	exitm <( HIWORD ( wParam ) ) >
	endm
XBUTTON1	EQU	0001h
XBUTTON2	EQU	0002h
endif 
WM_PARENTNOTIFY	EQU	0210h
WM_ENTERMENULOOP	EQU	0211h
WM_EXITMENULOOP	EQU	0212h
if (WINVER ge 0400h)
WM_NEXTMENU	EQU	0213h
WM_SIZING	EQU	0214h
WM_CAPTURECHANGED	EQU	0215h
WM_MOVING	EQU	0216h
endif 
if (WINVER ge 0400h)
WM_POWERBROADCAST	EQU	0218h
ifndef _WIN32_WCE
PBT_APMQUERYSUSPEND	EQU	0000h
PBT_APMQUERYSTANDBY	EQU	0001h
PBT_APMQUERYSUSPENDFAILED	EQU	0002h
PBT_APMQUERYSTANDBYFAILED	EQU	0003h
PBT_APMSUSPEND	EQU	0004h
PBT_APMSTANDBY	EQU	0005h
PBT_APMRESUMECRITICAL	EQU	0006h
PBT_APMRESUMESUSPEND	EQU	0007h
PBT_APMRESUMESTANDBY	EQU	0008h
PBTF_APMRESUMEFROMFAILURE	EQU	00000001h
PBT_APMBATTERYLOW	EQU	0009h
PBT_APMPOWERSTATUSCHANGE	EQU	000Ah
PBT_APMOEMEVENT	EQU	000Bh
PBT_APMRESUMEAUTOMATIC	EQU	0012h
endif 
endif 
if (WINVER ge 0400h)
WM_DEVICECHANGE	EQU	0219h
endif 
WM_MDICREATE	EQU	0220h
WM_MDIDESTROY	EQU	0221h
WM_MDIACTIVATE	EQU	0222h
WM_MDIRESTORE	EQU	0223h
WM_MDINEXT	EQU	0224h
WM_MDIMAXIMIZE	EQU	0225h
WM_MDITILE	EQU	0226h
WM_MDICASCADE	EQU	0227h
WM_MDIICONARRANGE	EQU	0228h
WM_MDIGETACTIVE	EQU	0229h
WM_MDISETMENU	EQU	0230h
WM_ENTERSIZEMOVE	EQU	0231h
WM_EXITSIZEMOVE	EQU	0232h
WM_DROPFILES	EQU	0233h
WM_MDIREFRESHMENU	EQU	0234h
if (WINVER ge 0400h)
WM_IME_SETCONTEXT	EQU	0281h
WM_IME_NOTIFY	EQU	0282h
WM_IME_CONTROL	EQU	0283h
WM_IME_COMPOSITIONFULL	EQU	0284h
WM_IME_SELECT	EQU	0285h
WM_IME_CHAR	EQU	0286h
endif 
if (WINVER ge 0500h)
WM_IME_REQUEST	EQU	0288h
endif 
if (WINVER ge 0400h)
WM_IME_KEYDOWN	EQU	0290h
WM_IME_KEYUP	EQU	0291h
endif 
if ((_WIN32_WINNT ge 0400h) OR (WINVER ge 0500h))
WM_MOUSEHOVER	EQU	02A1h
WM_MOUSELEAVE	EQU	02A3h
endif 
if (WINVER ge 0500h)
WM_NCMOUSEHOVER	EQU	02A0h
WM_NCMOUSELEAVE	EQU	02A2h
endif 
if (_WIN32_WINNT ge 0501h)
WM_WTSSESSION_CHANGE	EQU	02B1h
WM_TABLET_FIRST	EQU	02c0h
WM_TABLET_LAST	EQU	02dfh
endif 
WM_CUT	EQU	0300h
WM_COPY	EQU	0301h
WM_PASTE	EQU	0302h
WM_CLEAR	EQU	0303h
WM_UNDO	EQU	0304h
WM_RENDERFORMAT	EQU	0305h
WM_RENDERALLFORMATS	EQU	0306h
WM_DESTROYCLIPBOARD	EQU	0307h
WM_DRAWCLIPBOARD	EQU	0308h
WM_PAINTCLIPBOARD	EQU	0309h
WM_VSCROLLCLIPBOARD	EQU	030Ah
WM_SIZECLIPBOARD	EQU	030Bh
WM_ASKCBFORMATNAME	EQU	030Ch
WM_CHANGECBCHAIN	EQU	030Dh
WM_HSCROLLCLIPBOARD	EQU	030Eh
WM_QUERYNEWPALETTE	EQU	030Fh
WM_PALETTEISCHANGING	EQU	0310h
WM_PALETTECHANGED	EQU	0311h
WM_HOTKEY	EQU	0312h
if (WINVER ge 0400h)
WM_PRINT	EQU	0317h
WM_PRINTCLIENT	EQU	0318h
endif 
if (_WIN32_WINNT ge 0500h)
WM_APPCOMMAND	EQU	0319h
endif 
if (_WIN32_WINNT ge 0501h)
WM_THEMECHANGED	EQU	031Ah
endif 
if (WINVER ge 0400h)
WM_HANDHELDFIRST	EQU	0358h
WM_HANDHELDLAST	EQU	035Fh
WM_AFXFIRST	EQU	0360h
WM_AFXLAST	EQU	037Fh
endif 
WM_PENWINFIRST	EQU	0380h
WM_PENWINLAST	EQU	038Fh
if (WINVER ge 0400h)
WM_APP	EQU	8000h
endif 
WM_USER	EQU	0400h
if (WINVER ge 0400h)
WMSZ_LEFT	EQU	1
WMSZ_RIGHT	EQU	2
WMSZ_TOP	EQU	3
WMSZ_TOPLEFT	EQU	4
WMSZ_TOPRIGHT	EQU	5
WMSZ_BOTTOM	EQU	6
WMSZ_BOTTOMLEFT	EQU	7
WMSZ_BOTTOMRIGHT	EQU	8
endif 
ifndef NONCMESSAGES
HTERROR	EQU	- 2
HTTRANSPARENT	EQU	- 1
HTNOWHERE	EQU	0
HTCLIENT	EQU	1
HTCAPTION	EQU	2
HTSYSMENU	EQU	3
HTGROWBOX	EQU	4
HTSIZE	EQU	<HTGROWBOX>
HTMENU	EQU	5
HTHSCROLL	EQU	6
HTVSCROLL	EQU	7
HTMINBUTTON	EQU	8
HTMAXBUTTON	EQU	9
HTLEFT	EQU	10
HTRIGHT	EQU	11
HTTOP	EQU	12
HTTOPLEFT	EQU	13
HTTOPRIGHT	EQU	14
HTBOTTOM	EQU	15
HTBOTTOMLEFT	EQU	16
HTBOTTOMRIGHT	EQU	17
HTBORDER	EQU	18
HTREDUCE	EQU	<HTMINBUTTON>
HTZOOM	EQU	<HTMAXBUTTON>
HTSIZEFIRST	EQU	<HTLEFT>
HTSIZELAST	EQU	<HTBOTTOMRIGHT>
if (WINVER ge 0400h)
HTOBJECT	EQU	19
HTCLOSE	EQU	20
HTHELP	EQU	21
endif 
SMTO_NORMAL	EQU	0000h
SMTO_BLOCK	EQU	0001h
SMTO_ABORTIFHUNG	EQU	0002h
if (WINVER ge 0500h)
SMTO_NOTIMEOUTIFNOTHUNG	EQU	0008h
endif 
endif 
MA_ACTIVATE	EQU	1
MA_ACTIVATEANDEAT	EQU	2
MA_NOACTIVATE	EQU	3
MA_NOACTIVATEANDEAT	EQU	4
ICON_SMALL	EQU	0
ICON_BIG	EQU	1
if (_WIN32_WINNT ge 0501h)
ICON_SMALL2	EQU	2
endif 
@DefProto WINUSERAPI, RegisterWindowMessageA, stdcall, , <:LPSTR>, 4
@DefProto WINUSERAPI, RegisterWindowMessageW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
RegisterWindowMessage	EQU	<RegisterWindowMessageW>
else 
RegisterWindowMessage	EQU	<RegisterWindowMessageA>
endif 
SIZE_RESTORED	EQU	0
SIZE_MINIMIZED	EQU	1
SIZE_MAXIMIZED	EQU	2
SIZE_MAXSHOW	EQU	3
SIZE_MAXHIDE	EQU	4
SIZENORMAL	EQU	<SIZE_RESTORED>
SIZEICONIC	EQU	<SIZE_MINIMIZED>
SIZEFULLSCREEN	EQU	<SIZE_MAXIMIZED>
SIZEZOOMSHOW	EQU	<SIZE_MAXSHOW>
SIZEZOOMHIDE	EQU	<SIZE_MAXHIDE>
WINDOWPOS	struct 
hwnd	HWND	?
hwndInsertAfter	HWND	?
x	DWORD	?
y	DWORD	?
cx_	DWORD	?
cy	DWORD	?
flags	DWORD	?
WINDOWPOS	ends

LPWINDOWPOS typedef ptr WINDOWPOS
PWINDOWPOS typedef ptr WINDOWPOS

NCCALCSIZE_PARAMS	struct 
rgrc	RECT 3 dup (<>)
lppos	PWINDOWPOS	?
NCCALCSIZE_PARAMS	ends

LPNCCALCSIZE_PARAMS typedef ptr NCCALCSIZE_PARAMS

WVR_ALIGNTOP	EQU	0010h
WVR_ALIGNLEFT	EQU	0020h
WVR_ALIGNBOTTOM	EQU	0040h
WVR_ALIGNRIGHT	EQU	0080h
WVR_HREDRAW	EQU	0100h
WVR_VREDRAW	EQU	0200h
WVR_REDRAW	EQU	( WVR_HREDRAW  or  WVR_VREDRAW )
WVR_VALIDRECTS	EQU	0400h
ifndef NOKEYSTATES
MK_LBUTTON	EQU	0001h
MK_RBUTTON	EQU	0002h
MK_SHIFT	EQU	0004h
MK_CONTROL	EQU	0008h
MK_MBUTTON	EQU	0010h
if (_WIN32_WINNT ge 0500h)
MK_XBUTTON1	EQU	0020h
MK_XBUTTON2	EQU	0040h
endif 
endif 
if (_WIN32_WINNT ge 0400h)
ifndef NOTRACKMOUSEEVENT
TME_HOVER	EQU	00000001h
TME_LEAVE	EQU	00000002h
if (WINVER ge 0500h)
TME_NONCLIENT	EQU	00000010h
endif 
TME_QUERY	EQU	40000000h
TME_CANCEL	EQU	80000000h
HOVER_DEFAULT	EQU	0FFFFFFFFh
endif 
if (_WIN32_WINNT ge 0400h)
TRACKMOUSEEVENT	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
hwndTrack	HWND	?
dwHoverTime	DWORD	?
TRACKMOUSEEVENT	ends

LPTRACKMOUSEEVENT typedef ptr TRACKMOUSEEVENT

@DefProto WINUSERAPI, TrackMouseEvent, stdcall, , <:LPTRACKMOUSEEVENT>, 4
endif 
if (_WIN32_WINNT ge 0400h)
endif 
endif 
endif 
ifndef NOWINSTYLES
WS_OVERLAPPED	EQU	00000000h
WS_POPUP	EQU	80000000h
WS_CHILD	EQU	40000000h
WS_MINIMIZE	EQU	20000000h
WS_VISIBLE	EQU	10000000h
WS_DISABLED	EQU	08000000h
WS_CLIPSIBLINGS	EQU	04000000h
WS_CLIPCHILDREN	EQU	02000000h
WS_MAXIMIZE	EQU	01000000h
WS_CAPTION	EQU	00C00000h
WS_BORDER	EQU	00800000h
WS_DLGFRAME	EQU	00400000h
WS_VSCROLL	EQU	00200000h
WS_HSCROLL	EQU	00100000h
WS_SYSMENU	EQU	00080000h
WS_THICKFRAME	EQU	00040000h
WS_GROUP	EQU	00020000h
WS_TABSTOP	EQU	00010000h
WS_MINIMIZEBOX	EQU	00020000h
WS_MAXIMIZEBOX	EQU	00010000h
WS_TILED	EQU	<WS_OVERLAPPED>
WS_ICONIC	EQU	<WS_MINIMIZE>
WS_SIZEBOX	EQU	<WS_THICKFRAME>
WS_TILEDWINDOW	EQU	<WS_OVERLAPPEDWINDOW>
WS_OVERLAPPEDWINDOW	EQU	( WS_OVERLAPPED  or  WS_CAPTION  or  WS_SYSMENU  or  WS_THICKFRAME  or  WS_MINIMIZEBOX  or  WS_MAXIMIZEBOX )
WS_POPUPWINDOW	EQU	( WS_POPUP  or  WS_BORDER  or  WS_SYSMENU )
WS_CHILDWINDOW	EQU	<( WS_CHILD )>
WS_EX_DLGMODALFRAME	EQU	00000001h
WS_EX_NOPARENTNOTIFY	EQU	00000004h
WS_EX_TOPMOST	EQU	00000008h
WS_EX_ACCEPTFILES	EQU	00000010h
WS_EX_TRANSPARENT	EQU	00000020h
if (WINVER ge 0400h)
WS_EX_MDICHILD	EQU	00000040h
WS_EX_TOOLWINDOW	EQU	00000080h
WS_EX_WINDOWEDGE	EQU	00000100h
WS_EX_CLIENTEDGE	EQU	00000200h
WS_EX_CONTEXTHELP	EQU	00000400h
endif 
if (WINVER ge 0400h)
WS_EX_RIGHT	EQU	00001000h
WS_EX_LEFT	EQU	00000000h
WS_EX_RTLREADING	EQU	00002000h
WS_EX_LTRREADING	EQU	00000000h
WS_EX_LEFTSCROLLBAR	EQU	00004000h
WS_EX_RIGHTSCROLLBAR	EQU	00000000h
WS_EX_CONTROLPARENT	EQU	00010000h
WS_EX_STATICEDGE	EQU	00020000h
WS_EX_APPWINDOW	EQU	00040000h
WS_EX_OVERLAPPEDWINDOW	EQU	( WS_EX_WINDOWEDGE  or  WS_EX_CLIENTEDGE )
WS_EX_PALETTEWINDOW	EQU	( WS_EX_WINDOWEDGE  or  WS_EX_TOOLWINDOW  or  WS_EX_TOPMOST )
endif 
if (_WIN32_WINNT ge 0500h)
WS_EX_LAYERED	EQU	00080000h
endif 
if (WINVER ge 0500h)
WS_EX_NOINHERITLAYOUT	EQU	00100000h
WS_EX_LAYOUTRTL	EQU	00400000h
endif 
if (_WIN32_WINNT ge 0501h)
WS_EX_COMPOSITED	EQU	02000000h
endif 
if (_WIN32_WINNT ge 0500h)
WS_EX_NOACTIVATE	EQU	08000000h
endif 
CS_VREDRAW	EQU	0001h
CS_HREDRAW	EQU	0002h
CS_DBLCLKS	EQU	0008h
CS_OWNDC	EQU	0020h
CS_CLASSDC	EQU	0040h
CS_PARENTDC	EQU	0080h
CS_NOCLOSE	EQU	0200h
CS_SAVEBITS	EQU	0800h
CS_BYTEALIGNCLIENT	EQU	1000h
CS_BYTEALIGNWINDOW	EQU	2000h
CS_GLOBALCLASS	EQU	4000h
CS_IME	EQU	00010000h
if (_WIN32_WINNT ge 0501h)
CS_DROPSHADOW	EQU	00020000h
endif 
endif 
if (WINVER ge 0400h)
PRF_CHECKVISIBLE	EQU	00000001h
PRF_NONCLIENT	EQU	00000002h
PRF_CLIENT	EQU	00000004h
PRF_ERASEBKGND	EQU	00000008h
PRF_CHILDREN	EQU	00000010h
PRF_OWNED	EQU	00000020h
BDR_RAISEDOUTER	EQU	0001h
BDR_SUNKENOUTER	EQU	0002h
BDR_RAISEDINNER	EQU	0004h
BDR_SUNKENINNER	EQU	0008h
BDR_OUTER	EQU	( BDR_RAISEDOUTER  or  BDR_SUNKENOUTER )
BDR_INNER	EQU	( BDR_RAISEDINNER  or  BDR_SUNKENINNER )
BDR_RAISED	EQU	( BDR_RAISEDOUTER  or  BDR_RAISEDINNER )
BDR_SUNKEN	EQU	( BDR_SUNKENOUTER  or  BDR_SUNKENINNER )
EDGE_RAISED	EQU	( BDR_RAISEDOUTER  or  BDR_RAISEDINNER )
EDGE_SUNKEN	EQU	( BDR_SUNKENOUTER  or  BDR_SUNKENINNER )
EDGE_ETCHED	EQU	( BDR_SUNKENOUTER  or  BDR_RAISEDINNER )
EDGE_BUMP	EQU	( BDR_RAISEDOUTER  or  BDR_SUNKENINNER )
BF_LEFT	EQU	0001h
BF_TOP	EQU	0002h
BF_RIGHT	EQU	0004h
BF_BOTTOM	EQU	0008h
BF_TOPLEFT	EQU	( BF_TOP  or  BF_LEFT )
BF_TOPRIGHT	EQU	( BF_TOP  or  BF_RIGHT )
BF_BOTTOMLEFT	EQU	( BF_BOTTOM  or  BF_LEFT )
BF_BOTTOMRIGHT	EQU	( BF_BOTTOM  or  BF_RIGHT )
BF_RECT	EQU	( BF_LEFT  or  BF_TOP  or  BF_RIGHT  or  BF_BOTTOM )
BF_DIAGONAL	EQU	0010h
BF_DIAGONAL_ENDTOPRIGHT	EQU	( BF_DIAGONAL  or  BF_TOP  or  BF_RIGHT )
BF_DIAGONAL_ENDTOPLEFT	EQU	( BF_DIAGONAL  or  BF_TOP  or  BF_LEFT )
BF_DIAGONAL_ENDBOTTOMLEFT	EQU	( BF_DIAGONAL  or  BF_BOTTOM  or  BF_LEFT )
BF_DIAGONAL_ENDBOTTOMRIGHT	EQU	( BF_DIAGONAL  or  BF_BOTTOM  or  BF_RIGHT )
BF_MIDDLE	EQU	0800h
BF_SOFT	EQU	1000h
BF_ADJUST	EQU	2000h
BF_FLAT	EQU	4000h
BF_MONO	EQU	8000h
@DefProto WINUSERAPI, DrawEdge, stdcall, , <:HDC, :LPRECT, :DWORD, :DWORD>, 16
DFC_CAPTION	EQU	1
DFC_MENU	EQU	2
DFC_SCROLL	EQU	3
DFC_BUTTON	EQU	4
if (WINVER ge 0500h)
DFC_POPUPMENU	EQU	5
endif 
DFCS_CAPTIONCLOSE	EQU	0000h
DFCS_CAPTIONMIN	EQU	0001h
DFCS_CAPTIONMAX	EQU	0002h
DFCS_CAPTIONRESTORE	EQU	0003h
DFCS_CAPTIONHELP	EQU	0004h
DFCS_MENUARROW	EQU	0000h
DFCS_MENUCHECK	EQU	0001h
DFCS_MENUBULLET	EQU	0002h
DFCS_MENUARROWRIGHT	EQU	0004h
DFCS_SCROLLUP	EQU	0000h
DFCS_SCROLLDOWN	EQU	0001h
DFCS_SCROLLLEFT	EQU	0002h
DFCS_SCROLLRIGHT	EQU	0003h
DFCS_SCROLLCOMBOBOX	EQU	0005h
DFCS_SCROLLSIZEGRIP	EQU	0008h
DFCS_SCROLLSIZEGRIPRIGHT	EQU	0010h
DFCS_BUTTONCHECK	EQU	0000h
DFCS_BUTTONRADIOIMAGE	EQU	0001h
DFCS_BUTTONRADIOMASK	EQU	0002h
DFCS_BUTTONRADIO	EQU	0004h
DFCS_BUTTON3STATE	EQU	0008h
DFCS_BUTTONPUSH	EQU	0010h
DFCS_INACTIVE	EQU	0100h
DFCS_PUSHED	EQU	0200h
DFCS_CHECKED	EQU	0400h
if (WINVER ge 0500h)
DFCS_TRANSPARENT	EQU	0800h
DFCS_HOT	EQU	1000h
endif 
DFCS_ADJUSTRECT	EQU	2000h
DFCS_FLAT	EQU	4000h
DFCS_MONO	EQU	8000h
@DefProto WINUSERAPI, DrawFrameControl, stdcall, , <:HDC, :LPRECT, :DWORD, :DWORD>, 16
DC_ACTIVE	EQU	0001h
DC_SMALLCAP	EQU	0002h
DC_ICON	EQU	0004h
DC_TEXT	EQU	0008h
DC_INBUTTON	EQU	0010h
if (WINVER ge 0500h)
DC_GRADIENT	EQU	0020h
endif 
if (_WIN32_WINNT ge 0501h)
DC_BUTTONS	EQU	1000h
endif 
@DefProto WINUSERAPI, DrawCaption, stdcall, , <:HWND, :HDC, :ptr RECT, :DWORD>, 16
IDANI_OPEN	EQU	1
IDANI_CAPTION	EQU	3
@DefProto WINUSERAPI, DrawAnimatedRects, stdcall, , <:HWND, :DWORD, :ptr RECT, :ptr RECT>, 16
endif 
ifndef NOCLIPBOARD
CF_TEXT	EQU	1
CF_BITMAP	EQU	2
CF_METAFILEPICT	EQU	3
CF_SYLK	EQU	4
CF_DIF	EQU	5
CF_TIFF	EQU	6
CF_OEMTEXT	EQU	7
CF_DIB	EQU	8
CF_PALETTE	EQU	9
CF_PENDATA	EQU	10
CF_RIFF	EQU	11
CF_WAVE	EQU	12
CF_UNICODETEXT	EQU	13
CF_ENHMETAFILE	EQU	14
if (WINVER ge 0400h)
CF_HDROP	EQU	15
CF_LOCALE	EQU	16
endif 
if (WINVER ge 0500h)
CF_DIBV5	EQU	17
endif 
if (WINVER ge 0500h)
CF_MAX	EQU	18
elseif (WINVER ge 0400h)
CF_MAX	EQU	17
else 
CF_MAX	EQU	15
endif 
CF_OWNERDISPLAY	EQU	0080h
CF_DSPTEXT	EQU	0081h
CF_DSPBITMAP	EQU	0082h
CF_DSPMETAFILEPICT	EQU	0083h
CF_DSPENHMETAFILE	EQU	008Eh
CF_PRIVATEFIRST	EQU	0200h
CF_PRIVATELAST	EQU	02FFh
CF_GDIOBJFIRST	EQU	0300h
CF_GDIOBJLAST	EQU	03FFh
endif 
FVIRTKEY	EQU	<TRUE>
FNOINVERT	EQU	02h
FSHIFT	EQU	04h
FCONTROL	EQU	08h
FALT	EQU	10h
ACCEL	struct 
ifndef _MAC
fVirt	BYTE	?
key	WORD	?
cmd	WORD	?
else 
fVirt	WORD	?
key	WORD	?
cmd	DWORD	?
endif 
ACCEL	ends

LPACCEL typedef ptr ACCEL

PAINTSTRUCT	struct 
hdc	HDC	?
fErase	BOOL	?
rcPaint	RECT	<>
fRestore	BOOL	?
fIncUpdate	BOOL	?
rgbReserved	BYTE 32 dup (?)
PAINTSTRUCT	ends

PPAINTSTRUCT typedef ptr PAINTSTRUCT
NPPAINTSTRUCT typedef ptr PAINTSTRUCT
LPPAINTSTRUCT typedef ptr PAINTSTRUCT

CREATESTRUCTA	struct 
lpCreateParams	LPVOID	?
hInstance	HINSTANCE	?
hMenu	HMENU	?
hwndParent	HWND	?
cy	DWORD	?
cx_	DWORD	?
y	DWORD	?
x	DWORD	?
style	SDWORD	?
lpszName	LPSTR	?
lpszClass	LPSTR	?
dwExStyle	DWORD	?
CREATESTRUCTA	ends

LPCREATESTRUCTA typedef ptr CREATESTRUCTA

CREATESTRUCTW	struct 
lpCreateParams	LPVOID	?
hInstance	HINSTANCE	?
hMenu	HMENU	?
hwndParent	HWND	?
cy	DWORD	?
cx_	DWORD	?
y	DWORD	?
x	DWORD	?
style	SDWORD	?
lpszName	LPWSTR	?
lpszClass	LPWSTR	?
dwExStyle	DWORD	?
CREATESTRUCTW	ends

LPCREATESTRUCTW typedef ptr CREATESTRUCTW

ifdef UNICODE
CREATESTRUCT typedef CREATESTRUCTW
LPCREATESTRUCT typedef LPCREATESTRUCTW
else 
CREATESTRUCT typedef CREATESTRUCTA
LPCREATESTRUCT typedef LPCREATESTRUCTA
endif 
WINDOWPLACEMENT	struct 
length_	DWORD	?
flags	DWORD	?
showCmd	DWORD	?
ptMinPosition	POINT	<>
ptMaxPosition	POINT	<>
rcNormalPosition	RECT	<>
ifdef _MAC
rcDevice	RECT	<>
endif 
WINDOWPLACEMENT	ends

PWINDOWPLACEMENT typedef ptr WINDOWPLACEMENT
LPWINDOWPLACEMENT typedef ptr WINDOWPLACEMENT
WPF_SETMINPOSITION	EQU	0001h
WPF_RESTORETOMAXIMIZED	EQU	0002h
if (_WIN32_WINNT ge 0500h)
WPF_ASYNCWINDOWPLACEMENT	EQU	0004h
endif 
if (WINVER ge 0400h)
NMHDR	struct 
hwndFrom	HWND	?
idFrom	UINT_PTR	?
code	DWORD	?
NMHDR	ends

LPNMHDR typedef ptr NMHDR
STYLESTRUCT	struct 
styleOld	DWORD	?
styleNew	DWORD	?
STYLESTRUCT	ends

LPSTYLESTRUCT typedef ptr STYLESTRUCT

endif 
ODT_MENU	EQU	1
ODT_LISTBOX	EQU	2
ODT_COMBOBOX	EQU	3
ODT_BUTTON	EQU	4
if (WINVER ge 0400h)
ODT_STATIC	EQU	5
endif 
ODA_DRAWENTIRE	EQU	0001h
ODA_SELECT	EQU	0002h
ODA_FOCUS	EQU	0004h
ODS_SELECTED	EQU	0001h
ODS_GRAYED	EQU	0002h
ODS_DISABLED	EQU	0004h
ODS_CHECKED	EQU	0008h
ODS_FOCUS	EQU	0010h
if (WINVER ge 0400h)
ODS_DEFAULT	EQU	0020h
ODS_COMBOBOXEDIT	EQU	1000h
endif 
if (WINVER ge 0500h)
ODS_HOTLIGHT	EQU	0040h
ODS_INACTIVE	EQU	0080h
if (_WIN32_WINNT ge 0500h)
ODS_NOACCEL	EQU	0100h
ODS_NOFOCUSRECT	EQU	0200h
endif 
endif 
MEASUREITEMSTRUCT	struct 
CtlType	DWORD	?
CtlID	DWORD	?
itemID	DWORD	?
itemWidth	DWORD	?
itemHeight	DWORD	?
itemData	DWORD	?
MEASUREITEMSTRUCT	ends

PMEASUREITEMSTRUCT typedef ptr MEASUREITEMSTRUCT
LPMEASUREITEMSTRUCT typedef ptr MEASUREITEMSTRUCT

DRAWITEMSTRUCT	struct 
CtlType	DWORD	?
CtlID	DWORD	?
itemID	DWORD	?
itemAction	DWORD	?
itemState	DWORD	?
hwndItem	HWND	?
hDC	HDC	?
rcItem	RECT	<>
itemData	DWORD	?
DRAWITEMSTRUCT	ends

PDRAWITEMSTRUCT typedef ptr DRAWITEMSTRUCT
LPDRAWITEMSTRUCT typedef ptr DRAWITEMSTRUCT

DELETEITEMSTRUCT	struct 
CtlType	DWORD	?
CtlID	DWORD	?
itemID	DWORD	?
hwndItem	HWND	?
itemData	DWORD	?
DELETEITEMSTRUCT	ends

PDELETEITEMSTRUCT typedef ptr DELETEITEMSTRUCT
LPDELETEITEMSTRUCT typedef ptr DELETEITEMSTRUCT

COMPAREITEMSTRUCT	struct 
CtlType	DWORD	?
CtlID	DWORD	?
hwndItem	HWND	?
itemID1	DWORD	?
itemData1	DWORD	?
itemID2	DWORD	?
itemData2	DWORD	?
dwLocaleId	DWORD	?
COMPAREITEMSTRUCT	ends

PCOMPAREITEMSTRUCT typedef ptr COMPAREITEMSTRUCT
LPCOMPAREITEMSTRUCT typedef ptr COMPAREITEMSTRUCT

ifndef NOMSG
@DefProto WINUSERAPI, GetMessageA, stdcall, , <:LPMSG, :HWND, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, GetMessageW, stdcall, , <:LPMSG, :HWND, :DWORD, :DWORD>, 16
ifdef UNICODE
GetMessage	EQU	<GetMessageW>
else 
GetMessage	EQU	<GetMessageA>
endif 
@DefProto WINUSERAPI, TranslateMessage, stdcall, , <:ptr MSG>, 4
@DefProto WINUSERAPI, DispatchMessageA, stdcall, , <:ptr MSG>, 4
@DefProto WINUSERAPI, DispatchMessageW, stdcall, , <:ptr MSG>, 4
ifdef UNICODE
DispatchMessage	EQU	<DispatchMessageW>
else 
DispatchMessage	EQU	<DispatchMessageA>
endif 
@DefProto WINUSERAPI, SetMessageQueue, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, PeekMessageA, stdcall, , <:LPMSG, :HWND, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINUSERAPI, PeekMessageW, stdcall, , <:LPMSG, :HWND, :DWORD, :DWORD, :DWORD>, 20
ifdef UNICODE
PeekMessage	EQU	<PeekMessageW>
else 
PeekMessage	EQU	<PeekMessageA>
endif 
PM_NOREMOVE	EQU	0000h
PM_REMOVE	EQU	0001h
PM_NOYIELD	EQU	0002h
if (WINVER ge 0500h)
PM_QS_INPUT	EQU	( QS_INPUT  shl  16 )
PM_QS_POSTMESSAGE	EQU	( ( QS_POSTMESSAGE  or  QS_HOTKEY  or  QS_TIMER )  shl  16 )
PM_QS_PAINT	EQU	( QS_PAINT  shl  16 )
PM_QS_SENDMESSAGE	EQU	( QS_SENDMESSAGE  shl  16 )
endif 
endif 
@DefProto WINUSERAPI, RegisterHotKey, stdcall, , <:HWND, :DWORD, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, UnregisterHotKey, stdcall, , <:HWND, :DWORD>, 8
MOD_ALT	EQU	0001h
MOD_CONTROL	EQU	0002h
MOD_SHIFT	EQU	0004h
MOD_WIN	EQU	0008h
IDHOT_SNAPWINDOW	EQU	- 1
IDHOT_SNAPDESKTOP	EQU	- 2
ifdef WIN_INTERNAL
ifndef LSTRING
NOLSTRING	EQU	<>
endif 
ifndef LFILEIO
NOLFILEIO	EQU	<>
endif 
endif 
if (WINVER ge 0400h)
ENDSESSION_LOGOFF	EQU	80000000h
endif 
EWX_LOGOFF	EQU	0
EWX_SHUTDOWN	EQU	00000001h
EWX_REBOOT	EQU	00000002h
EWX_FORCE	EQU	00000004h
EWX_POWEROFF	EQU	00000008h
if (_WIN32_WINNT ge 0500h)
EWX_FORCEIFHUNG	EQU	00000010h
endif 
ExitWindows macro dwReserved,Code
	exitm <ExitWindowsEx ( EWX_LOGOFF , 0FFFFFFFFh ) >
	endm
@DefProto WINUSERAPI, ExitWindowsEx, stdcall, , <:DWORD, :DWORD>, 8
@DefProto WINUSERAPI, SwapMouseButton, stdcall, , <:BOOL>, 4
@DefProto WINUSERAPI, GetMessagePos, stdcall, , <>, 0
@DefProto WINUSERAPI, GetMessageTime, stdcall, , <>, 0
@DefProto WINUSERAPI, GetMessageExtraInfo, stdcall, , <>, 0
if (WINVER ge 0400h)
@DefProto WINUSERAPI, SetMessageExtraInfo, stdcall, , <:LPARAM>, 4
endif 
@DefProto WINUSERAPI, SendMessageA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
@DefProto WINUSERAPI, SendMessageW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifdef UNICODE
SendMessage	EQU	<SendMessageW>
else 
SendMessage	EQU	<SendMessageA>
endif 
@DefProto WINUSERAPI, SendMessageTimeoutA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM, :DWORD, :DWORD, :ptr DWORD>, 28
@DefProto WINUSERAPI, SendMessageTimeoutW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM, :DWORD, :DWORD, :ptr DWORD>, 28
ifdef UNICODE
SendMessageTimeout	EQU	<SendMessageTimeoutW>
else 
SendMessageTimeout	EQU	<SendMessageTimeoutA>
endif 
@DefProto WINUSERAPI, SendNotifyMessageA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
@DefProto WINUSERAPI, SendNotifyMessageW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifdef UNICODE
SendNotifyMessage	EQU	<SendNotifyMessageW>
else 
SendNotifyMessage	EQU	<SendNotifyMessageA>
endif 
@DefProto WINUSERAPI, SendMessageCallbackA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM, :SENDASYNCPROC, :DWORD>, 24
@DefProto WINUSERAPI, SendMessageCallbackW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM, :SENDASYNCPROC, :DWORD>, 24
ifdef UNICODE
SendMessageCallback	EQU	<SendMessageCallbackW>
else 
SendMessageCallback	EQU	<SendMessageCallbackA>
endif 
if (_WIN32_WINNT ge 0501h)
BSMINFO	struct 
cbSize	DWORD	?
hdesk	HDESK	?
hwnd	HWND	?
luid	LUID	<>
BSMINFO	ends

PBSMINFO typedef ptr BSMINFO

@DefProto WINUSERAPI, BroadcastSystemMessageExA, stdcall, , <:DWORD, :LPDWORD, :DWORD, :WPARAM, :LPARAM, :PBSMINFO>, 24
@DefProto WINUSERAPI, BroadcastSystemMessageExW, stdcall, , <:DWORD, :LPDWORD, :DWORD, :WPARAM, :LPARAM, :PBSMINFO>, 24
ifdef UNICODE
BroadcastSystemMessageEx	EQU	<BroadcastSystemMessageExW>
else 
BroadcastSystemMessageEx	EQU	<BroadcastSystemMessageExA>
endif 
endif 
if (WINVER ge 0400h)
if defined(_WIN32_WINNT)
@DefProto WINUSERAPI, BroadcastSystemMessageA, stdcall, , <:DWORD, :LPDWORD, :DWORD, :WPARAM, :LPARAM>, 20
@DefProto WINUSERAPI, BroadcastSystemMessageW, stdcall, , <:DWORD, :LPDWORD, :DWORD, :WPARAM, :LPARAM>, 20
ifdef UNICODE
BroadcastSystemMessage	EQU	<BroadcastSystemMessageW>
else 
BroadcastSystemMessage	EQU	<BroadcastSystemMessageA>
endif 
elseif defined(_WIN32_WINDOWS)
@DefProto WINUSERAPI, BroadcastSystemMessage, stdcall, , <:DWORD, :LPDWORD, :DWORD, :WPARAM, :LPARAM>, 20
endif 
BSM_ALLCOMPONENTS	EQU	00000000h
BSM_VXDS	EQU	00000001h
BSM_NETDRIVER	EQU	00000002h
BSM_INSTALLABLEDRIVERS	EQU	00000004h
BSM_APPLICATIONS	EQU	00000008h
BSM_ALLDESKTOPS	EQU	00000010h
BSF_QUERY	EQU	00000001h
BSF_IGNORECURRENTTASK	EQU	00000002h
BSF_FLUSHDISK	EQU	00000004h
BSF_NOHANG	EQU	00000008h
BSF_POSTMESSAGE	EQU	00000010h
BSF_FORCEIFHUNG	EQU	00000020h
BSF_NOTIMEOUTIFNOTHUNG	EQU	00000040h
if (_WIN32_WINNT ge 0500h)
BSF_ALLOWSFW	EQU	00000080h
BSF_SENDNOTIFYMESSAGE	EQU	00000100h
endif 
if (_WIN32_WINNT ge 0501h)
BSF_RETURNHDESK	EQU	00000200h
BSF_LUID	EQU	00000400h
endif 
BROADCAST_QUERY_DENY	EQU	424D5144h
endif 
if (WINVER ge 0500h)
HDEVNOTIFY typedef PVOID
PHDEVNOTIFY typedef ptr HDEVNOTIFY
DEVICE_NOTIFY_WINDOW_HANDLE	EQU	00000000h
DEVICE_NOTIFY_SERVICE_HANDLE	EQU	00000001h
if (_WIN32_WINNT ge 0501h)
DEVICE_NOTIFY_ALL_INTERFACE_CLASSES	EQU	00000004h
endif 
@DefProto WINUSERAPI, RegisterDeviceNotificationA, stdcall, , <:HANDLE, :LPVOID, :DWORD>, 12
@DefProto WINUSERAPI, RegisterDeviceNotificationW, stdcall, , <:HANDLE, :LPVOID, :DWORD>, 12
ifdef UNICODE
RegisterDeviceNotification	EQU	<RegisterDeviceNotificationW>
else 
RegisterDeviceNotification	EQU	<RegisterDeviceNotificationA>
endif 
@DefProto WINUSERAPI, UnregisterDeviceNotification, stdcall, , <:HDEVNOTIFY>, 4
endif 
@DefProto WINUSERAPI, PostMessageA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
@DefProto WINUSERAPI, PostMessageW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifdef UNICODE
PostMessage	EQU	<PostMessageW>
else 
PostMessage	EQU	<PostMessageA>
endif 
@DefProto WINUSERAPI, PostThreadMessageA, stdcall, , <:DWORD, :DWORD, :WPARAM, :LPARAM>, 16
@DefProto WINUSERAPI, PostThreadMessageW, stdcall, , <:DWORD, :DWORD, :WPARAM, :LPARAM>, 16
ifdef UNICODE
PostThreadMessage	EQU	<PostThreadMessageW>
else 
PostThreadMessage	EQU	<PostThreadMessageA>
endif 
PostAppMessageA macro idThread,wMsg,wParam,lParam
	exitm <PostThreadMessageA ( idThread , wMsg , wParam , lParam ) >
	endm
PostAppMessageW macro idThread,wMsg,wParam,lParam
	exitm <PostThreadMessageW ( idThread , wMsg , wParam , lParam ) >
	endm
ifdef UNICODE
PostAppMessage	EQU	<PostAppMessageW>
else 
PostAppMessage	EQU	<PostAppMessageA>
endif 
HWND_BROADCAST	EQU	0ffffh
if (WINVER ge 0500h)
HWND_MESSAGE	EQU	- 3
endif 
@DefProto WINUSERAPI, AttachThreadInput, stdcall, , <:DWORD, :DWORD, :BOOL>, 12
@DefProto WINUSERAPI, ReplyMessage, stdcall, , <:LRESULT>, 4
@DefProto WINUSERAPI, WaitMessage, stdcall, , <>, 0
@DefProto WINUSERAPI, WaitForInputIdle, stdcall, , <:HANDLE, :DWORD>, 8
ifndef _MAC
else 
endif 
@DefProto WINUSERAPI, DefWindowProcA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifndef _MAC
else 
endif 
@DefProto WINUSERAPI, DefWindowProcW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifdef UNICODE
DefWindowProc	EQU	<DefWindowProcW>
else 
DefWindowProc	EQU	<DefWindowProcA>
endif 
@DefProto WINUSERAPI, PostQuitMessage, stdcall, , <:DWORD>, 4
ifdef STRICT
@DefProto WINUSERAPI, CallWindowProcA, stdcall, , <:WNDPROC, :HWND, :DWORD, :WPARAM, :LPARAM>, 20
@DefProto WINUSERAPI, CallWindowProcW, stdcall, , <:WNDPROC, :HWND, :DWORD, :WPARAM, :LPARAM>, 20
ifdef UNICODE
CallWindowProc	EQU	<CallWindowProcW>
else 
CallWindowProc	EQU	<CallWindowProcA>
endif 
else 
@DefProto WINUSERAPI, CallWindowProcA, stdcall, , <:FARPROC, :HWND, :DWORD, :WPARAM, :LPARAM>, 20
@DefProto WINUSERAPI, CallWindowProcW, stdcall, , <:FARPROC, :HWND, :DWORD, :WPARAM, :LPARAM>, 20
ifdef UNICODE
CallWindowProc	EQU	<CallWindowProcW>
else 
CallWindowProc	EQU	<CallWindowProcA>
endif 
endif 
@DefProto WINUSERAPI, InSendMessage, stdcall, , <>, 0
if (WINVER ge 0500h)
@DefProto WINUSERAPI, InSendMessageEx, stdcall, , <:LPVOID>, 4
ISMEX_NOSEND	EQU	00000000h
ISMEX_SEND	EQU	00000001h
ISMEX_NOTIFY	EQU	00000002h
ISMEX_CALLBACK	EQU	00000004h
ISMEX_REPLIED	EQU	00000008h
endif 
@DefProto WINUSERAPI, GetDoubleClickTime, stdcall, , <>, 0
@DefProto WINUSERAPI, SetDoubleClickTime, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, RegisterClassA, stdcall, , <:ptr WNDCLASSA>, 4
@DefProto WINUSERAPI, RegisterClassW, stdcall, , <:ptr WNDCLASSW>, 4
ifdef UNICODE
RegisterClass	EQU	<RegisterClassW>
else 
RegisterClass	EQU	<RegisterClassA>
endif 
@DefProto WINUSERAPI, UnregisterClassA, stdcall, , <:LPSTR, :HINSTANCE>, 8
@DefProto WINUSERAPI, UnregisterClassW, stdcall, , <:LPWSTR, :HINSTANCE>, 8
ifdef UNICODE
UnregisterClass	EQU	<UnregisterClassW>
else 
UnregisterClass	EQU	<UnregisterClassA>
endif 
@DefProto WINUSERAPI, GetClassInfoA, stdcall, , <:HINSTANCE, :LPSTR, :LPWNDCLASSA>, 12
@DefProto WINUSERAPI, GetClassInfoW, stdcall, , <:HINSTANCE, :LPWSTR, :LPWNDCLASSW>, 12
ifdef UNICODE
GetClassInfo	EQU	<GetClassInfoW>
else 
GetClassInfo	EQU	<GetClassInfoA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, RegisterClassExA, stdcall, , <:ptr WNDCLASSEXA>, 4
@DefProto WINUSERAPI, RegisterClassExW, stdcall, , <:ptr WNDCLASSEXW>, 4
ifdef UNICODE
RegisterClassEx	EQU	<RegisterClassExW>
else 
RegisterClassEx	EQU	<RegisterClassExA>
endif 
@DefProto WINUSERAPI, GetClassInfoExA, stdcall, , <:HINSTANCE, :LPSTR, :LPWNDCLASSEXA>, 12
@DefProto WINUSERAPI, GetClassInfoExW, stdcall, , <:HINSTANCE, :LPWSTR, :LPWNDCLASSEXW>, 12
ifdef UNICODE
GetClassInfoEx	EQU	<GetClassInfoExW>
else 
GetClassInfoEx	EQU	<GetClassInfoExA>
endif 
endif 
CW_USEDEFAULT	EQU	80000000h
HWND_DESKTOP	EQU	0
if (_WIN32_WINNT ge 0501h)
proto_PREGISTERCLASSNAMEW typedef proto stdcall :LPWSTR
PREGISTERCLASSNAMEW typedef ptr proto_PREGISTERCLASSNAMEW
endif 
@DefProto WINUSERAPI, CreateWindowExA, stdcall, , <:DWORD, :LPSTR, :LPSTR, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :HWND, :HMENU, :HINSTANCE, :LPVOID>, 48
@DefProto WINUSERAPI, CreateWindowExW, stdcall, , <:DWORD, :LPWSTR, :LPWSTR, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :HWND, :HMENU, :HINSTANCE, :LPVOID>, 48
ifdef UNICODE
CreateWindowEx	EQU	<CreateWindowExW>
else 
CreateWindowEx	EQU	<CreateWindowExA>
endif 
CreateWindowA macro lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam
	exitm <CreateWindowExA ( 0 , lpClassName , lpWindowName , dwStyle , x , y , nWidth , nHeight , hWndParent , hMenu , hInstance , lpParam ) >
	endm
CreateWindowW macro lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam
	exitm <CreateWindowExW ( 0 , lpClassName , lpWindowName , dwStyle , x , y , nWidth , nHeight , hWndParent , hMenu , hInstance , lpParam ) >
	endm
ifdef UNICODE
CreateWindow	EQU	<CreateWindowW>
else 
CreateWindow	EQU	<CreateWindowA>
endif 
@DefProto WINUSERAPI, IsWindow, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, IsMenu, stdcall, , <:HMENU>, 4
@DefProto WINUSERAPI, IsChild, stdcall, , <:HWND, :HWND>, 8
@DefProto WINUSERAPI, DestroyWindow, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, ShowWindow, stdcall, , <:HWND, :DWORD>, 8
if (WINVER ge 0500h)
@DefProto WINUSERAPI, AnimateWindow, stdcall, , <:HWND, :DWORD, :DWORD>, 12
endif 
if (_WIN32_WINNT ge 0500h)
if defined(_WINGDI_) AND  0 eq defined(NOGDI)
@DefProto WINUSERAPI, UpdateLayeredWindow, stdcall, , <:HWND, :HDC, :ptr POINT, :ptr SIZE_, :HDC, :ptr POINT, :COLORREF, :ptr BLENDFUNCTION, :DWORD>, 36
endif 
if (_WIN32_WINNT ge 0501h)
@DefProto WINUSERAPI, GetLayeredWindowAttributes, stdcall, , <:HWND, :ptr COLORREF, :ptr BYTE, :ptr DWORD>, 16
PW_CLIENTONLY	EQU	00000001h
@DefProto WINUSERAPI, PrintWindow, stdcall, , <:HWND, :HDC, :DWORD>, 12
endif 
@DefProto WINUSERAPI, SetLayeredWindowAttributes, stdcall, , <:HWND, :COLORREF, :BYTE, :DWORD>, 16
LWA_COLORKEY	EQU	00000001h
LWA_ALPHA	EQU	00000002h
ULW_COLORKEY	EQU	00000001h
ULW_ALPHA	EQU	00000002h
ULW_OPAQUE	EQU	00000004h
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, ShowWindowAsync, stdcall, , <:HWND, :DWORD>, 8
endif 
@DefProto WINUSERAPI, FlashWindow, stdcall, , <:HWND, :BOOL>, 8
if (WINVER ge 0500h)
FLASHWINFO	struct 
cbSize	DWORD	?
hwnd	HWND	?
dwFlags	DWORD	?
uCount	DWORD	?
dwTimeout	DWORD	?
FLASHWINFO	ends

PFLASHWINFO typedef ptr FLASHWINFO

@DefProto WINUSERAPI, FlashWindowEx, stdcall, , <:PFLASHWINFO>, 4
FLASHW_STOP	EQU	0
FLASHW_CAPTION	EQU	00000001h
FLASHW_TRAY	EQU	00000002h
FLASHW_ALL	EQU	( FLASHW_CAPTION  or  FLASHW_TRAY )
FLASHW_TIMER	EQU	00000004h
FLASHW_TIMERNOFG	EQU	0000000Ch
endif 
@DefProto WINUSERAPI, ShowOwnedPopups, stdcall, , <:HWND, :BOOL>, 8
@DefProto WINUSERAPI, OpenIcon, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, CloseWindow, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, MoveWindow, stdcall, , <:HWND, :DWORD, :DWORD, :DWORD, :DWORD, :BOOL>, 24
@DefProto WINUSERAPI, SetWindowPos, stdcall, , <:HWND, :HWND, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 28
@DefProto WINUSERAPI, GetWindowPlacement, stdcall, , <:HWND, :ptr WINDOWPLACEMENT>, 8
@DefProto WINUSERAPI, SetWindowPlacement, stdcall, , <:HWND, :ptr WINDOWPLACEMENT>, 8
ifndef NODEFERWINDOWPOS
@DefProto WINUSERAPI, BeginDeferWindowPos, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, DeferWindowPos, stdcall, , <:HDWP, :HWND, :HWND, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 32
@DefProto WINUSERAPI, EndDeferWindowPos, stdcall, , <:HDWP>, 4
endif 
@DefProto WINUSERAPI, IsWindowVisible, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, IsIconic, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, AnyPopup, stdcall, , <>, 0
@DefProto WINUSERAPI, BringWindowToTop, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, IsZoomed, stdcall, , <:HWND>, 4
SWP_NOSIZE	EQU	0001h
SWP_NOMOVE	EQU	0002h
SWP_NOZORDER	EQU	0004h
SWP_NOREDRAW	EQU	0008h
SWP_NOACTIVATE	EQU	0010h
SWP_FRAMECHANGED	EQU	0020h
SWP_SHOWWINDOW	EQU	0040h
SWP_HIDEWINDOW	EQU	0080h
SWP_NOCOPYBITS	EQU	0100h
SWP_NOOWNERZORDER	EQU	0200h
SWP_NOSENDCHANGING	EQU	0400h
SWP_DRAWFRAME	EQU	<SWP_FRAMECHANGED>
SWP_NOREPOSITION	EQU	<SWP_NOOWNERZORDER>
if (WINVER ge 0400h)
SWP_DEFERERASE	EQU	2000h
SWP_ASYNCWINDOWPOS	EQU	4000h
endif 
HWND_TOP	EQU	0
HWND_BOTTOM	EQU	1
HWND_TOPMOST	EQU	- 1
HWND_NOTOPMOST	EQU	- 2
ifndef NOCTLMGR
	include pshpack2.inc
DLGTEMPLATE	struct 
style	DWORD	?
dwExtendedStyle	DWORD	?
cdit	WORD	?
x	SWORD	?
y	SWORD	?
cx_	SWORD	?
cy	SWORD	?
DLGTEMPLATE	ends

LPDLGTEMPLATEA typedef ptr DLGTEMPLATE
LPDLGTEMPLATEW typedef ptr DLGTEMPLATE
ifdef UNICODE
LPDLGTEMPLATE typedef LPDLGTEMPLATEW
else 
LPDLGTEMPLATE typedef LPDLGTEMPLATEA
endif 
LPCDLGTEMPLATEA typedef ptr DLGTEMPLATE
LPCDLGTEMPLATEW typedef ptr DLGTEMPLATE
ifdef UNICODE
LPCDLGTEMPLATE typedef LPCDLGTEMPLATEW
else 
LPCDLGTEMPLATE typedef LPCDLGTEMPLATEA
endif 
DLGITEMTEMPLATE	struct 
style	DWORD	?
dwExtendedStyle	DWORD	?
x	SWORD	?
y	SWORD	?
cx_	SWORD	?
cy	SWORD	?
id	WORD	?
DLGITEMTEMPLATE	ends

PDLGITEMTEMPLATEA typedef ptr DLGITEMTEMPLATE
PDLGITEMTEMPLATEW typedef ptr DLGITEMTEMPLATE
ifdef UNICODE
PDLGITEMTEMPLATE typedef PDLGITEMTEMPLATEW
else 
PDLGITEMTEMPLATE typedef PDLGITEMTEMPLATEA
endif 
LPDLGITEMTEMPLATEA typedef ptr DLGITEMTEMPLATE
LPDLGITEMTEMPLATEW typedef ptr DLGITEMTEMPLATE
ifdef UNICODE
LPDLGITEMTEMPLATE typedef LPDLGITEMTEMPLATEW
else 
LPDLGITEMTEMPLATE typedef LPDLGITEMTEMPLATEA
endif 
	include poppack.inc
@DefProto WINUSERAPI, CreateDialogParamA, stdcall, , <:HINSTANCE, :LPSTR, :HWND, :DLGPROC, :LPARAM>, 20
@DefProto WINUSERAPI, CreateDialogParamW, stdcall, , <:HINSTANCE, :LPWSTR, :HWND, :DLGPROC, :LPARAM>, 20
ifdef UNICODE
CreateDialogParam	EQU	<CreateDialogParamW>
else 
CreateDialogParam	EQU	<CreateDialogParamA>
endif 
@DefProto WINUSERAPI, CreateDialogIndirectParamA, stdcall, , <:HINSTANCE, :LPCDLGTEMPLATEA, :HWND, :DLGPROC, :LPARAM>, 20
@DefProto WINUSERAPI, CreateDialogIndirectParamW, stdcall, , <:HINSTANCE, :LPCDLGTEMPLATEW, :HWND, :DLGPROC, :LPARAM>, 20
ifdef UNICODE
CreateDialogIndirectParam	EQU	<CreateDialogIndirectParamW>
else 
CreateDialogIndirectParam	EQU	<CreateDialogIndirectParamA>
endif 
CreateDialogA macro hInstance,lpName,hWndParent,lpDialogFunc
	exitm <CreateDialogParamA ( hInstance , lpName , hWndParent , lpDialogFunc , 0 ) >
	endm
CreateDialogW macro hInstance,lpName,hWndParent,lpDialogFunc
	exitm <CreateDialogParamW ( hInstance , lpName , hWndParent , lpDialogFunc , 0 ) >
	endm
ifdef UNICODE
CreateDialog	EQU	<CreateDialogW>
else 
CreateDialog	EQU	<CreateDialogA>
endif 
CreateDialogIndirectA macro hInstance,lpTemplate,hWndParent,lpDialogFunc
	exitm <CreateDialogIndirectParamA ( hInstance , lpTemplate , hWndParent , lpDialogFunc , 0 ) >
	endm
CreateDialogIndirectW macro hInstance,lpTemplate,hWndParent,lpDialogFunc
	exitm <CreateDialogIndirectParamW ( hInstance , lpTemplate , hWndParent , lpDialogFunc , 0 ) >
	endm
ifdef UNICODE
CreateDialogIndirect	EQU	<CreateDialogIndirectW>
else 
CreateDialogIndirect	EQU	<CreateDialogIndirectA>
endif 
@DefProto WINUSERAPI, DialogBoxParamA, stdcall, , <:HINSTANCE, :LPSTR, :HWND, :DLGPROC, :LPARAM>, 20
@DefProto WINUSERAPI, DialogBoxParamW, stdcall, , <:HINSTANCE, :LPWSTR, :HWND, :DLGPROC, :LPARAM>, 20
ifdef UNICODE
DialogBoxParam	EQU	<DialogBoxParamW>
else 
DialogBoxParam	EQU	<DialogBoxParamA>
endif 
@DefProto WINUSERAPI, DialogBoxIndirectParamA, stdcall, , <:HINSTANCE, :LPCDLGTEMPLATEA, :HWND, :DLGPROC, :LPARAM>, 20
@DefProto WINUSERAPI, DialogBoxIndirectParamW, stdcall, , <:HINSTANCE, :LPCDLGTEMPLATEW, :HWND, :DLGPROC, :LPARAM>, 20
ifdef UNICODE
DialogBoxIndirectParam	EQU	<DialogBoxIndirectParamW>
else 
DialogBoxIndirectParam	EQU	<DialogBoxIndirectParamA>
endif 
DialogBoxA macro hInstance,lpTemplate,hWndParent,lpDialogFunc
	exitm <DialogBoxParamA ( hInstance , lpTemplate , hWndParent , lpDialogFunc , 0 ) >
	endm
DialogBoxW macro hInstance,lpTemplate,hWndParent,lpDialogFunc
	exitm <DialogBoxParamW ( hInstance , lpTemplate , hWndParent , lpDialogFunc , 0 ) >
	endm
ifdef UNICODE
DialogBox	EQU	<DialogBoxW>
else 
DialogBox	EQU	<DialogBoxA>
endif 
DialogBoxIndirectA macro hInstance,lpTemplate,hWndParent,lpDialogFunc
	exitm <DialogBoxIndirectParamA ( hInstance , lpTemplate , hWndParent , lpDialogFunc , 0 ) >
	endm
DialogBoxIndirectW macro hInstance,lpTemplate,hWndParent,lpDialogFunc
	exitm <DialogBoxIndirectParamW ( hInstance , lpTemplate , hWndParent , lpDialogFunc , 0 ) >
	endm
ifdef UNICODE
DialogBoxIndirect	EQU	<DialogBoxIndirectW>
else 
DialogBoxIndirect	EQU	<DialogBoxIndirectA>
endif 
@DefProto WINUSERAPI, EndDialog, stdcall, , <:HWND, :INT_PTR>, 8
@DefProto WINUSERAPI, GetDlgItem, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, SetDlgItemInt, stdcall, , <:HWND, :DWORD, :DWORD, :BOOL>, 16
@DefProto WINUSERAPI, GetDlgItemInt, stdcall, , <:HWND, :DWORD, :ptr BOOL, :BOOL>, 16
@DefProto WINUSERAPI, SetDlgItemTextA, stdcall, , <:HWND, :DWORD, :LPSTR>, 12
@DefProto WINUSERAPI, SetDlgItemTextW, stdcall, , <:HWND, :DWORD, :LPWSTR>, 12
ifdef UNICODE
SetDlgItemText	EQU	<SetDlgItemTextW>
else 
SetDlgItemText	EQU	<SetDlgItemTextA>
endif 
@DefProto WINUSERAPI, GetDlgItemTextA, stdcall, , <:HWND, :DWORD, :LPSTR, :DWORD>, 16
@DefProto WINUSERAPI, GetDlgItemTextW, stdcall, , <:HWND, :DWORD, :LPWSTR, :DWORD>, 16
ifdef UNICODE
GetDlgItemText	EQU	<GetDlgItemTextW>
else 
GetDlgItemText	EQU	<GetDlgItemTextA>
endif 
@DefProto WINUSERAPI, CheckDlgButton, stdcall, , <:HWND, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, CheckRadioButton, stdcall, , <:HWND, :DWORD, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, IsDlgButtonChecked, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, SendDlgItemMessageA, stdcall, , <:HWND, :DWORD, :DWORD, :WPARAM, :LPARAM>, 20
@DefProto WINUSERAPI, SendDlgItemMessageW, stdcall, , <:HWND, :DWORD, :DWORD, :WPARAM, :LPARAM>, 20
ifdef UNICODE
SendDlgItemMessage	EQU	<SendDlgItemMessageW>
else 
SendDlgItemMessage	EQU	<SendDlgItemMessageA>
endif 
@DefProto WINUSERAPI, GetNextDlgGroupItem, stdcall, , <:HWND, :HWND, :BOOL>, 12
@DefProto WINUSERAPI, GetNextDlgTabItem, stdcall, , <:HWND, :HWND, :BOOL>, 12
@DefProto WINUSERAPI, GetDlgCtrlID, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, GetDialogBaseUnits, stdcall, , <>, 0
ifndef _MAC
else 
endif 
@DefProto WINUSERAPI, DefDlgProcA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifndef _MAC
else 
endif 
@DefProto WINUSERAPI, DefDlgProcW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifdef UNICODE
DefDlgProc	EQU	<DefDlgProcW>
else 
DefDlgProc	EQU	<DefDlgProcA>
endif 
ifndef _MAC
DLGWINDOWEXTRA	EQU	30
else 
DLGWINDOWEXTRA	EQU	48
endif 
endif 
ifndef NOMSG
@DefProto WINUSERAPI, CallMsgFilterA, stdcall, , <:LPMSG, :DWORD>, 8
@DefProto WINUSERAPI, CallMsgFilterW, stdcall, , <:LPMSG, :DWORD>, 8
ifdef UNICODE
CallMsgFilter	EQU	<CallMsgFilterW>
else 
CallMsgFilter	EQU	<CallMsgFilterA>
endif 
endif 
ifndef NOCLIPBOARD
@DefProto WINUSERAPI, OpenClipboard, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, CloseClipboard, stdcall, , <>, 0
if (WINVER ge 0500h)
@DefProto WINUSERAPI, GetClipboardSequenceNumber, stdcall, , <>, 0
endif 
@DefProto WINUSERAPI, GetClipboardOwner, stdcall, , <>, 0
@DefProto WINUSERAPI, SetClipboardViewer, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, GetClipboardViewer, stdcall, , <>, 0
@DefProto WINUSERAPI, ChangeClipboardChain, stdcall, , <:HWND, :HWND>, 8
@DefProto WINUSERAPI, SetClipboardData, stdcall, , <:DWORD, :HANDLE>, 8
@DefProto WINUSERAPI, GetClipboardData, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, RegisterClipboardFormatA, stdcall, , <:LPSTR>, 4
@DefProto WINUSERAPI, RegisterClipboardFormatW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
RegisterClipboardFormat	EQU	<RegisterClipboardFormatW>
else 
RegisterClipboardFormat	EQU	<RegisterClipboardFormatA>
endif 
@DefProto WINUSERAPI, CountClipboardFormats, stdcall, , <>, 0
@DefProto WINUSERAPI, EnumClipboardFormats, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, GetClipboardFormatNameA, stdcall, , <:DWORD, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, GetClipboardFormatNameW, stdcall, , <:DWORD, :LPWSTR, :DWORD>, 12
ifdef UNICODE
GetClipboardFormatName	EQU	<GetClipboardFormatNameW>
else 
GetClipboardFormatName	EQU	<GetClipboardFormatNameA>
endif 
@DefProto WINUSERAPI, EmptyClipboard, stdcall, , <>, 0
@DefProto WINUSERAPI, IsClipboardFormatAvailable, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, GetPriorityClipboardFormat, stdcall, , <:ptr DWORD, :DWORD>, 8
@DefProto WINUSERAPI, GetOpenClipboardWindow, stdcall, , <>, 0
endif 
@DefProto WINUSERAPI, CharToOemA, stdcall, , <:LPSTR, :LPSTR>, 8
@DefProto WINUSERAPI, CharToOemW, stdcall, , <:LPWSTR, :LPSTR>, 8
ifdef UNICODE
CharToOem	EQU	<CharToOemW>
else 
CharToOem	EQU	<CharToOemA>
endif 
@DefProto WINUSERAPI, OemToCharA, stdcall, , <:LPSTR, :LPSTR>, 8
@DefProto WINUSERAPI, OemToCharW, stdcall, , <:LPSTR, :LPWSTR>, 8
ifdef UNICODE
OemToChar	EQU	<OemToCharW>
else 
OemToChar	EQU	<OemToCharA>
endif 
@DefProto WINUSERAPI, CharToOemBuffA, stdcall, , <:LPSTR, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, CharToOemBuffW, stdcall, , <:LPWSTR, :LPSTR, :DWORD>, 12
ifdef UNICODE
CharToOemBuff	EQU	<CharToOemBuffW>
else 
CharToOemBuff	EQU	<CharToOemBuffA>
endif 
@DefProto WINUSERAPI, OemToCharBuffA, stdcall, , <:LPSTR, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, OemToCharBuffW, stdcall, , <:LPSTR, :LPWSTR, :DWORD>, 12
ifdef UNICODE
OemToCharBuff	EQU	<OemToCharBuffW>
else 
OemToCharBuff	EQU	<OemToCharBuffA>
endif 
@DefProto WINUSERAPI, CharUpperA, stdcall, , <:LPSTR>, 4
@DefProto WINUSERAPI, CharUpperW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
CharUpper	EQU	<CharUpperW>
else 
CharUpper	EQU	<CharUpperA>
endif 
@DefProto WINUSERAPI, CharUpperBuffA, stdcall, , <:LPSTR, :DWORD>, 8
@DefProto WINUSERAPI, CharUpperBuffW, stdcall, , <:LPWSTR, :DWORD>, 8
ifdef UNICODE
CharUpperBuff	EQU	<CharUpperBuffW>
else 
CharUpperBuff	EQU	<CharUpperBuffA>
endif 
@DefProto WINUSERAPI, CharLowerA, stdcall, , <:LPSTR>, 4
@DefProto WINUSERAPI, CharLowerW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
CharLower	EQU	<CharLowerW>
else 
CharLower	EQU	<CharLowerA>
endif 
@DefProto WINUSERAPI, CharLowerBuffA, stdcall, , <:LPSTR, :DWORD>, 8
@DefProto WINUSERAPI, CharLowerBuffW, stdcall, , <:LPWSTR, :DWORD>, 8
ifdef UNICODE
CharLowerBuff	EQU	<CharLowerBuffW>
else 
CharLowerBuff	EQU	<CharLowerBuffA>
endif 
@DefProto WINUSERAPI, CharNextA, stdcall, , <:LPSTR>, 4
@DefProto WINUSERAPI, CharNextW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
CharNext	EQU	<CharNextW>
else 
CharNext	EQU	<CharNextA>
endif 
@DefProto WINUSERAPI, CharPrevA, stdcall, , <:LPSTR, :LPSTR>, 8
@DefProto WINUSERAPI, CharPrevW, stdcall, , <:LPWSTR, :LPWSTR>, 8
ifdef UNICODE
CharPrev	EQU	<CharPrevW>
else 
CharPrev	EQU	<CharPrevA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, CharNextExA, stdcall, , <:WORD, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, CharPrevExA, stdcall, , <:WORD, :LPSTR, :LPSTR, :DWORD>, 16
endif 
AnsiToOem	EQU	<CharToOemA>
OemToAnsi	EQU	<OemToCharA>
AnsiToOemBuff	EQU	<CharToOemBuffA>
OemToAnsiBuff	EQU	<OemToCharBuffA>
AnsiUpper	EQU	<CharUpperA>
AnsiUpperBuff	EQU	<CharUpperBuffA>
AnsiLower	EQU	<CharLowerA>
AnsiLowerBuff	EQU	<CharLowerBuffA>
AnsiNext	EQU	<CharNextA>
AnsiPrev	EQU	<CharPrevA>
ifndef NOLANGUAGE
@DefProto WINUSERAPI, IsCharAlphaA, stdcall, , <:CHAR>, 4
@DefProto WINUSERAPI, IsCharAlphaW, stdcall, , <:WCHAR>, 4
ifdef UNICODE
IsCharAlpha	EQU	<IsCharAlphaW>
else 
IsCharAlpha	EQU	<IsCharAlphaA>
endif 
@DefProto WINUSERAPI, IsCharAlphaNumericA, stdcall, , <:CHAR>, 4
@DefProto WINUSERAPI, IsCharAlphaNumericW, stdcall, , <:WCHAR>, 4
ifdef UNICODE
IsCharAlphaNumeric	EQU	<IsCharAlphaNumericW>
else 
IsCharAlphaNumeric	EQU	<IsCharAlphaNumericA>
endif 
@DefProto WINUSERAPI, IsCharUpperA, stdcall, , <:CHAR>, 4
@DefProto WINUSERAPI, IsCharUpperW, stdcall, , <:WCHAR>, 4
ifdef UNICODE
IsCharUpper	EQU	<IsCharUpperW>
else 
IsCharUpper	EQU	<IsCharUpperA>
endif 
@DefProto WINUSERAPI, IsCharLowerA, stdcall, , <:CHAR>, 4
@DefProto WINUSERAPI, IsCharLowerW, stdcall, , <:WCHAR>, 4
ifdef UNICODE
IsCharLower	EQU	<IsCharLowerW>
else 
IsCharLower	EQU	<IsCharLowerA>
endif 
endif 
@DefProto WINUSERAPI, SetFocus, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, GetActiveWindow, stdcall, , <>, 0
@DefProto WINUSERAPI, GetFocus, stdcall, , <>, 0
@DefProto WINUSERAPI, GetKBCodePage, stdcall, , <>, 0
@DefProto WINUSERAPI, GetKeyState, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, GetAsyncKeyState, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, GetKeyboardState, stdcall, , <:PBYTE>, 4
@DefProto WINUSERAPI, SetKeyboardState, stdcall, , <:LPBYTE>, 4
@DefProto WINUSERAPI, GetKeyNameTextA, stdcall, , <:SDWORD, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, GetKeyNameTextW, stdcall, , <:SDWORD, :LPWSTR, :DWORD>, 12
ifdef UNICODE
GetKeyNameText	EQU	<GetKeyNameTextW>
else 
GetKeyNameText	EQU	<GetKeyNameTextA>
endif 
@DefProto WINUSERAPI, GetKeyboardType, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, ToAscii, stdcall, , <:DWORD, :DWORD, :ptr BYTE, :LPWORD, :DWORD>, 20
if (WINVER ge 0400h)
@DefProto WINUSERAPI, ToAsciiEx, stdcall, , <:DWORD, :DWORD, :ptr BYTE, :LPWORD, :DWORD, :HKL>, 24
endif 
@DefProto WINUSERAPI, ToUnicode, stdcall, , <:DWORD, :DWORD, :ptr BYTE, :LPWSTR, :DWORD, :DWORD>, 24
@DefProto WINUSERAPI, OemKeyScan, stdcall, , <:WORD>, 4
@DefProto WINUSERAPI, VkKeyScanA, stdcall, , <:CHAR>, 4
@DefProto WINUSERAPI, VkKeyScanW, stdcall, , <:WCHAR>, 4
ifdef UNICODE
VkKeyScan	EQU	<VkKeyScanW>
else 
VkKeyScan	EQU	<VkKeyScanA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, VkKeyScanExA, stdcall, , <:CHAR, :HKL>, 8
@DefProto WINUSERAPI, VkKeyScanExW, stdcall, , <:WCHAR, :HKL>, 8
ifdef UNICODE
VkKeyScanEx	EQU	<VkKeyScanExW>
else 
VkKeyScanEx	EQU	<VkKeyScanExA>
endif 
endif 
KEYEVENTF_EXTENDEDKEY	EQU	0001h
KEYEVENTF_KEYUP	EQU	0002h
if (_WIN32_WINNT ge 0500h)
KEYEVENTF_UNICODE	EQU	0004h
KEYEVENTF_SCANCODE	EQU	0008h
endif 
@DefProto WINUSERAPI, keybd_event, stdcall, , <:BYTE, :BYTE, :DWORD, :DWORD>, 16
MOUSEEVENTF_MOVE	EQU	0001h
MOUSEEVENTF_LEFTDOWN	EQU	0002h
MOUSEEVENTF_LEFTUP	EQU	0004h
MOUSEEVENTF_RIGHTDOWN	EQU	0008h
MOUSEEVENTF_RIGHTUP	EQU	0010h
MOUSEEVENTF_MIDDLEDOWN	EQU	0020h
MOUSEEVENTF_MIDDLEUP	EQU	0040h
MOUSEEVENTF_XDOWN	EQU	0080h
MOUSEEVENTF_XUP	EQU	0100h
MOUSEEVENTF_WHEEL	EQU	0800h
MOUSEEVENTF_VIRTUALDESK	EQU	4000h
MOUSEEVENTF_ABSOLUTE	EQU	8000h
@DefProto WINUSERAPI, mouse_event, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 20
if (_WIN32_WINNT gt 0400h)
MOUSEINPUT	struct 
dx_	SDWORD	?
dy	SDWORD	?
mouseData	DWORD	?
dwFlags	DWORD	?
time	DWORD	?
dwExtraInfo	DWORD	?
MOUSEINPUT	ends

PMOUSEINPUT typedef ptr MOUSEINPUT
LPMOUSEINPUT typedef ptr MOUSEINPUT

KEYBDINPUT	struct 
wVk	WORD	?
wScan	WORD	?
dwFlags	DWORD	?
time	DWORD	?
dwExtraInfo	DWORD	?
KEYBDINPUT	ends

PKEYBDINPUT typedef ptr KEYBDINPUT
LPKEYBDINPUT typedef ptr KEYBDINPUT

HARDWAREINPUT	struct 
uMsg	DWORD	?
wParamL	WORD	?
wParamH	WORD	?
HARDWAREINPUT	ends

PHARDWAREINPUT typedef ptr HARDWAREINPUT
LPHARDWAREINPUT typedef ptr HARDWAREINPUT

INPUT_MOUSE	EQU	0
INPUT_KEYBOARD	EQU	1
INPUT_HARDWARE	EQU	2
INPUT	struct 
type_	DWORD	?
union
mi	MOUSEINPUT	<>
ki	KEYBDINPUT	<>
hi	HARDWAREINPUT	<>
ends
INPUT	ends

PINPUT typedef ptr INPUT
LPINPUT typedef ptr INPUT

@DefProto WINUSERAPI, SendInput, stdcall, , <:DWORD, :LPINPUT, :DWORD>, 12
endif 
if (_WIN32_WINNT ge 0500h)
LASTINPUTINFO	struct 
cbSize	DWORD	?
dwTime	DWORD	?
LASTINPUTINFO	ends

PLASTINPUTINFO typedef ptr LASTINPUTINFO

@DefProto WINUSERAPI, GetLastInputInfo, stdcall, , <:PLASTINPUTINFO>, 4
endif 
@DefProto WINUSERAPI, MapVirtualKeyA, stdcall, , <:DWORD, :DWORD>, 8
@DefProto WINUSERAPI, MapVirtualKeyW, stdcall, , <:DWORD, :DWORD>, 8
ifdef UNICODE
MapVirtualKey	EQU	<MapVirtualKeyW>
else 
MapVirtualKey	EQU	<MapVirtualKeyA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, MapVirtualKeyExA, stdcall, , <:DWORD, :DWORD, :HKL>, 12
@DefProto WINUSERAPI, MapVirtualKeyExW, stdcall, , <:DWORD, :DWORD, :HKL>, 12
ifdef UNICODE
MapVirtualKeyEx	EQU	<MapVirtualKeyExW>
else 
MapVirtualKeyEx	EQU	<MapVirtualKeyExA>
endif 
endif 
@DefProto WINUSERAPI, GetInputState, stdcall, , <>, 0
@DefProto WINUSERAPI, GetQueueStatus, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, GetCapture, stdcall, , <>, 0
@DefProto WINUSERAPI, SetCapture, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, ReleaseCapture, stdcall, , <>, 0
@DefProto WINUSERAPI, MsgWaitForMultipleObjects, stdcall, , <:DWORD, :ptr HANDLE, :BOOL, :DWORD, :DWORD>, 20
@DefProto WINUSERAPI, MsgWaitForMultipleObjectsEx, stdcall, , <:DWORD, :ptr HANDLE, :DWORD, :DWORD, :DWORD>, 20
MWMO_WAITALL	EQU	0001h
MWMO_ALERTABLE	EQU	0002h
MWMO_INPUTAVAILABLE	EQU	0004h
QS_KEY	EQU	0001h
QS_MOUSEMOVE	EQU	0002h
QS_MOUSEBUTTON	EQU	0004h
QS_POSTMESSAGE	EQU	0008h
QS_TIMER	EQU	0010h
QS_PAINT	EQU	0020h
QS_SENDMESSAGE	EQU	0040h
QS_HOTKEY	EQU	0080h
QS_ALLPOSTMESSAGE	EQU	0100h
if (_WIN32_WINNT ge 0501h)
QS_RAWINPUT	EQU	0400h
endif 
QS_MOUSE	EQU	( QS_MOUSEMOVE  or  QS_MOUSEBUTTON )
if (_WIN32_WINNT ge 0501h)
QS_INPUT	EQU	( QS_MOUSE  or  QS_KEY  or  QS_RAWINPUT )
else 
QS_INPUT	EQU	( QS_MOUSE  or  QS_KEY )
endif 
QS_ALLEVENTS	EQU	( QS_INPUT  or  QS_POSTMESSAGE  or  QS_TIMER  or  QS_PAINT  or  QS_HOTKEY )
QS_ALLINPUT	EQU	( QS_INPUT  or  QS_POSTMESSAGE  or  QS_TIMER  or  QS_PAINT  or  QS_HOTKEY  or  QS_SENDMESSAGE )
@DefProto WINUSERAPI, SetTimer, stdcall, , <:HWND, :UINT_PTR, :DWORD, :TIMERPROC>, 16
@DefProto WINUSERAPI, KillTimer, stdcall, , <:HWND, :UINT_PTR>, 8
@DefProto WINUSERAPI, IsWindowUnicode, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, EnableWindow, stdcall, , <:HWND, :BOOL>, 8
@DefProto WINUSERAPI, IsWindowEnabled, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, LoadAcceleratorsA, stdcall, , <:HINSTANCE, :LPSTR>, 8
@DefProto WINUSERAPI, LoadAcceleratorsW, stdcall, , <:HINSTANCE, :LPWSTR>, 8
ifdef UNICODE
LoadAccelerators	EQU	<LoadAcceleratorsW>
else 
LoadAccelerators	EQU	<LoadAcceleratorsA>
endif 
@DefProto WINUSERAPI, CreateAcceleratorTableA, stdcall, , <:LPACCEL, :DWORD>, 8
@DefProto WINUSERAPI, CreateAcceleratorTableW, stdcall, , <:LPACCEL, :DWORD>, 8
ifdef UNICODE
CreateAcceleratorTable	EQU	<CreateAcceleratorTableW>
else 
CreateAcceleratorTable	EQU	<CreateAcceleratorTableA>
endif 
@DefProto WINUSERAPI, DestroyAcceleratorTable, stdcall, , <:HACCEL>, 4
@DefProto WINUSERAPI, CopyAcceleratorTableA, stdcall, , <:HACCEL, :LPACCEL, :DWORD>, 12
@DefProto WINUSERAPI, CopyAcceleratorTableW, stdcall, , <:HACCEL, :LPACCEL, :DWORD>, 12
ifdef UNICODE
CopyAcceleratorTable	EQU	<CopyAcceleratorTableW>
else 
CopyAcceleratorTable	EQU	<CopyAcceleratorTableA>
endif 
ifndef NOMSG
@DefProto WINUSERAPI, TranslateAcceleratorA, stdcall, , <:HWND, :HACCEL, :LPMSG>, 12
@DefProto WINUSERAPI, TranslateAcceleratorW, stdcall, , <:HWND, :HACCEL, :LPMSG>, 12
ifdef UNICODE
TranslateAccelerator	EQU	<TranslateAcceleratorW>
else 
TranslateAccelerator	EQU	<TranslateAcceleratorA>
endif 
endif 
ifndef NOSYSMETRICS
SM_CXSCREEN	EQU	0
SM_CYSCREEN	EQU	1
SM_CXVSCROLL	EQU	2
SM_CYHSCROLL	EQU	3
SM_CYCAPTION	EQU	4
SM_CXBORDER	EQU	5
SM_CYBORDER	EQU	6
SM_CXDLGFRAME	EQU	7
SM_CYDLGFRAME	EQU	8
SM_CYVTHUMB	EQU	9
SM_CXHTHUMB	EQU	10
SM_CXICON	EQU	11
SM_CYICON	EQU	12
SM_CXCURSOR	EQU	13
SM_CYCURSOR	EQU	14
SM_CYMENU	EQU	15
SM_CXFULLSCREEN	EQU	16
SM_CYFULLSCREEN	EQU	17
SM_CYKANJIWINDOW	EQU	18
SM_MOUSEPRESENT	EQU	19
SM_CYVSCROLL	EQU	20
SM_CXHSCROLL	EQU	21
SM_DEBUG	EQU	22
SM_SWAPBUTTON	EQU	23
SM_RESERVED1	EQU	24
SM_RESERVED2	EQU	25
SM_RESERVED3	EQU	26
SM_RESERVED4	EQU	27
SM_CXMIN	EQU	28
SM_CYMIN	EQU	29
SM_CXSIZE	EQU	30
SM_CYSIZE	EQU	31
SM_CXFRAME	EQU	32
SM_CYFRAME	EQU	33
SM_CXMINTRACK	EQU	34
SM_CYMINTRACK	EQU	35
SM_CXDOUBLECLK	EQU	36
SM_CYDOUBLECLK	EQU	37
SM_CXICONSPACING	EQU	38
SM_CYICONSPACING	EQU	39
SM_MENUDROPALIGNMENT	EQU	40
SM_PENWINDOWS	EQU	41
SM_DBCSENABLED	EQU	42
SM_CMOUSEBUTTONS	EQU	43
if (WINVER ge 0400h)
SM_CXFIXEDFRAME	EQU	<SM_CXDLGFRAME>
SM_CYFIXEDFRAME	EQU	<SM_CYDLGFRAME>
SM_CXSIZEFRAME	EQU	<SM_CXFRAME>
SM_CYSIZEFRAME	EQU	<SM_CYFRAME>
SM_SECURE	EQU	44
SM_CXEDGE	EQU	45
SM_CYEDGE	EQU	46
SM_CXMINSPACING	EQU	47
SM_CYMINSPACING	EQU	48
SM_CXSMICON	EQU	49
SM_CYSMICON	EQU	50
SM_CYSMCAPTION	EQU	51
SM_CXSMSIZE	EQU	52
SM_CYSMSIZE	EQU	53
SM_CXMENUSIZE	EQU	54
SM_CYMENUSIZE	EQU	55
SM_ARRANGE	EQU	56
SM_CXMINIMIZED	EQU	57
SM_CYMINIMIZED	EQU	58
SM_CXMAXTRACK	EQU	59
SM_CYMAXTRACK	EQU	60
SM_CXMAXIMIZED	EQU	61
SM_CYMAXIMIZED	EQU	62
SM_NETWORK	EQU	63
SM_CLEANBOOT	EQU	67
SM_CXDRAG	EQU	68
SM_CYDRAG	EQU	69
endif 
SM_SHOWSOUNDS	EQU	70
if (WINVER ge 0400h)
SM_CXMENUCHECK	EQU	71
SM_CYMENUCHECK	EQU	72
SM_SLOWMACHINE	EQU	73
SM_MIDEASTENABLED	EQU	74
endif 
if (WINVER ge 0500h) OR (_WIN32_WINNT ge 0400h)
SM_MOUSEWHEELPRESENT	EQU	75
endif 
if (WINVER ge 0500h)
SM_XVIRTUALSCREEN	EQU	76
SM_YVIRTUALSCREEN	EQU	77
SM_CXVIRTUALSCREEN	EQU	78
SM_CYVIRTUALSCREEN	EQU	79
SM_CMONITORS	EQU	80
SM_SAMEDISPLAYFORMAT	EQU	81
endif 
if (_WIN32_WINNT ge 0500h)
SM_IMMENABLED	EQU	82
endif 
if (_WIN32_WINNT ge 0501h)
SM_CXFOCUSBORDER	EQU	83
SM_CYFOCUSBORDER	EQU	84
endif 
if (WINVER lt 0500h) AND ( 0 eq defined(_WIN32_WINNT) OR (_WIN32_WINNT lt 0400h))
SM_CMETRICS	EQU	76
else 
SM_CMETRICS	EQU	86
endif 
if (WINVER ge 0500h)
SM_REMOTESESSION	EQU	1000h
if (_WIN32_WINNT ge 0501h)
SM_SHUTTINGDOWN	EQU	2000h
endif 
endif 
@DefProto WINUSERAPI, GetSystemMetrics, stdcall, , <:DWORD>, 4
endif 
ifndef NOMENUS
@DefProto WINUSERAPI, LoadMenuA, stdcall, , <:HINSTANCE, :LPSTR>, 8
@DefProto WINUSERAPI, LoadMenuW, stdcall, , <:HINSTANCE, :LPWSTR>, 8
ifdef UNICODE
LoadMenu	EQU	<LoadMenuW>
else 
LoadMenu	EQU	<LoadMenuA>
endif 
@DefProto WINUSERAPI, LoadMenuIndirectA, stdcall, , <:ptr MENUTEMPLATEA>, 4
@DefProto WINUSERAPI, LoadMenuIndirectW, stdcall, , <:ptr MENUTEMPLATEW>, 4
ifdef UNICODE
LoadMenuIndirect	EQU	<LoadMenuIndirectW>
else 
LoadMenuIndirect	EQU	<LoadMenuIndirectA>
endif 
@DefProto WINUSERAPI, GetMenu, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, SetMenu, stdcall, , <:HWND, :HMENU>, 8
@DefProto WINUSERAPI, ChangeMenuA, stdcall, , <:HMENU, :DWORD, :LPSTR, :DWORD, :DWORD>, 20
@DefProto WINUSERAPI, ChangeMenuW, stdcall, , <:HMENU, :DWORD, :LPWSTR, :DWORD, :DWORD>, 20
ifdef UNICODE
ChangeMenu	EQU	<ChangeMenuW>
else 
ChangeMenu	EQU	<ChangeMenuA>
endif 
@DefProto WINUSERAPI, HiliteMenuItem, stdcall, , <:HWND, :HMENU, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, GetMenuStringA, stdcall, , <:HMENU, :DWORD, :LPSTR, :DWORD, :DWORD>, 20
@DefProto WINUSERAPI, GetMenuStringW, stdcall, , <:HMENU, :DWORD, :LPWSTR, :DWORD, :DWORD>, 20
ifdef UNICODE
GetMenuString	EQU	<GetMenuStringW>
else 
GetMenuString	EQU	<GetMenuStringA>
endif 
@DefProto WINUSERAPI, GetMenuState, stdcall, , <:HMENU, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, DrawMenuBar, stdcall, , <:HWND>, 4
if (_WIN32_WINNT ge 0501h)
PMB_ACTIVE	EQU	00000001h
endif 
@DefProto WINUSERAPI, GetSystemMenu, stdcall, , <:HWND, :BOOL>, 8
@DefProto WINUSERAPI, CreateMenu, stdcall, , <>, 0
@DefProto WINUSERAPI, CreatePopupMenu, stdcall, , <>, 0
@DefProto WINUSERAPI, DestroyMenu, stdcall, , <:HMENU>, 4
@DefProto WINUSERAPI, CheckMenuItem, stdcall, , <:HMENU, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, EnableMenuItem, stdcall, , <:HMENU, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, GetSubMenu, stdcall, , <:HMENU, :DWORD>, 8
@DefProto WINUSERAPI, GetMenuItemID, stdcall, , <:HMENU, :DWORD>, 8
@DefProto WINUSERAPI, GetMenuItemCount, stdcall, , <:HMENU>, 4
@DefProto WINUSERAPI, InsertMenuA, stdcall, , <:HMENU, :DWORD, :DWORD, :UINT_PTR, :LPSTR>, 20
@DefProto WINUSERAPI, InsertMenuW, stdcall, , <:HMENU, :DWORD, :DWORD, :UINT_PTR, :LPWSTR>, 20
ifdef UNICODE
InsertMenu	EQU	<InsertMenuW>
else 
InsertMenu	EQU	<InsertMenuA>
endif 
@DefProto WINUSERAPI, AppendMenuA, stdcall, , <:HMENU, :DWORD, :UINT_PTR, :LPSTR>, 16
@DefProto WINUSERAPI, AppendMenuW, stdcall, , <:HMENU, :DWORD, :UINT_PTR, :LPWSTR>, 16
ifdef UNICODE
AppendMenu	EQU	<AppendMenuW>
else 
AppendMenu	EQU	<AppendMenuA>
endif 
@DefProto WINUSERAPI, ModifyMenuA, stdcall, , <:HMENU, :DWORD, :DWORD, :UINT_PTR, :LPSTR>, 20
@DefProto WINUSERAPI, ModifyMenuW, stdcall, , <:HMENU, :DWORD, :DWORD, :UINT_PTR, :LPWSTR>, 20
ifdef UNICODE
ModifyMenu	EQU	<ModifyMenuW>
else 
ModifyMenu	EQU	<ModifyMenuA>
endif 
@DefProto WINUSERAPI, RemoveMenu, stdcall, , <:HMENU, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, DeleteMenu, stdcall, , <:HMENU, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, SetMenuItemBitmaps, stdcall, , <:HMENU, :DWORD, :DWORD, :HBITMAP, :HBITMAP>, 20
@DefProto WINUSERAPI, GetMenuCheckMarkDimensions, stdcall, , <>, 0
@DefProto WINUSERAPI, TrackPopupMenu, stdcall, , <:HMENU, :DWORD, :DWORD, :DWORD, :DWORD, :HWND, :ptr RECT>, 28
if (WINVER ge 0400h)
MNC_IGNORE	EQU	0
MNC_CLOSE	EQU	1
MNC_EXECUTE	EQU	2
MNC_SELECT	EQU	3
TPMPARAMS	struct 
cbSize	DWORD	?
rcExclude	RECT	<>
TPMPARAMS	ends

LPTPMPARAMS typedef ptr TPMPARAMS
@DefProto WINUSERAPI, TrackPopupMenuEx, stdcall, , <:HMENU, :DWORD, :DWORD, :DWORD, :HWND, :LPTPMPARAMS>, 24
endif 
if (WINVER ge 0500h)
MNS_NOCHECK	EQU	80000000h
MNS_MODELESS	EQU	40000000h
MNS_DRAGDROP	EQU	20000000h
MNS_AUTODISMISS	EQU	10000000h
MNS_NOTIFYBYPOS	EQU	08000000h
MNS_CHECKORBMP	EQU	04000000h
MIM_MAXHEIGHT	EQU	00000001h
MIM_BACKGROUND	EQU	00000002h
MIM_HELPID	EQU	00000004h
MIM_MENUDATA	EQU	00000008h
MIM_STYLE	EQU	00000010h
MIM_APPLYTOSUBMENUS	EQU	80000000h
MENUINFO	struct 
cbSize	DWORD	?
fMask	DWORD	?
dwStyle	DWORD	?
cyMax	DWORD	?
hbrBack	HBRUSH	?
dwContextHelpID	DWORD	?
dwMenuData	DWORD	?
MENUINFO	ends

LPMENUINFO typedef ptr MENUINFO

LPCMENUINFO typedef ptr MENUINFO
@DefProto WINUSERAPI, GetMenuInfo, stdcall, , <:HMENU, :LPMENUINFO>, 8
@DefProto WINUSERAPI, SetMenuInfo, stdcall, , <:HMENU, :LPCMENUINFO>, 8
@DefProto WINUSERAPI, EndMenu, stdcall, , <>, 0
MND_CONTINUE	EQU	0
MND_ENDMENU	EQU	1
MENUGETOBJECTINFO	struct 
dwFlags	DWORD	?
uPos	DWORD	?
hmenu	HMENU	?
riid	PVOID	?
pvObj	PVOID	?
MENUGETOBJECTINFO	ends

PMENUGETOBJECTINFO typedef ptr MENUGETOBJECTINFO

MNGOF_TOPGAP	EQU	00000001h
MNGOF_BOTTOMGAP	EQU	00000002h
MNGO_NOINTERFACE	EQU	00000000h
MNGO_NOERROR	EQU	00000001h
endif 
if (WINVER ge 0400h)
MIIM_STATE	EQU	00000001h
MIIM_ID	EQU	00000002h
MIIM_SUBMENU	EQU	00000004h
MIIM_CHECKMARKS	EQU	00000008h
MIIM_TYPE	EQU	00000010h
MIIM_DATA	EQU	00000020h
endif 
if (WINVER ge 0500h)
MIIM_STRING	EQU	00000040h
MIIM_BITMAP	EQU	00000080h
MIIM_FTYPE	EQU	00000100h
HBMMENU_CALLBACK	EQU	- 1
HBMMENU_SYSTEM	EQU	1
HBMMENU_MBAR_RESTORE	EQU	2
HBMMENU_MBAR_MINIMIZE	EQU	3
HBMMENU_MBAR_CLOSE	EQU	5
HBMMENU_MBAR_CLOSE_D	EQU	6
HBMMENU_MBAR_MINIMIZE_D	EQU	7
HBMMENU_POPUP_CLOSE	EQU	8
HBMMENU_POPUP_RESTORE	EQU	9
HBMMENU_POPUP_MAXIMIZE	EQU	10
HBMMENU_POPUP_MINIMIZE	EQU	11
endif 
if (WINVER ge 0400h)
MENUITEMINFOA	struct 
cbSize	DWORD	?
fMask	DWORD	?
fType	DWORD	?
fState	DWORD	?
wID	DWORD	?
hSubMenu	HMENU	?
hbmpChecked	HBITMAP	?
hbmpUnchecked	HBITMAP	?
dwItemData	DWORD	?
dwTypeData	LPSTR	?
cch	DWORD	?
if (WINVER ge 0500h)
hbmpItem	HBITMAP	?
endif 
MENUITEMINFOA	ends

LPMENUITEMINFOA typedef ptr MENUITEMINFOA

MENUITEMINFOW	struct 
cbSize	DWORD	?
fMask	DWORD	?
fType	DWORD	?
fState	DWORD	?
wID	DWORD	?
hSubMenu	HMENU	?
hbmpChecked	HBITMAP	?
hbmpUnchecked	HBITMAP	?
dwItemData	DWORD	?
dwTypeData	LPWSTR	?
cch	DWORD	?
if (WINVER ge 0500h)
hbmpItem	HBITMAP	?
endif 
MENUITEMINFOW	ends

LPMENUITEMINFOW typedef ptr MENUITEMINFOW

ifdef UNICODE
MENUITEMINFO typedef MENUITEMINFOW
LPMENUITEMINFO typedef LPMENUITEMINFOW
else 
MENUITEMINFO typedef MENUITEMINFOA
LPMENUITEMINFO typedef LPMENUITEMINFOA
endif 
LPCMENUITEMINFOA typedef ptr MENUITEMINFOA
LPCMENUITEMINFOW typedef ptr MENUITEMINFOW
ifdef UNICODE
LPCMENUITEMINFO typedef LPCMENUITEMINFOW
else 
LPCMENUITEMINFO typedef LPCMENUITEMINFOA
endif 
@DefProto WINUSERAPI, InsertMenuItemA, stdcall, , <:HMENU, :DWORD, :BOOL, :LPCMENUITEMINFOA>, 16
@DefProto WINUSERAPI, InsertMenuItemW, stdcall, , <:HMENU, :DWORD, :BOOL, :LPCMENUITEMINFOW>, 16
ifdef UNICODE
InsertMenuItem	EQU	<InsertMenuItemW>
else 
InsertMenuItem	EQU	<InsertMenuItemA>
endif 
@DefProto WINUSERAPI, GetMenuItemInfoA, stdcall, , <:HMENU, :DWORD, :BOOL, :LPMENUITEMINFOA>, 16
@DefProto WINUSERAPI, GetMenuItemInfoW, stdcall, , <:HMENU, :DWORD, :BOOL, :LPMENUITEMINFOW>, 16
ifdef UNICODE
GetMenuItemInfo	EQU	<GetMenuItemInfoW>
else 
GetMenuItemInfo	EQU	<GetMenuItemInfoA>
endif 
@DefProto WINUSERAPI, SetMenuItemInfoA, stdcall, , <:HMENU, :DWORD, :BOOL, :LPCMENUITEMINFOA>, 16
@DefProto WINUSERAPI, SetMenuItemInfoW, stdcall, , <:HMENU, :DWORD, :BOOL, :LPCMENUITEMINFOW>, 16
ifdef UNICODE
SetMenuItemInfo	EQU	<SetMenuItemInfoW>
else 
SetMenuItemInfo	EQU	<SetMenuItemInfoA>
endif 
GMDI_USEDISABLED	EQU	0001h
GMDI_GOINTOPOPUPS	EQU	0002h
@DefProto WINUSERAPI, GetMenuDefaultItem, stdcall, , <:HMENU, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, SetMenuDefaultItem, stdcall, , <:HMENU, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, GetMenuItemRect, stdcall, , <:HWND, :HMENU, :DWORD, :LPRECT>, 16
@DefProto WINUSERAPI, MenuItemFromPoint, stdcall, , <:HWND, :HMENU, :POINT>, 16
endif 
TPM_LEFTBUTTON	EQU	0000h
TPM_RIGHTBUTTON	EQU	0002h
TPM_LEFTALIGN	EQU	0000h
TPM_CENTERALIGN	EQU	0004h
TPM_RIGHTALIGN	EQU	0008h
if (WINVER ge 0400h)
TPM_TOPALIGN	EQU	0000h
TPM_VCENTERALIGN	EQU	0010h
TPM_BOTTOMALIGN	EQU	0020h
TPM_HORIZONTAL	EQU	0000h
TPM_VERTICAL	EQU	0040h
TPM_NONOTIFY	EQU	0080h
TPM_RETURNCMD	EQU	0100h
endif 
if (WINVER ge 0500h)
TPM_RECURSE	EQU	0001h
TPM_HORPOSANIMATION	EQU	0400h
TPM_HORNEGANIMATION	EQU	0800h
TPM_VERPOSANIMATION	EQU	1000h
TPM_VERNEGANIMATION	EQU	2000h
if (_WIN32_WINNT ge 0500h)
TPM_NOANIMATION	EQU	4000h
endif 
if (_WIN32_WINNT ge 0501h)
TPM_LAYOUTRTL	EQU	8000h
endif 
endif 
endif 
if (WINVER ge 0400h)
DROPSTRUCT	struct 
hwndSource	HWND	?
hwndSink	HWND	?
wFmt	DWORD	?
dwData	DWORD	?
ptDrop	POINT	<>
dwControlData	DWORD	?
DROPSTRUCT	ends

PDROPSTRUCT typedef ptr DROPSTRUCT
LPDROPSTRUCT typedef ptr DROPSTRUCT

DOF_EXECUTABLE	EQU	8001h
DOF_DOCUMENT	EQU	8002h
DOF_DIRECTORY	EQU	8003h
DOF_MULTIPLE	EQU	8004h
DOF_PROGMAN	EQU	0001h
DOF_SHELLDATA	EQU	0002h
DO_DROPFILE	EQU	454C4946h
DO_PRINTFILE	EQU	544E5250h
@DefProto WINUSERAPI, DragObject, stdcall, , <:HWND, :HWND, :DWORD, :DWORD, :HCURSOR>, 20
@DefProto WINUSERAPI, DragDetect, stdcall, , <:HWND, :POINT>, 12
endif 
@DefProto WINUSERAPI, DrawIcon, stdcall, , <:HDC, :DWORD, :DWORD, :HICON>, 16
ifndef NODRAWTEXT
DT_TOP	EQU	00000000h
DT_LEFT	EQU	00000000h
DT_CENTER	EQU	00000001h
DT_RIGHT	EQU	00000002h
DT_VCENTER	EQU	00000004h
DT_BOTTOM	EQU	00000008h
DT_WORDBREAK	EQU	00000010h
DT_SINGLELINE	EQU	00000020h
DT_EXPANDTABS	EQU	00000040h
DT_TABSTOP	EQU	00000080h
DT_NOCLIP	EQU	00000100h
DT_EXTERNALLEADING	EQU	00000200h
DT_CALCRECT	EQU	00000400h
DT_NOPREFIX	EQU	00000800h
DT_INTERNAL	EQU	00001000h
if (WINVER ge 0400h)
DT_EDITCONTROL	EQU	00002000h
DT_PATH_ELLIPSIS	EQU	00004000h
DT_END_ELLIPSIS	EQU	00008000h
DT_MODIFYSTRING	EQU	00010000h
DT_RTLREADING	EQU	00020000h
DT_WORD_ELLIPSIS	EQU	00040000h
if (WINVER ge 0500h)
DT_NOFULLWIDTHCHARBREAK	EQU	00080000h
if (_WIN32_WINNT ge 0500h)
DT_HIDEPREFIX	EQU	00100000h
DT_PREFIXONLY	EQU	00200000h
endif 
endif 
DRAWTEXTPARAMS	struct 
cbSize	DWORD	?
iTabLength	DWORD	?
iLeftMargin	DWORD	?
iRightMargin	DWORD	?
uiLengthDrawn	DWORD	?
DRAWTEXTPARAMS	ends

LPDRAWTEXTPARAMS typedef ptr DRAWTEXTPARAMS

endif 
@DefProto WINUSERAPI, DrawTextA, stdcall, , <:HDC, :LPSTR, :DWORD, :LPRECT, :DWORD>, 20
@DefProto WINUSERAPI, DrawTextW, stdcall, , <:HDC, :LPWSTR, :DWORD, :LPRECT, :DWORD>, 20
ifdef UNICODE
DrawText	EQU	<DrawTextW>
else 
DrawText	EQU	<DrawTextA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, DrawTextExA, stdcall, , <:HDC, :LPSTR, :DWORD, :LPRECT, :DWORD, :LPDRAWTEXTPARAMS>, 24
@DefProto WINUSERAPI, DrawTextExW, stdcall, , <:HDC, :LPWSTR, :DWORD, :LPRECT, :DWORD, :LPDRAWTEXTPARAMS>, 24
ifdef UNICODE
DrawTextEx	EQU	<DrawTextExW>
else 
DrawTextEx	EQU	<DrawTextExA>
endif 
endif 
endif 
@DefProto WINUSERAPI, GrayStringA, stdcall, , <:HDC, :HBRUSH, :GRAYSTRINGPROC, :LPARAM, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 36
@DefProto WINUSERAPI, GrayStringW, stdcall, , <:HDC, :HBRUSH, :GRAYSTRINGPROC, :LPARAM, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 36
ifdef UNICODE
GrayString	EQU	<GrayStringW>
else 
GrayString	EQU	<GrayStringA>
endif 
if (WINVER ge 0400h)
DST_COMPLEX	EQU	0000h
DST_TEXT	EQU	0001h
DST_PREFIXTEXT	EQU	0002h
DST_ICON	EQU	0003h
DST_BITMAP	EQU	0004h
DSS_NORMAL	EQU	0000h
DSS_UNION	EQU	0010h
DSS_DISABLED	EQU	0020h
DSS_MONO	EQU	0080h
if (_WIN32_WINNT ge 0500h)
DSS_HIDEPREFIX	EQU	0200h
DSS_PREFIXONLY	EQU	0400h
endif 
DSS_RIGHT	EQU	8000h
@DefProto WINUSERAPI, DrawStateA, stdcall, , <:HDC, :HBRUSH, :DRAWSTATEPROC, :LPARAM, :WPARAM, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 40
@DefProto WINUSERAPI, DrawStateW, stdcall, , <:HDC, :HBRUSH, :DRAWSTATEPROC, :LPARAM, :WPARAM, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 40
ifdef UNICODE
DrawState	EQU	<DrawStateW>
else 
DrawState	EQU	<DrawStateA>
endif 
endif 
@DefProto WINUSERAPI, TabbedTextOutA, stdcall, , <:HDC, :DWORD, :DWORD, :LPSTR, :DWORD, :DWORD, :ptr DWORD, :DWORD>, 32
@DefProto WINUSERAPI, TabbedTextOutW, stdcall, , <:HDC, :DWORD, :DWORD, :LPWSTR, :DWORD, :DWORD, :ptr DWORD, :DWORD>, 32
ifdef UNICODE
TabbedTextOut	EQU	<TabbedTextOutW>
else 
TabbedTextOut	EQU	<TabbedTextOutA>
endif 
@DefProto WINUSERAPI, GetTabbedTextExtentA, stdcall, , <:HDC, :LPSTR, :DWORD, :DWORD, :ptr DWORD>, 20
@DefProto WINUSERAPI, GetTabbedTextExtentW, stdcall, , <:HDC, :LPWSTR, :DWORD, :DWORD, :ptr DWORD>, 20
ifdef UNICODE
GetTabbedTextExtent	EQU	<GetTabbedTextExtentW>
else 
GetTabbedTextExtent	EQU	<GetTabbedTextExtentA>
endif 
@DefProto WINUSERAPI, UpdateWindow, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, SetActiveWindow, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, GetForegroundWindow, stdcall, , <>, 0
if (WINVER ge 0400h)
@DefProto WINUSERAPI, PaintDesktop, stdcall, , <:HDC>, 4
endif 
@DefProto WINUSERAPI, SetForegroundWindow, stdcall, , <:HWND>, 4
if (_WIN32_WINNT ge 0500h)
@DefProto WINUSERAPI, AllowSetForegroundWindow, stdcall, , <:DWORD>, 4
ASFW_ANY	EQU	- 1
@DefProto WINUSERAPI, LockSetForegroundWindow, stdcall, , <:DWORD>, 4
LSFW_LOCK	EQU	1
LSFW_UNLOCK	EQU	2
endif 
@DefProto WINUSERAPI, WindowFromDC, stdcall, , <:HDC>, 4
@DefProto WINUSERAPI, GetDC, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, GetDCEx, stdcall, , <:HWND, :HRGN, :DWORD>, 12
DCX_WINDOW	EQU	00000001h
DCX_CACHE	EQU	00000002h
DCX_NORESETATTRS	EQU	00000004h
DCX_CLIPCHILDREN	EQU	00000008h
DCX_CLIPSIBLINGS	EQU	00000010h
DCX_PARENTCLIP	EQU	00000020h
DCX_EXCLUDERGN	EQU	00000040h
DCX_INTERSECTRGN	EQU	00000080h
DCX_EXCLUDEUPDATE	EQU	00000100h
DCX_INTERSECTUPDATE	EQU	00000200h
DCX_LOCKWINDOWUPDATE	EQU	00000400h
DCX_VALIDATE	EQU	00200000h
@DefProto WINUSERAPI, GetWindowDC, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, ReleaseDC, stdcall, , <:HWND, :HDC>, 8
@DefProto WINUSERAPI, BeginPaint, stdcall, , <:HWND, :LPPAINTSTRUCT>, 8
@DefProto WINUSERAPI, EndPaint, stdcall, , <:HWND, :ptr PAINTSTRUCT>, 8
@DefProto WINUSERAPI, GetUpdateRect, stdcall, , <:HWND, :LPRECT, :BOOL>, 12
@DefProto WINUSERAPI, GetUpdateRgn, stdcall, , <:HWND, :HRGN, :BOOL>, 12
@DefProto WINUSERAPI, SetWindowRgn, stdcall, , <:HWND, :HRGN, :BOOL>, 12
@DefProto WINUSERAPI, GetWindowRgn, stdcall, , <:HWND, :HRGN>, 8
if (_WIN32_WINNT ge 0501h)
@DefProto WINUSERAPI, GetWindowRgnBox, stdcall, , <:HWND, :LPRECT>, 8
endif 
@DefProto WINUSERAPI, ExcludeUpdateRgn, stdcall, , <:HDC, :HWND>, 8
@DefProto WINUSERAPI, InvalidateRect, stdcall, , <:HWND, :ptr RECT, :BOOL>, 12
@DefProto WINUSERAPI, ValidateRect, stdcall, , <:HWND, :ptr RECT>, 8
@DefProto WINUSERAPI, InvalidateRgn, stdcall, , <:HWND, :HRGN, :BOOL>, 12
@DefProto WINUSERAPI, ValidateRgn, stdcall, , <:HWND, :HRGN>, 8
@DefProto WINUSERAPI, RedrawWindow, stdcall, , <:HWND, :ptr RECT, :HRGN, :DWORD>, 16
RDW_INVALIDATE	EQU	0001h
RDW_INTERNALPAINT	EQU	0002h
RDW_ERASE	EQU	0004h
RDW_VALIDATE	EQU	0008h
RDW_NOINTERNALPAINT	EQU	0010h
RDW_NOERASE	EQU	0020h
RDW_NOCHILDREN	EQU	0040h
RDW_ALLCHILDREN	EQU	0080h
RDW_UPDATENOW	EQU	0100h
RDW_ERASENOW	EQU	0200h
RDW_FRAME	EQU	0400h
RDW_NOFRAME	EQU	0800h
@DefProto WINUSERAPI, LockWindowUpdate, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, ScrollWindow, stdcall, , <:HWND, :DWORD, :DWORD, :ptr RECT, :ptr RECT>, 20
@DefProto WINUSERAPI, ScrollDC, stdcall, , <:HDC, :DWORD, :DWORD, :ptr RECT, :ptr RECT, :HRGN, :LPRECT>, 28
@DefProto WINUSERAPI, ScrollWindowEx, stdcall, , <:HWND, :DWORD, :DWORD, :ptr RECT, :ptr RECT, :HRGN, :LPRECT, :DWORD>, 32
SW_SCROLLCHILDREN	EQU	0001h
SW_INVALIDATE	EQU	0002h
SW_ERASE	EQU	0004h
if (WINVER ge 0500h)
SW_SMOOTHSCROLL	EQU	0010h
endif 
ifndef NOSCROLL
@DefProto WINUSERAPI, SetScrollPos, stdcall, , <:HWND, :DWORD, :DWORD, :BOOL>, 16
@DefProto WINUSERAPI, GetScrollPos, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, SetScrollRange, stdcall, , <:HWND, :DWORD, :DWORD, :DWORD, :BOOL>, 20
@DefProto WINUSERAPI, GetScrollRange, stdcall, , <:HWND, :DWORD, :LPINT, :LPINT>, 16
@DefProto WINUSERAPI, ShowScrollBar, stdcall, , <:HWND, :DWORD, :BOOL>, 12
@DefProto WINUSERAPI, EnableScrollBar, stdcall, , <:HWND, :DWORD, :DWORD>, 12
ESB_ENABLE_BOTH	EQU	0000h
ESB_DISABLE_BOTH	EQU	0003h
ESB_DISABLE_LEFT	EQU	0001h
ESB_DISABLE_RIGHT	EQU	0002h
ESB_DISABLE_UP	EQU	0001h
ESB_DISABLE_DOWN	EQU	0002h
ESB_DISABLE_LTUP	EQU	<ESB_DISABLE_LEFT>
ESB_DISABLE_RTDN	EQU	<ESB_DISABLE_RIGHT>
endif 
@DefProto WINUSERAPI, SetPropA, stdcall, , <:HWND, :LPSTR, :HANDLE>, 12
@DefProto WINUSERAPI, SetPropW, stdcall, , <:HWND, :LPWSTR, :HANDLE>, 12
ifdef UNICODE
SetProp	EQU	<SetPropW>
else 
SetProp	EQU	<SetPropA>
endif 
@DefProto WINUSERAPI, GetPropA, stdcall, , <:HWND, :LPSTR>, 8
@DefProto WINUSERAPI, GetPropW, stdcall, , <:HWND, :LPWSTR>, 8
ifdef UNICODE
GetProp	EQU	<GetPropW>
else 
GetProp	EQU	<GetPropA>
endif 
@DefProto WINUSERAPI, RemovePropA, stdcall, , <:HWND, :LPSTR>, 8
@DefProto WINUSERAPI, RemovePropW, stdcall, , <:HWND, :LPWSTR>, 8
ifdef UNICODE
RemoveProp	EQU	<RemovePropW>
else 
RemoveProp	EQU	<RemovePropA>
endif 
@DefProto WINUSERAPI, EnumPropsExA, stdcall, , <:HWND, :PROPENUMPROCEXA, :LPARAM>, 12
@DefProto WINUSERAPI, EnumPropsExW, stdcall, , <:HWND, :PROPENUMPROCEXW, :LPARAM>, 12
ifdef UNICODE
EnumPropsEx	EQU	<EnumPropsExW>
else 
EnumPropsEx	EQU	<EnumPropsExA>
endif 
@DefProto WINUSERAPI, EnumPropsA, stdcall, , <:HWND, :PROPENUMPROCA>, 8
@DefProto WINUSERAPI, EnumPropsW, stdcall, , <:HWND, :PROPENUMPROCW>, 8
ifdef UNICODE
EnumProps	EQU	<EnumPropsW>
else 
EnumProps	EQU	<EnumPropsA>
endif 
@DefProto WINUSERAPI, SetWindowTextA, stdcall, , <:HWND, :LPSTR>, 8
@DefProto WINUSERAPI, SetWindowTextW, stdcall, , <:HWND, :LPWSTR>, 8
ifdef UNICODE
SetWindowText	EQU	<SetWindowTextW>
else 
SetWindowText	EQU	<SetWindowTextA>
endif 
@DefProto WINUSERAPI, GetWindowTextA, stdcall, , <:HWND, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, GetWindowTextW, stdcall, , <:HWND, :LPWSTR, :DWORD>, 12
ifdef UNICODE
GetWindowText	EQU	<GetWindowTextW>
else 
GetWindowText	EQU	<GetWindowTextA>
endif 
@DefProto WINUSERAPI, GetWindowTextLengthA, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, GetWindowTextLengthW, stdcall, , <:HWND>, 4
ifdef UNICODE
GetWindowTextLength	EQU	<GetWindowTextLengthW>
else 
GetWindowTextLength	EQU	<GetWindowTextLengthA>
endif 
@DefProto WINUSERAPI, GetClientRect, stdcall, , <:HWND, :LPRECT>, 8
@DefProto WINUSERAPI, GetWindowRect, stdcall, , <:HWND, :LPRECT>, 8
@DefProto WINUSERAPI, AdjustWindowRect, stdcall, , <:LPRECT, :DWORD, :BOOL>, 12
@DefProto WINUSERAPI, AdjustWindowRectEx, stdcall, , <:LPRECT, :DWORD, :BOOL, :DWORD>, 16
if (WINVER ge 0400h)
HELPINFO_WINDOW	EQU	0001h
HELPINFO_MENUITEM	EQU	0002h
HELPINFO	struct 
cbSize	DWORD	?
iContextType	DWORD	?
iCtrlId	DWORD	?
hItemHandle	HANDLE	?
dwContextId	DWORD	?
MousePos	POINT	<>
HELPINFO	ends

LPHELPINFO typedef ptr HELPINFO

@DefProto WINUSERAPI, SetWindowContextHelpId, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, GetWindowContextHelpId, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, SetMenuContextHelpId, stdcall, , <:HMENU, :DWORD>, 8
@DefProto WINUSERAPI, GetMenuContextHelpId, stdcall, , <:HMENU>, 4
endif 
ifndef NOMB
MB_OK	EQU	00000000h
MB_OKCANCEL	EQU	00000001h
MB_ABORTRETRYIGNORE	EQU	00000002h
MB_YESNOCANCEL	EQU	00000003h
MB_YESNO	EQU	00000004h
MB_RETRYCANCEL	EQU	00000005h
if (WINVER ge 0500h)
MB_CANCELTRYCONTINUE	EQU	00000006h
endif 
MB_ICONHAND	EQU	00000010h
MB_ICONQUESTION	EQU	00000020h
MB_ICONEXCLAMATION	EQU	00000030h
MB_ICONASTERISK	EQU	00000040h
if (WINVER ge 0400h)
MB_USERICON	EQU	00000080h
MB_ICONWARNING	EQU	<MB_ICONEXCLAMATION>
MB_ICONERROR	EQU	<MB_ICONHAND>
endif 
MB_ICONINFORMATION	EQU	<MB_ICONASTERISK>
MB_ICONSTOP	EQU	<MB_ICONHAND>
MB_DEFBUTTON1	EQU	00000000h
MB_DEFBUTTON2	EQU	00000100h
MB_DEFBUTTON3	EQU	00000200h
if (WINVER ge 0400h)
MB_DEFBUTTON4	EQU	00000300h
endif 
MB_APPLMODAL	EQU	00000000h
MB_SYSTEMMODAL	EQU	00001000h
MB_TASKMODAL	EQU	00002000h
if (WINVER ge 0400h)
MB_HELP	EQU	00004000h
endif 
MB_NOFOCUS	EQU	00008000h
MB_SETFOREGROUND	EQU	00010000h
MB_DEFAULT_DESKTOP_ONLY	EQU	00020000h
if (WINVER ge 0400h)
MB_TOPMOST	EQU	00040000h
MB_RIGHT	EQU	00080000h
MB_RTLREADING	EQU	00100000h
endif 
ifdef _WIN32_WINNT
if (_WIN32_WINNT ge 0400h)
MB_SERVICE_NOTIFICATION	EQU	00200000h
else 
MB_SERVICE_NOTIFICATION	EQU	00040000h
endif 
MB_SERVICE_NOTIFICATION_NT3X	EQU	00040000h
endif 
MB_TYPEMASK	EQU	0000000Fh
MB_ICONMASK	EQU	000000F0h
MB_DEFMASK	EQU	00000F00h
MB_MODEMASK	EQU	00003000h
MB_MISCMASK	EQU	0000C000h
@DefProto WINUSERAPI, MessageBoxA, stdcall, , <:HWND, :LPSTR, :LPSTR, :DWORD>, 16
@DefProto WINUSERAPI, MessageBoxW, stdcall, , <:HWND, :LPWSTR, :LPWSTR, :DWORD>, 16
ifdef UNICODE
MessageBox	EQU	<MessageBoxW>
else 
MessageBox	EQU	<MessageBoxA>
endif 
@DefProto WINUSERAPI, MessageBoxExA, stdcall, , <:HWND, :LPSTR, :LPSTR, :DWORD, :WORD>, 20
@DefProto WINUSERAPI, MessageBoxExW, stdcall, , <:HWND, :LPWSTR, :LPWSTR, :DWORD, :WORD>, 20
ifdef UNICODE
MessageBoxEx	EQU	<MessageBoxExW>
else 
MessageBoxEx	EQU	<MessageBoxExA>
endif 
if (WINVER ge 0400h)
proto_MSGBOXCALLBACK typedef proto stdcall :LPHELPINFO
MSGBOXCALLBACK typedef ptr proto_MSGBOXCALLBACK
MSGBOXPARAMSA	struct 
cbSize	DWORD	?
hwndOwner	HWND	?
hInstance	HINSTANCE	?
lpszText	LPSTR	?
lpszCaption	LPSTR	?
dwStyle	DWORD	?
lpszIcon	LPSTR	?
dwContextHelpId	DWORD	?
lpfnMsgBoxCallback	MSGBOXCALLBACK	?
dwLanguageId	DWORD	?
MSGBOXPARAMSA	ends

PMSGBOXPARAMSA typedef ptr MSGBOXPARAMSA
LPMSGBOXPARAMSA typedef ptr MSGBOXPARAMSA

MSGBOXPARAMSW	struct 
cbSize	DWORD	?
hwndOwner	HWND	?
hInstance	HINSTANCE	?
lpszText	LPWSTR	?
lpszCaption	LPWSTR	?
dwStyle	DWORD	?
lpszIcon	LPWSTR	?
dwContextHelpId	DWORD	?
lpfnMsgBoxCallback	MSGBOXCALLBACK	?
dwLanguageId	DWORD	?
MSGBOXPARAMSW	ends

PMSGBOXPARAMSW typedef ptr MSGBOXPARAMSW
LPMSGBOXPARAMSW typedef ptr MSGBOXPARAMSW

ifdef UNICODE
MSGBOXPARAMS typedef MSGBOXPARAMSW
PMSGBOXPARAMS typedef PMSGBOXPARAMSW
LPMSGBOXPARAMS typedef LPMSGBOXPARAMSW
else 
MSGBOXPARAMS typedef MSGBOXPARAMSA
PMSGBOXPARAMS typedef PMSGBOXPARAMSA
LPMSGBOXPARAMS typedef LPMSGBOXPARAMSA
endif 
@DefProto WINUSERAPI, MessageBoxIndirectA, stdcall, , <:ptr MSGBOXPARAMSA>, 4
@DefProto WINUSERAPI, MessageBoxIndirectW, stdcall, , <:ptr MSGBOXPARAMSW>, 4
ifdef UNICODE
MessageBoxIndirect	EQU	<MessageBoxIndirectW>
else 
MessageBoxIndirect	EQU	<MessageBoxIndirectA>
endif 
endif 
@DefProto WINUSERAPI, MessageBeep, stdcall, , <:DWORD>, 4
endif 
@DefProto WINUSERAPI, ShowCursor, stdcall, , <:BOOL>, 4
@DefProto WINUSERAPI, SetCursorPos, stdcall, , <:DWORD, :DWORD>, 8
@DefProto WINUSERAPI, SetCursor, stdcall, , <:HCURSOR>, 4
@DefProto WINUSERAPI, GetCursorPos, stdcall, , <:LPPOINT>, 4
@DefProto WINUSERAPI, ClipCursor, stdcall, , <:ptr RECT>, 4
@DefProto WINUSERAPI, GetClipCursor, stdcall, , <:LPRECT>, 4
@DefProto WINUSERAPI, GetCursor, stdcall, , <>, 0
@DefProto WINUSERAPI, CreateCaret, stdcall, , <:HWND, :HBITMAP, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, GetCaretBlinkTime, stdcall, , <>, 0
@DefProto WINUSERAPI, SetCaretBlinkTime, stdcall, , <:DWORD>, 4
@DefProto WINUSERAPI, DestroyCaret, stdcall, , <>, 0
@DefProto WINUSERAPI, HideCaret, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, ShowCaret, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, SetCaretPos, stdcall, , <:DWORD, :DWORD>, 8
@DefProto WINUSERAPI, GetCaretPos, stdcall, , <:LPPOINT>, 4
@DefProto WINUSERAPI, ClientToScreen, stdcall, , <:HWND, :LPPOINT>, 8
@DefProto WINUSERAPI, ScreenToClient, stdcall, , <:HWND, :LPPOINT>, 8
@DefProto WINUSERAPI, MapWindowPoints, stdcall, , <:HWND, :HWND, :LPPOINT, :DWORD>, 16
@DefProto WINUSERAPI, WindowFromPoint, stdcall, , <:POINT>, 8
@DefProto WINUSERAPI, ChildWindowFromPoint, stdcall, , <:HWND, :POINT>, 12
if (WINVER ge 0400h)
CWP_ALL	EQU	0000h
CWP_SKIPINVISIBLE	EQU	0001h
CWP_SKIPDISABLED	EQU	0002h
CWP_SKIPTRANSPARENT	EQU	0004h
@DefProto WINUSERAPI, ChildWindowFromPointEx, stdcall, , <:HWND, :POINT, :DWORD>, 16
endif 
ifndef NOCOLOR
CTLCOLOR_MSGBOX	EQU	0
CTLCOLOR_EDIT	EQU	1
CTLCOLOR_LISTBOX	EQU	2
CTLCOLOR_BTN	EQU	3
CTLCOLOR_DLG	EQU	4
CTLCOLOR_SCROLLBAR	EQU	5
CTLCOLOR_STATIC	EQU	6
CTLCOLOR_MAX	EQU	7
COLOR_SCROLLBAR	EQU	0
COLOR_BACKGROUND	EQU	1
COLOR_ACTIVECAPTION	EQU	2
COLOR_INACTIVECAPTION	EQU	3
COLOR_MENU	EQU	4
COLOR_WINDOW	EQU	5
COLOR_WINDOWFRAME	EQU	6
COLOR_MENUTEXT	EQU	7
COLOR_WINDOWTEXT	EQU	8
COLOR_CAPTIONTEXT	EQU	9
COLOR_ACTIVEBORDER	EQU	10
COLOR_INACTIVEBORDER	EQU	11
COLOR_APPWORKSPACE	EQU	12
COLOR_HIGHLIGHT	EQU	13
COLOR_HIGHLIGHTTEXT	EQU	14
COLOR_BTNFACE	EQU	15
COLOR_BTNSHADOW	EQU	16
COLOR_GRAYTEXT	EQU	17
COLOR_BTNTEXT	EQU	18
COLOR_INACTIVECAPTIONTEXT	EQU	19
COLOR_BTNHIGHLIGHT	EQU	20
if (WINVER ge 0400h)
COLOR_3DDKSHADOW	EQU	21
COLOR_3DLIGHT	EQU	22
COLOR_INFOTEXT	EQU	23
COLOR_INFOBK	EQU	24
endif 
if (WINVER ge 0500h)
COLOR_HOTLIGHT	EQU	26
COLOR_GRADIENTACTIVECAPTION	EQU	27
COLOR_GRADIENTINACTIVECAPTION	EQU	28
if (WINVER ge 0501h)
COLOR_MENUHILIGHT	EQU	29
COLOR_MENUBAR	EQU	30
endif 
endif 
if (WINVER ge 0400h)
COLOR_DESKTOP	EQU	<COLOR_BACKGROUND>
COLOR_3DFACE	EQU	<COLOR_BTNFACE>
COLOR_3DSHADOW	EQU	<COLOR_BTNSHADOW>
COLOR_3DHIGHLIGHT	EQU	<COLOR_BTNHIGHLIGHT>
COLOR_3DHILIGHT	EQU	<COLOR_BTNHIGHLIGHT>
COLOR_BTNHILIGHT	EQU	<COLOR_BTNHIGHLIGHT>
endif 
@DefProto WINUSERAPI, GetSysColor, stdcall, , <:DWORD>, 4
if (WINVER ge 0400h)
@DefProto WINUSERAPI, GetSysColorBrush, stdcall, , <:DWORD>, 4
endif 
@DefProto WINUSERAPI, SetSysColors, stdcall, , <:DWORD, :ptr DWORD, :ptr COLORREF>, 12
endif 
@DefProto WINUSERAPI, DrawFocusRect, stdcall, , <:HDC, :ptr RECT>, 8
@DefProto WINUSERAPI, FillRect, stdcall, , <:HDC, :ptr RECT, :HBRUSH>, 12
@DefProto WINUSERAPI, FrameRect, stdcall, , <:HDC, :ptr RECT, :HBRUSH>, 12
@DefProto WINUSERAPI, InvertRect, stdcall, , <:HDC, :ptr RECT>, 8
@DefProto WINUSERAPI, SetRect, stdcall, , <:LPRECT, :DWORD, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINUSERAPI, SetRectEmpty, stdcall, , <:LPRECT>, 4
@DefProto WINUSERAPI, CopyRect, stdcall, , <:LPRECT, :ptr RECT>, 8
@DefProto WINUSERAPI, InflateRect, stdcall, , <:LPRECT, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, IntersectRect, stdcall, , <:LPRECT, :ptr RECT, :ptr RECT>, 12
@DefProto WINUSERAPI, UnionRect, stdcall, , <:LPRECT, :ptr RECT, :ptr RECT>, 12
@DefProto WINUSERAPI, SubtractRect, stdcall, , <:LPRECT, :ptr RECT, :ptr RECT>, 12
@DefProto WINUSERAPI, OffsetRect, stdcall, , <:LPRECT, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, IsRectEmpty, stdcall, , <:ptr RECT>, 4
@DefProto WINUSERAPI, EqualRect, stdcall, , <:ptr RECT, :ptr RECT>, 8
@DefProto WINUSERAPI, PtInRect, stdcall, , <:ptr RECT, :POINT>, 12
ifndef NOWINOFFSETS
@DefProto WINUSERAPI, GetWindowWord, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, SetWindowWord, stdcall, , <:HWND, :DWORD, :WORD>, 12
@DefProto WINUSERAPI, GetWindowLongA, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, GetWindowLongW, stdcall, , <:HWND, :DWORD>, 8
ifdef UNICODE
GetWindowLong	EQU	<GetWindowLongW>
else 
GetWindowLong	EQU	<GetWindowLongA>
endif 
@DefProto WINUSERAPI, SetWindowLongA, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
@DefProto WINUSERAPI, SetWindowLongW, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
ifdef UNICODE
SetWindowLong	EQU	<SetWindowLongW>
else 
SetWindowLong	EQU	<SetWindowLongA>
endif 
ifdef _WIN64
@DefProto WINUSERAPI, GetWindowLongPtrA, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, GetWindowLongPtrW, stdcall, , <:HWND, :DWORD>, 8
ifdef UNICODE
GetWindowLongPtr	EQU	<GetWindowLongPtrW>
else 
GetWindowLongPtr	EQU	<GetWindowLongPtrA>
endif 
@DefProto WINUSERAPI, SetWindowLongPtrA, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
@DefProto WINUSERAPI, SetWindowLongPtrW, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
ifdef UNICODE
SetWindowLongPtr	EQU	<SetWindowLongPtrW>
else 
SetWindowLongPtr	EQU	<SetWindowLongPtrA>
endif 
else 
GetWindowLongPtrA	EQU	<GetWindowLongA>
GetWindowLongPtrW	EQU	<GetWindowLongW>
ifdef UNICODE
GetWindowLongPtr	EQU	<GetWindowLongPtrW>
else 
GetWindowLongPtr	EQU	<GetWindowLongPtrA>
endif 
SetWindowLongPtrA	EQU	<SetWindowLongA>
SetWindowLongPtrW	EQU	<SetWindowLongW>
ifdef UNICODE
SetWindowLongPtr	EQU	<SetWindowLongPtrW>
else 
SetWindowLongPtr	EQU	<SetWindowLongPtrA>
endif 
endif 
@DefProto WINUSERAPI, GetClassWord, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, SetClassWord, stdcall, , <:HWND, :DWORD, :WORD>, 12
@DefProto WINUSERAPI, GetClassLongA, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, GetClassLongW, stdcall, , <:HWND, :DWORD>, 8
ifdef UNICODE
GetClassLong	EQU	<GetClassLongW>
else 
GetClassLong	EQU	<GetClassLongA>
endif 
@DefProto WINUSERAPI, SetClassLongA, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
@DefProto WINUSERAPI, SetClassLongW, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
ifdef UNICODE
SetClassLong	EQU	<SetClassLongW>
else 
SetClassLong	EQU	<SetClassLongA>
endif 
ifdef _WIN64
@DefProto WINUSERAPI, GetClassLongPtrA, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, GetClassLongPtrW, stdcall, , <:HWND, :DWORD>, 8
ifdef UNICODE
GetClassLongPtr	EQU	<GetClassLongPtrW>
else 
GetClassLongPtr	EQU	<GetClassLongPtrA>
endif 
@DefProto WINUSERAPI, SetClassLongPtrA, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
@DefProto WINUSERAPI, SetClassLongPtrW, stdcall, , <:HWND, :DWORD, :SDWORD>, 12
ifdef UNICODE
SetClassLongPtr	EQU	<SetClassLongPtrW>
else 
SetClassLongPtr	EQU	<SetClassLongPtrA>
endif 
else 
GetClassLongPtrA	EQU	<GetClassLongA>
GetClassLongPtrW	EQU	<GetClassLongW>
ifdef UNICODE
GetClassLongPtr	EQU	<GetClassLongPtrW>
else 
GetClassLongPtr	EQU	<GetClassLongPtrA>
endif 
SetClassLongPtrA	EQU	<SetClassLongA>
SetClassLongPtrW	EQU	<SetClassLongW>
ifdef UNICODE
SetClassLongPtr	EQU	<SetClassLongPtrW>
else 
SetClassLongPtr	EQU	<SetClassLongPtrA>
endif 
endif 
endif 
if (WINVER ge 0500h)
@DefProto WINUSERAPI, GetProcessDefaultLayout, stdcall, , <:ptr DWORD>, 4
@DefProto WINUSERAPI, SetProcessDefaultLayout, stdcall, , <:DWORD>, 4
endif 
@DefProto WINUSERAPI, GetDesktopWindow, stdcall, , <>, 0
@DefProto WINUSERAPI, GetParent, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, SetParent, stdcall, , <:HWND, :HWND>, 8
@DefProto WINUSERAPI, EnumChildWindows, stdcall, , <:HWND, :WNDENUMPROC, :LPARAM>, 12
@DefProto WINUSERAPI, FindWindowA, stdcall, , <:LPSTR, :LPSTR>, 8
@DefProto WINUSERAPI, FindWindowW, stdcall, , <:LPWSTR, :LPWSTR>, 8
ifdef UNICODE
FindWindow	EQU	<FindWindowW>
else 
FindWindow	EQU	<FindWindowA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, FindWindowExA, stdcall, , <:HWND, :HWND, :LPSTR, :LPSTR>, 16
@DefProto WINUSERAPI, FindWindowExW, stdcall, , <:HWND, :HWND, :LPWSTR, :LPWSTR>, 16
ifdef UNICODE
FindWindowEx	EQU	<FindWindowExW>
else 
FindWindowEx	EQU	<FindWindowExA>
endif 
endif 
@DefProto WINUSERAPI, EnumWindows, stdcall, , <:WNDENUMPROC, :LPARAM>, 8
@DefProto WINUSERAPI, EnumThreadWindows, stdcall, , <:DWORD, :WNDENUMPROC, :LPARAM>, 12
EnumTaskWindows macro hTask,lpfn,lParam
	exitm <EnumThreadWindows ( HandleToUlong ( hTask ) , lpfn , lParam ) >
	endm
@DefProto WINUSERAPI, GetClassNameA, stdcall, , <:HWND, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, GetClassNameW, stdcall, , <:HWND, :LPWSTR, :DWORD>, 12
ifdef UNICODE
GetClassName	EQU	<GetClassNameW>
else 
GetClassName	EQU	<GetClassNameA>
endif 
@DefProto WINUSERAPI, GetTopWindow, stdcall, , <:HWND>, 4
GetNextWindow macro hWnd,wCmd
	exitm <GetWindow ( hWnd , wCmd ) >
	endm
GetSysModalWindow macro 
	exitm <( NULL ) >
	endm
SetSysModalWindow macro hWnd
	exitm <( NULL ) >
	endm
@DefProto WINUSERAPI, GetWindowThreadProcessId, stdcall, , <:HWND, :LPDWORD>, 8
if (_WIN32_WINNT ge 0501h)
@DefProto WINUSERAPI, IsGUIThread, stdcall, , <:BOOL>, 4
endif 
GetWindowTask macro hWnd
	exitm <( GetWindowThreadProcessId ( hWnd , NULL ) ) >
	endm
@DefProto WINUSERAPI, GetLastActivePopup, stdcall, , <:HWND>, 4
GW_HWNDFIRST	EQU	0
GW_HWNDLAST	EQU	1
GW_HWNDNEXT	EQU	2
GW_HWNDPREV	EQU	3
GW_OWNER	EQU	4
GW_CHILD	EQU	5
if (WINVER le 0400h)
GW_MAX	EQU	5
else 
GW_ENABLEDPOPUP	EQU	6
GW_MAX	EQU	6
endif 
@DefProto WINUSERAPI, GetWindow, stdcall, , <:HWND, :DWORD>, 8
ifndef NOWH
ifdef STRICT
@DefProto WINUSERAPI, SetWindowsHookA, stdcall, , <:DWORD, :HOOKPROC>, 8
@DefProto WINUSERAPI, SetWindowsHookW, stdcall, , <:DWORD, :HOOKPROC>, 8
ifdef UNICODE
SetWindowsHook	EQU	<SetWindowsHookW>
else 
SetWindowsHook	EQU	<SetWindowsHookA>
endif 
else 
@DefProto WINUSERAPI, SetWindowsHookA, stdcall, , <:DWORD, :HOOKPROC>, 8
@DefProto WINUSERAPI, SetWindowsHookW, stdcall, , <:DWORD, :HOOKPROC>, 8
ifdef UNICODE
SetWindowsHook	EQU	<SetWindowsHookW>
else 
SetWindowsHook	EQU	<SetWindowsHookA>
endif 
endif 
@DefProto WINUSERAPI, UnhookWindowsHook, stdcall, , <:DWORD, :HOOKPROC>, 8
@DefProto WINUSERAPI, SetWindowsHookExA, stdcall, , <:DWORD, :HOOKPROC, :HINSTANCE, :DWORD>, 16
@DefProto WINUSERAPI, SetWindowsHookExW, stdcall, , <:DWORD, :HOOKPROC, :HINSTANCE, :DWORD>, 16
ifdef UNICODE
SetWindowsHookEx	EQU	<SetWindowsHookExW>
else 
SetWindowsHookEx	EQU	<SetWindowsHookExA>
endif 
@DefProto WINUSERAPI, UnhookWindowsHookEx, stdcall, , <:HHOOK>, 4
@DefProto WINUSERAPI, CallNextHookEx, stdcall, , <:HHOOK, :DWORD, :WPARAM, :LPARAM>, 16
ifdef STRICT
DefHookProc macro nCode,wParam,lParam,phhk
	exitm <CallNextHookEx ( * phhk , nCode , wParam , lParam ) >
	endm
else 
DefHookProc macro nCode,wParam,lParam,phhk
	exitm <CallNextHookEx ( ( HHOOK ) * phhk , nCode , wParam , lParam ) >
	endm
endif 
endif 
ifndef NOMENUS
MF_INSERT	EQU	00000000h
MF_CHANGE	EQU	00000080h
MF_APPEND	EQU	00000100h
MF_DELETE	EQU	00000200h
MF_REMOVE	EQU	00001000h
MF_BYCOMMAND	EQU	00000000h
MF_BYPOSITION	EQU	00000400h
MF_SEPARATOR	EQU	00000800h
MF_ENABLED	EQU	00000000h
MF_GRAYED	EQU	00000001h
MF_DISABLED	EQU	00000002h
MF_UNCHECKED	EQU	00000000h
MF_CHECKED	EQU	00000008h
MF_USECHECKBITMAPS	EQU	00000200h
MF_STRING	EQU	00000000h
MF_BITMAP	EQU	00000004h
MF_OWNERDRAW	EQU	00000100h
MF_POPUP	EQU	00000010h
MF_MENUBARBREAK	EQU	00000020h
MF_MENUBREAK	EQU	00000040h
MF_UNHILITE	EQU	00000000h
MF_HILITE	EQU	00000080h
if (WINVER ge 0400h)
MF_DEFAULT	EQU	00001000h
endif 
MF_SYSMENU	EQU	00002000h
MF_HELP	EQU	00004000h
if (WINVER ge 0400h)
MF_RIGHTJUSTIFY	EQU	00004000h
endif 
MF_MOUSESELECT	EQU	00008000h
if (WINVER ge 0400h)
MF_END	EQU	00000080h
endif 
if (WINVER ge 0400h)
MFT_STRING	EQU	<MF_STRING>
MFT_BITMAP	EQU	<MF_BITMAP>
MFT_MENUBARBREAK	EQU	<MF_MENUBARBREAK>
MFT_MENUBREAK	EQU	<MF_MENUBREAK>
MFT_OWNERDRAW	EQU	<MF_OWNERDRAW>
MFT_RADIOCHECK	EQU	00000200h
MFT_SEPARATOR	EQU	<MF_SEPARATOR>
MFT_RIGHTORDER	EQU	00002000h
MFT_RIGHTJUSTIFY	EQU	<MF_RIGHTJUSTIFY>
MFS_GRAYED	EQU	00000003h
MFS_DISABLED	EQU	<MFS_GRAYED>
MFS_CHECKED	EQU	<MF_CHECKED>
MFS_HILITE	EQU	<MF_HILITE>
MFS_ENABLED	EQU	<MF_ENABLED>
MFS_UNCHECKED	EQU	<MF_UNCHECKED>
MFS_UNHILITE	EQU	<MF_UNHILITE>
MFS_DEFAULT	EQU	<MF_DEFAULT>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, CheckMenuRadioItem, stdcall, , <:HMENU, :DWORD, :DWORD, :DWORD, :DWORD>, 20
endif 
MENUITEMTEMPLATEHEADER	struct 
versionNumber	WORD	?
offset_	WORD	?
MENUITEMTEMPLATEHEADER	ends

PMENUITEMTEMPLATEHEADER typedef ptr MENUITEMTEMPLATEHEADER

MENUITEMTEMPLATE	struct 
mtOption	WORD	?
mtID	WORD	?
mtString	WCHAR 1 dup (?)
MENUITEMTEMPLATE	ends

PMENUITEMTEMPLATE typedef ptr MENUITEMTEMPLATE

MF_END	EQU	00000080h
endif 
ifndef NOSYSCOMMANDS
SC_SIZE	EQU	0F000h
SC_MOVE	EQU	0F010h
SC_MINIMIZE	EQU	0F020h
SC_MAXIMIZE	EQU	0F030h
SC_NEXTWINDOW	EQU	0F040h
SC_PREVWINDOW	EQU	0F050h
SC_CLOSE	EQU	0F060h
SC_VSCROLL	EQU	0F070h
SC_HSCROLL	EQU	0F080h
SC_MOUSEMENU	EQU	0F090h
SC_KEYMENU	EQU	0F100h
SC_ARRANGE	EQU	0F110h
SC_RESTORE	EQU	0F120h
SC_TASKLIST	EQU	0F130h
SC_SCREENSAVE	EQU	0F140h
SC_HOTKEY	EQU	0F150h
if (WINVER ge 0400h)
SC_DEFAULT	EQU	0F160h
SC_MONITORPOWER	EQU	0F170h
SC_CONTEXTHELP	EQU	0F180h
SC_SEPARATOR	EQU	0F00Fh
endif 
SC_ICON	EQU	<SC_MINIMIZE>
SC_ZOOM	EQU	<SC_MAXIMIZE>
endif 
@DefProto WINUSERAPI, LoadBitmapA, stdcall, , <:HINSTANCE, :LPSTR>, 8
@DefProto WINUSERAPI, LoadBitmapW, stdcall, , <:HINSTANCE, :LPWSTR>, 8
ifdef UNICODE
LoadBitmap	EQU	<LoadBitmapW>
else 
LoadBitmap	EQU	<LoadBitmapA>
endif 
@DefProto WINUSERAPI, LoadCursorA, stdcall, , <:HINSTANCE, :LPSTR>, 8
@DefProto WINUSERAPI, LoadCursorW, stdcall, , <:HINSTANCE, :LPWSTR>, 8
ifdef UNICODE
LoadCursor	EQU	<LoadCursorW>
else 
LoadCursor	EQU	<LoadCursorA>
endif 
@DefProto WINUSERAPI, LoadCursorFromFileA, stdcall, , <:LPSTR>, 4
@DefProto WINUSERAPI, LoadCursorFromFileW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
LoadCursorFromFile	EQU	<LoadCursorFromFileW>
else 
LoadCursorFromFile	EQU	<LoadCursorFromFileA>
endif 
@DefProto WINUSERAPI, CreateCursor, stdcall, , <:HINSTANCE, :DWORD, :DWORD, :DWORD, :DWORD, :ptr , :ptr >, 28
@DefProto WINUSERAPI, DestroyCursor, stdcall, , <:HCURSOR>, 4
ifndef _MAC
CopyCursor macro pcur
	exitm <( ( HCURSOR ) CopyIcon ( ( HICON ) ( pcur ) ) ) >
	endm
else 
@DefProto WINUSERAPI, CopyCursor, stdcall, , <:HCURSOR>, 4
endif 
IDC_ARROW	EQU	MAKEINTRESOURCE ( 32512 )
IDC_IBEAM	EQU	MAKEINTRESOURCE ( 32513 )
IDC_WAIT	EQU	MAKEINTRESOURCE ( 32514 )
IDC_CROSS	EQU	MAKEINTRESOURCE ( 32515 )
IDC_UPARROW	EQU	MAKEINTRESOURCE ( 32516 )
IDC_SIZE	EQU	MAKEINTRESOURCE ( 32640 )
IDC_ICON	EQU	MAKEINTRESOURCE ( 32641 )
IDC_SIZENWSE	EQU	MAKEINTRESOURCE ( 32642 )
IDC_SIZENESW	EQU	MAKEINTRESOURCE ( 32643 )
IDC_SIZEWE	EQU	MAKEINTRESOURCE ( 32644 )
IDC_SIZENS	EQU	MAKEINTRESOURCE ( 32645 )
IDC_SIZEALL	EQU	MAKEINTRESOURCE ( 32646 )
IDC_NO	EQU	MAKEINTRESOURCE ( 32648 )
if (WINVER ge 0500h)
IDC_HAND	EQU	MAKEINTRESOURCE ( 32649 )
endif 
IDC_APPSTARTING	EQU	MAKEINTRESOURCE ( 32650 )
if (WINVER ge 0400h)
IDC_HELP	EQU	MAKEINTRESOURCE ( 32651 )
endif 
@DefProto WINUSERAPI, SetSystemCursor, stdcall, , <:HCURSOR, :DWORD>, 8
ICONINFO	struct 
fIcon	BOOL	?
xHotspot	DWORD	?
yHotspot	DWORD	?
hbmMask	HBITMAP	?
hbmColor	HBITMAP	?
ICONINFO	ends

PICONINFO typedef ptr ICONINFO
@DefProto WINUSERAPI, LoadIconA, stdcall, , <:HINSTANCE, :LPSTR>, 8
@DefProto WINUSERAPI, LoadIconW, stdcall, , <:HINSTANCE, :LPWSTR>, 8
ifdef UNICODE
LoadIcon	EQU	<LoadIconW>
else 
LoadIcon	EQU	<LoadIconA>
endif 
@DefProto WINUSERAPI, CreateIcon, stdcall, , <:HINSTANCE, :DWORD, :DWORD, :BYTE, :BYTE, :ptr BYTE, :ptr BYTE>, 28
@DefProto WINUSERAPI, DestroyIcon, stdcall, , <:HICON>, 4
@DefProto WINUSERAPI, LookupIconIdFromDirectory, stdcall, , <:PBYTE, :BOOL>, 8
if (WINVER ge 0400h)
@DefProto WINUSERAPI, LookupIconIdFromDirectoryEx, stdcall, , <:PBYTE, :BOOL, :DWORD, :DWORD, :DWORD>, 20
endif 
@DefProto WINUSERAPI, CreateIconFromResource, stdcall, , <:PBYTE, :DWORD, :BOOL, :DWORD>, 16
if (WINVER ge 0400h)
@DefProto WINUSERAPI, CreateIconFromResourceEx, stdcall, , <:PBYTE, :DWORD, :BOOL, :DWORD, :DWORD, :DWORD, :DWORD>, 28
CURSORSHAPE	struct 
xHotSpot	DWORD	?
yHotSpot	DWORD	?
cx_	DWORD	?
cy	DWORD	?
cbWidth	DWORD	?
Planes	BYTE	?
BitsPixel	BYTE	?
CURSORSHAPE	ends

LPCURSORSHAPE typedef ptr CURSORSHAPE

endif 
IMAGE_BITMAP	EQU	0
IMAGE_ICON	EQU	1
IMAGE_CURSOR	EQU	2
if (WINVER ge 0400h)
IMAGE_ENHMETAFILE	EQU	3
LR_DEFAULTCOLOR	EQU	0000h
LR_MONOCHROME	EQU	0001h
LR_COLOR	EQU	0002h
LR_COPYRETURNORG	EQU	0004h
LR_COPYDELETEORG	EQU	0008h
LR_LOADFROMFILE	EQU	0010h
LR_LOADTRANSPARENT	EQU	0020h
LR_DEFAULTSIZE	EQU	0040h
LR_VGACOLOR	EQU	0080h
LR_LOADMAP3DCOLORS	EQU	1000h
LR_CREATEDIBSECTION	EQU	2000h
LR_COPYFROMRESOURCE	EQU	4000h
LR_SHARED	EQU	8000h
@DefProto WINUSERAPI, LoadImageA, stdcall, , <:HINSTANCE, :LPSTR, :DWORD, :DWORD, :DWORD, :DWORD>, 24
@DefProto WINUSERAPI, LoadImageW, stdcall, , <:HINSTANCE, :LPWSTR, :DWORD, :DWORD, :DWORD, :DWORD>, 24
ifdef UNICODE
LoadImage	EQU	<LoadImageW>
else 
LoadImage	EQU	<LoadImageA>
endif 
@DefProto WINUSERAPI, CopyImage, stdcall, , <:HANDLE, :DWORD, :DWORD, :DWORD, :DWORD>, 20
DI_MASK	EQU	0001h
DI_IMAGE	EQU	0002h
DI_NORMAL	EQU	0003h
DI_COMPAT	EQU	0004h
DI_DEFAULTSIZE	EQU	0008h
if (_WIN32_WINNT ge 0501h)
DI_NOMIRROR	EQU	0010h
endif 
@DefProto WINUSERAPI, DrawIconEx, stdcall, , <:HDC, :DWORD, :DWORD, :HICON, :DWORD, :DWORD, :DWORD, :HBRUSH, :DWORD>, 36
endif 
@DefProto WINUSERAPI, CreateIconIndirect, stdcall, , <:PICONINFO>, 4
@DefProto WINUSERAPI, CopyIcon, stdcall, , <:HICON>, 4
@DefProto WINUSERAPI, GetIconInfo, stdcall, , <:HICON, :PICONINFO>, 8
if (WINVER ge 0400h)
RES_ICON	EQU	1
RES_CURSOR	EQU	2
endif 
ifdef OEMRESOURCE
OBM_CLOSE	EQU	32754
OBM_UPARROW	EQU	32753
OBM_DNARROW	EQU	32752
OBM_RGARROW	EQU	32751
OBM_LFARROW	EQU	32750
OBM_REDUCE	EQU	32749
OBM_ZOOM	EQU	32748
OBM_RESTORE	EQU	32747
OBM_REDUCED	EQU	32746
OBM_ZOOMD	EQU	32745
OBM_RESTORED	EQU	32744
OBM_UPARROWD	EQU	32743
OBM_DNARROWD	EQU	32742
OBM_RGARROWD	EQU	32741
OBM_LFARROWD	EQU	32740
OBM_MNARROW	EQU	32739
OBM_COMBO	EQU	32738
OBM_UPARROWI	EQU	32737
OBM_DNARROWI	EQU	32736
OBM_RGARROWI	EQU	32735
OBM_LFARROWI	EQU	32734
OBM_OLD_CLOSE	EQU	32767
OBM_SIZE	EQU	32766
OBM_OLD_UPARROW	EQU	32765
OBM_OLD_DNARROW	EQU	32764
OBM_OLD_RGARROW	EQU	32763
OBM_OLD_LFARROW	EQU	32762
OBM_BTSIZE	EQU	32761
OBM_CHECK	EQU	32760
OBM_CHECKBOXES	EQU	32759
OBM_BTNCORNERS	EQU	32758
OBM_OLD_REDUCE	EQU	32757
OBM_OLD_ZOOM	EQU	32756
OBM_OLD_RESTORE	EQU	32755
OCR_NORMAL	EQU	32512
OCR_IBEAM	EQU	32513
OCR_WAIT	EQU	32514
OCR_CROSS	EQU	32515
OCR_UP	EQU	32516
OCR_SIZE	EQU	32640
OCR_ICON	EQU	32641
OCR_SIZENWSE	EQU	32642
OCR_SIZENESW	EQU	32643
OCR_SIZEWE	EQU	32644
OCR_SIZENS	EQU	32645
OCR_SIZEALL	EQU	32646
OCR_ICOCUR	EQU	32647
OCR_NO	EQU	32648
if (WINVER ge 0500h)
OCR_HAND	EQU	32649
endif 
if (WINVER ge 0400h)
OCR_APPSTARTING	EQU	32650
endif 
OIC_SAMPLE	EQU	32512
OIC_HAND	EQU	32513
OIC_QUES	EQU	32514
OIC_BANG	EQU	32515
OIC_NOTE	EQU	32516
if (WINVER ge 0400h)
OIC_WINLOGO	EQU	32517
OIC_WARNING	EQU	<OIC_BANG>
OIC_ERROR	EQU	<OIC_HAND>
OIC_INFORMATION	EQU	<OIC_NOTE>
endif 
endif 
ORD_LANGDRIVER	EQU	1
ifndef NOICONS
ifdef RC_INVOKED
IDI_APPLICATION	EQU	32512
IDI_HAND	EQU	32513
IDI_QUESTION	EQU	32514
IDI_EXCLAMATION	EQU	32515
IDI_ASTERISK	EQU	32516
if (WINVER ge 0400h)
IDI_WINLOGO	EQU	32517
endif 
else 
IDI_APPLICATION	EQU	MAKEINTRESOURCE ( 32512 )
IDI_HAND	EQU	MAKEINTRESOURCE ( 32513 )
IDI_QUESTION	EQU	MAKEINTRESOURCE ( 32514 )
IDI_EXCLAMATION	EQU	MAKEINTRESOURCE ( 32515 )
IDI_ASTERISK	EQU	MAKEINTRESOURCE ( 32516 )
if (WINVER ge 0400h)
IDI_WINLOGO	EQU	MAKEINTRESOURCE ( 32517 )
endif 
endif 
if (WINVER ge 0400h)
IDI_WARNING	EQU	<IDI_EXCLAMATION>
IDI_ERROR	EQU	<IDI_HAND>
IDI_INFORMATION	EQU	<IDI_ASTERISK>
endif 
endif 
@DefProto WINUSERAPI, LoadStringA, stdcall, , <:HINSTANCE, :DWORD, :LPSTR, :DWORD>, 16
@DefProto WINUSERAPI, LoadStringW, stdcall, , <:HINSTANCE, :DWORD, :LPWSTR, :DWORD>, 16
ifdef UNICODE
LoadString	EQU	<LoadStringW>
else 
LoadString	EQU	<LoadStringA>
endif 
IDOK	EQU	1
IDCANCEL	EQU	2
IDABORT	EQU	3
IDRETRY	EQU	4
IDIGNORE	EQU	5
IDYES	EQU	6
IDNO	EQU	7
if (WINVER ge 0400h)
IDCLOSE	EQU	8
IDHELP	EQU	9
endif 
if (WINVER ge 0500h)
IDTRYAGAIN	EQU	10
IDCONTINUE	EQU	11
endif 
if (WINVER ge 0501h)
ifndef IDTIMEOUT
IDTIMEOUT	EQU	32000
endif 
endif 
ifndef NOCTLMGR
ifndef NOWINSTYLES
ES_LEFT	EQU	0000h
ES_CENTER	EQU	0001h
ES_RIGHT	EQU	0002h
ES_MULTILINE	EQU	0004h
ES_UPPERCASE	EQU	0008h
ES_LOWERCASE	EQU	0010h
ES_PASSWORD	EQU	0020h
ES_AUTOVSCROLL	EQU	0040h
ES_AUTOHSCROLL	EQU	0080h
ES_NOHIDESEL	EQU	0100h
ES_OEMCONVERT	EQU	0400h
ES_READONLY	EQU	0800h
ES_WANTRETURN	EQU	1000h
if (WINVER ge 0400h)
ES_NUMBER	EQU	2000h
endif 
endif 
EN_SETFOCUS	EQU	0100h
EN_KILLFOCUS	EQU	0200h
EN_CHANGE	EQU	0300h
EN_UPDATE	EQU	0400h
EN_ERRSPACE	EQU	0500h
EN_MAXTEXT	EQU	0501h
EN_HSCROLL	EQU	0601h
EN_VSCROLL	EQU	0602h
if (_WIN32_WINNT ge 0500h)
EN_ALIGN_LTR_EC	EQU	0700h
EN_ALIGN_RTL_EC	EQU	0701h
endif 
if (WINVER ge 0400h)
EC_LEFTMARGIN	EQU	0001h
EC_RIGHTMARGIN	EQU	0002h
EC_USEFONTINFO	EQU	0ffffh
endif 
if (WINVER ge 0500h)
EMSIS_COMPOSITIONSTRING	EQU	0001h
EIMES_GETCOMPSTRATONCE	EQU	0001h
EIMES_CANCELCOMPSTRINFOCUS	EQU	0002h
EIMES_COMPLETECOMPSTRKILLFOCUS	EQU	0004h
endif 
ifndef NOWINMESSAGES
EM_GETSEL	EQU	00B0h
EM_SETSEL	EQU	00B1h
EM_GETRECT	EQU	00B2h
EM_SETRECT	EQU	00B3h
EM_SETRECTNP	EQU	00B4h
EM_SCROLL	EQU	00B5h
EM_LINESCROLL	EQU	00B6h
EM_SCROLLCARET	EQU	00B7h
EM_GETMODIFY	EQU	00B8h
EM_SETMODIFY	EQU	00B9h
EM_GETLINECOUNT	EQU	00BAh
EM_LINEINDEX	EQU	00BBh
EM_SETHANDLE	EQU	00BCh
EM_GETHANDLE	EQU	00BDh
EM_GETTHUMB	EQU	00BEh
EM_LINELENGTH	EQU	00C1h
EM_REPLACESEL	EQU	00C2h
EM_GETLINE	EQU	00C4h
EM_LIMITTEXT	EQU	00C5h
EM_CANUNDO	EQU	00C6h
EM_UNDO	EQU	00C7h
EM_FMTLINES	EQU	00C8h
EM_LINEFROMCHAR	EQU	00C9h
EM_SETTABSTOPS	EQU	00CBh
EM_SETPASSWORDCHAR	EQU	00CCh
EM_EMPTYUNDOBUFFER	EQU	00CDh
EM_GETFIRSTVISIBLELINE	EQU	00CEh
EM_SETREADONLY	EQU	00CFh
EM_SETWORDBREAKPROC	EQU	00D0h
EM_GETWORDBREAKPROC	EQU	00D1h
EM_GETPASSWORDCHAR	EQU	00D2h
if (WINVER ge 0400h)
EM_SETMARGINS	EQU	00D3h
EM_GETMARGINS	EQU	00D4h
EM_SETLIMITTEXT	EQU	<EM_LIMITTEXT>
EM_GETLIMITTEXT	EQU	00D5h
EM_POSFROMCHAR	EQU	00D6h
EM_CHARFROMPOS	EQU	00D7h
endif 
if (WINVER ge 0500h)
EM_SETIMESTATUS	EQU	00D8h
EM_GETIMESTATUS	EQU	00D9h
endif 
endif 
WB_LEFT	EQU	0
WB_RIGHT	EQU	1
WB_ISDELIMITER	EQU	2
BS_PUSHBUTTON	EQU	00000000h
BS_DEFPUSHBUTTON	EQU	00000001h
BS_CHECKBOX	EQU	00000002h
BS_AUTOCHECKBOX	EQU	00000003h
BS_RADIOBUTTON	EQU	00000004h
BS_3STATE	EQU	00000005h
BS_AUTO3STATE	EQU	00000006h
BS_GROUPBOX	EQU	00000007h
BS_USERBUTTON	EQU	00000008h
BS_AUTORADIOBUTTON	EQU	00000009h
BS_OWNERDRAW	EQU	0000000Bh
BS_LEFTTEXT	EQU	00000020h
if (WINVER ge 0400h)
BS_TEXT	EQU	00000000h
BS_ICON	EQU	00000040h
BS_BITMAP	EQU	00000080h
BS_LEFT	EQU	00000100h
BS_RIGHT	EQU	00000200h
BS_CENTER	EQU	00000300h
BS_TOP	EQU	00000400h
BS_BOTTOM	EQU	00000800h
BS_VCENTER	EQU	00000C00h
BS_PUSHLIKE	EQU	00001000h
BS_MULTILINE	EQU	00002000h
BS_NOTIFY	EQU	00004000h
BS_FLAT	EQU	00008000h
BS_RIGHTBUTTON	EQU	<BS_LEFTTEXT>
endif 
BN_CLICKED	EQU	0
BN_PAINT	EQU	1
BN_HILITE	EQU	2
BN_UNHILITE	EQU	3
BN_DISABLE	EQU	4
BN_DOUBLECLICKED	EQU	5
if (WINVER ge 0400h)
BN_PUSHED	EQU	<BN_HILITE>
BN_UNPUSHED	EQU	<BN_UNHILITE>
BN_DBLCLK	EQU	<BN_DOUBLECLICKED>
BN_SETFOCUS	EQU	6
BN_KILLFOCUS	EQU	7
endif 
BM_GETCHECK	EQU	00F0h
BM_SETCHECK	EQU	00F1h
BM_GETSTATE	EQU	00F2h
BM_SETSTATE	EQU	00F3h
BM_SETSTYLE	EQU	00F4h
if (WINVER ge 0400h)
BM_CLICK	EQU	00F5h
BM_GETIMAGE	EQU	00F6h
BM_SETIMAGE	EQU	00F7h
BST_UNCHECKED	EQU	0000h
BST_CHECKED	EQU	0001h
BST_INDETERMINATE	EQU	0002h
BST_PUSHED	EQU	0004h
BST_FOCUS	EQU	0008h
endif 
SS_LEFT	EQU	00000000h
SS_CENTER	EQU	00000001h
SS_RIGHT	EQU	00000002h
SS_ICON	EQU	00000003h
SS_BLACKRECT	EQU	00000004h
SS_GRAYRECT	EQU	00000005h
SS_WHITERECT	EQU	00000006h
SS_BLACKFRAME	EQU	00000007h
SS_GRAYFRAME	EQU	00000008h
SS_WHITEFRAME	EQU	00000009h
SS_USERITEM	EQU	0000000Ah
SS_SIMPLE	EQU	0000000Bh
SS_LEFTNOWORDWRAP	EQU	0000000Ch
if (WINVER ge 0400h)
SS_OWNERDRAW	EQU	0000000Dh
SS_BITMAP	EQU	0000000Eh
SS_ENHMETAFILE	EQU	0000000Fh
SS_ETCHEDHORZ	EQU	00000010h
SS_ETCHEDVERT	EQU	00000011h
SS_ETCHEDFRAME	EQU	00000012h
SS_TYPEMASK	EQU	0000001Fh
endif 
if (WINVER ge 0501h)
SS_REALSIZECONTROL	EQU	00000040h
endif 
SS_NOPREFIX	EQU	00000080h
if (WINVER ge 0400h)
SS_NOTIFY	EQU	00000100h
SS_CENTERIMAGE	EQU	00000200h
SS_RIGHTJUST	EQU	00000400h
SS_REALSIZEIMAGE	EQU	00000800h
SS_SUNKEN	EQU	00001000h
SS_ENDELLIPSIS	EQU	00004000h
SS_PATHELLIPSIS	EQU	00008000h
SS_WORDELLIPSIS	EQU	0000C000h
SS_ELLIPSISMASK	EQU	0000C000h
endif 
ifndef NOWINMESSAGES
STM_SETICON	EQU	0170h
STM_GETICON	EQU	0171h
if (WINVER ge 0400h)
STM_SETIMAGE	EQU	0172h
STM_GETIMAGE	EQU	0173h
STN_CLICKED	EQU	0
STN_DBLCLK	EQU	1
STN_ENABLE	EQU	2
STN_DISABLE	EQU	3
endif 
STM_MSGMAX	EQU	0174h
endif 
WC_DIALOG	EQU	( MAKEINTATOM ( 8002h ) )
DWL_MSGRESULT	EQU	0
DWL_DLGPROC	EQU	4
DWL_USER	EQU	8
ifdef _WIN64
;#undef DWL_MSGRESULT 
;#undef DWL_DLGPROC 
;#undef DWL_USER 
endif 
DWLP_MSGRESULT	EQU	0
DWLP_DLGPROC	EQU	DWLP_MSGRESULT + sizeof ( LRESULT )
DWLP_USER	EQU	DWLP_DLGPROC + sizeof ( DLGPROC )
ifndef NOMSG
@DefProto WINUSERAPI, IsDialogMessageA, stdcall, , <:HWND, :LPMSG>, 8
@DefProto WINUSERAPI, IsDialogMessageW, stdcall, , <:HWND, :LPMSG>, 8
ifdef UNICODE
IsDialogMessage	EQU	<IsDialogMessageW>
else 
IsDialogMessage	EQU	<IsDialogMessageA>
endif 
endif 
@DefProto WINUSERAPI, MapDialogRect, stdcall, , <:HWND, :LPRECT>, 8
@DefProto WINUSERAPI, DlgDirListA, stdcall, , <:HWND, :LPSTR, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINUSERAPI, DlgDirListW, stdcall, , <:HWND, :LPWSTR, :DWORD, :DWORD, :DWORD>, 20
ifdef UNICODE
DlgDirList	EQU	<DlgDirListW>
else 
DlgDirList	EQU	<DlgDirListA>
endif 
DDL_READWRITE	EQU	0000h
DDL_READONLY	EQU	0001h
DDL_HIDDEN	EQU	0002h
DDL_SYSTEM	EQU	0004h
DDL_DIRECTORY	EQU	0010h
DDL_ARCHIVE	EQU	0020h
DDL_POSTMSGS	EQU	2000h
DDL_DRIVES	EQU	4000h
DDL_EXCLUSIVE	EQU	8000h
@DefProto WINUSERAPI, DlgDirSelectExA, stdcall, , <:HWND, :LPSTR, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, DlgDirSelectExW, stdcall, , <:HWND, :LPWSTR, :DWORD, :DWORD>, 16
ifdef UNICODE
DlgDirSelectEx	EQU	<DlgDirSelectExW>
else 
DlgDirSelectEx	EQU	<DlgDirSelectExA>
endif 
@DefProto WINUSERAPI, DlgDirListComboBoxA, stdcall, , <:HWND, :LPSTR, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINUSERAPI, DlgDirListComboBoxW, stdcall, , <:HWND, :LPWSTR, :DWORD, :DWORD, :DWORD>, 20
ifdef UNICODE
DlgDirListComboBox	EQU	<DlgDirListComboBoxW>
else 
DlgDirListComboBox	EQU	<DlgDirListComboBoxA>
endif 
@DefProto WINUSERAPI, DlgDirSelectComboBoxExA, stdcall, , <:HWND, :LPSTR, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, DlgDirSelectComboBoxExW, stdcall, , <:HWND, :LPWSTR, :DWORD, :DWORD>, 16
ifdef UNICODE
DlgDirSelectComboBoxEx	EQU	<DlgDirSelectComboBoxExW>
else 
DlgDirSelectComboBoxEx	EQU	<DlgDirSelectComboBoxExA>
endif 
DS_ABSALIGN	EQU	01h
DS_SYSMODAL	EQU	02h
DS_LOCALEDIT	EQU	20h
DS_SETFONT	EQU	40h
DS_MODALFRAME	EQU	80h
DS_NOIDLEMSG	EQU	100h
DS_SETFOREGROUND	EQU	200h
if (WINVER ge 0400h)
DS_3DLOOK	EQU	0004h
DS_FIXEDSYS	EQU	0008h
DS_NOFAILCREATE	EQU	0010h
DS_CONTROL	EQU	0400h
DS_CENTER	EQU	0800h
DS_CENTERMOUSE	EQU	1000h
DS_CONTEXTHELP	EQU	2000h
DS_SHELLFONT	EQU	( DS_SETFONT  or  DS_FIXEDSYS )
endif 
DM_GETDEFID	EQU	( WM_USER + 0 )
DM_SETDEFID	EQU	( WM_USER + 1 )
if (WINVER ge 0400h)
DM_REPOSITION	EQU	( WM_USER + 2 )
endif 
DC_HASDEFID	EQU	534Bh
DLGC_WANTARROWS	EQU	0001h
DLGC_WANTTAB	EQU	0002h
DLGC_WANTALLKEYS	EQU	0004h
DLGC_WANTMESSAGE	EQU	0004h
DLGC_HASSETSEL	EQU	0008h
DLGC_DEFPUSHBUTTON	EQU	0010h
DLGC_UNDEFPUSHBUTTON	EQU	0020h
DLGC_RADIOBUTTON	EQU	0040h
DLGC_WANTCHARS	EQU	0080h
DLGC_STATIC	EQU	0100h
DLGC_BUTTON	EQU	2000h
LB_CTLCODE	EQU	0
LB_OKAY	EQU	0
LB_ERR	EQU	- 1
LB_ERRSPACE	EQU	- 2
LBN_ERRSPACE	EQU	- 2
LBN_SELCHANGE	EQU	1
LBN_DBLCLK	EQU	2
LBN_SELCANCEL	EQU	3
LBN_SETFOCUS	EQU	4
LBN_KILLFOCUS	EQU	5
ifndef NOWINMESSAGES
LB_ADDSTRING	EQU	0180h
LB_INSERTSTRING	EQU	0181h
LB_DELETESTRING	EQU	0182h
LB_SELITEMRANGEEX	EQU	0183h
LB_RESETCONTENT	EQU	0184h
LB_SETSEL	EQU	0185h
LB_SETCURSEL	EQU	0186h
LB_GETSEL	EQU	0187h
LB_GETCURSEL	EQU	0188h
LB_GETTEXT	EQU	0189h
LB_GETTEXTLEN	EQU	018Ah
LB_GETCOUNT	EQU	018Bh
LB_SELECTSTRING	EQU	018Ch
LB_DIR	EQU	018Dh
LB_GETTOPINDEX	EQU	018Eh
LB_FINDSTRING	EQU	018Fh
LB_GETSELCOUNT	EQU	0190h
LB_GETSELITEMS	EQU	0191h
LB_SETTABSTOPS	EQU	0192h
LB_GETHORIZONTALEXTENT	EQU	0193h
LB_SETHORIZONTALEXTENT	EQU	0194h
LB_SETCOLUMNWIDTH	EQU	0195h
LB_ADDFILE	EQU	0196h
LB_SETTOPINDEX	EQU	0197h
LB_GETITEMRECT	EQU	0198h
LB_GETITEMDATA	EQU	0199h
LB_SETITEMDATA	EQU	019Ah
LB_SELITEMRANGE	EQU	019Bh
LB_SETANCHORINDEX	EQU	019Ch
LB_GETANCHORINDEX	EQU	019Dh
LB_SETCARETINDEX	EQU	019Eh
LB_GETCARETINDEX	EQU	019Fh
LB_SETITEMHEIGHT	EQU	01A0h
LB_GETITEMHEIGHT	EQU	01A1h
LB_FINDSTRINGEXACT	EQU	01A2h
LB_SETLOCALE	EQU	01A5h
LB_GETLOCALE	EQU	01A6h
LB_SETCOUNT	EQU	01A7h
if (WINVER ge 0400h)
LB_INITSTORAGE	EQU	01A8h
LB_ITEMFROMPOINT	EQU	01A9h
endif 
if (_WIN32_WCE ge 0400h)
LB_MULTIPLEADDSTRING	EQU	01B1h
endif 
if (_WIN32_WINNT ge 0501h)
LB_GETLISTBOXINFO	EQU	01B2h
endif 
if (_WIN32_WINNT ge 0501h)
LB_MSGMAX	EQU	01B3h
elseif (_WIN32_WCE ge 0400h)
LB_MSGMAX	EQU	01B1h
elseif (WINVER ge 0400h)
LB_MSGMAX	EQU	01B0h
else 
LB_MSGMAX	EQU	01A8h
endif 
endif 
ifndef NOWINSTYLES
LBS_NOTIFY	EQU	0001h
LBS_SORT	EQU	0002h
LBS_NOREDRAW	EQU	0004h
LBS_MULTIPLESEL	EQU	0008h
LBS_OWNERDRAWFIXED	EQU	0010h
LBS_OWNERDRAWVARIABLE	EQU	0020h
LBS_HASSTRINGS	EQU	0040h
LBS_USETABSTOPS	EQU	0080h
LBS_NOINTEGRALHEIGHT	EQU	0100h
LBS_MULTICOLUMN	EQU	0200h
LBS_WANTKEYBOARDINPUT	EQU	0400h
LBS_EXTENDEDSEL	EQU	0800h
LBS_DISABLENOSCROLL	EQU	1000h
LBS_NODATA	EQU	2000h
if (WINVER ge 0400h)
LBS_NOSEL	EQU	4000h
endif 
LBS_STANDARD	EQU	( LBS_NOTIFY  or  LBS_SORT  or  WS_VSCROLL  or  WS_BORDER )
endif 
CB_OKAY	EQU	0
CB_ERR	EQU	- 1
CB_ERRSPACE	EQU	- 2
CBN_ERRSPACE	EQU	- 1
CBN_SELCHANGE	EQU	1
CBN_DBLCLK	EQU	2
CBN_SETFOCUS	EQU	3
CBN_KILLFOCUS	EQU	4
CBN_EDITCHANGE	EQU	5
CBN_EDITUPDATE	EQU	6
CBN_DROPDOWN	EQU	7
CBN_CLOSEUP	EQU	8
CBN_SELENDOK	EQU	9
CBN_SELENDCANCEL	EQU	10
ifndef NOWINSTYLES
CBS_SIMPLE	EQU	0001h
CBS_DROPDOWN	EQU	0002h
CBS_DROPDOWNLIST	EQU	0003h
CBS_OWNERDRAWFIXED	EQU	0010h
CBS_OWNERDRAWVARIABLE	EQU	0020h
CBS_AUTOHSCROLL	EQU	0040h
CBS_OEMCONVERT	EQU	0080h
CBS_SORT	EQU	0100h
CBS_HASSTRINGS	EQU	0200h
CBS_NOINTEGRALHEIGHT	EQU	0400h
CBS_DISABLENOSCROLL	EQU	0800h
if (WINVER ge 0400h)
CBS_UPPERCASE	EQU	2000h
CBS_LOWERCASE	EQU	4000h
endif 
endif 
ifndef NOWINMESSAGES
CB_GETEDITSEL	EQU	0140h
CB_LIMITTEXT	EQU	0141h
CB_SETEDITSEL	EQU	0142h
CB_ADDSTRING	EQU	0143h
CB_DELETESTRING	EQU	0144h
CB_DIR	EQU	0145h
CB_GETCOUNT	EQU	0146h
CB_GETCURSEL	EQU	0147h
CB_GETLBTEXT	EQU	0148h
CB_GETLBTEXTLEN	EQU	0149h
CB_INSERTSTRING	EQU	014Ah
CB_RESETCONTENT	EQU	014Bh
CB_FINDSTRING	EQU	014Ch
CB_SELECTSTRING	EQU	014Dh
CB_SETCURSEL	EQU	014Eh
CB_SHOWDROPDOWN	EQU	014Fh
CB_GETITEMDATA	EQU	0150h
CB_SETITEMDATA	EQU	0151h
CB_GETDROPPEDCONTROLRECT	EQU	0152h
CB_SETITEMHEIGHT	EQU	0153h
CB_GETITEMHEIGHT	EQU	0154h
CB_SETEXTENDEDUI	EQU	0155h
CB_GETEXTENDEDUI	EQU	0156h
CB_GETDROPPEDSTATE	EQU	0157h
CB_FINDSTRINGEXACT	EQU	0158h
CB_SETLOCALE	EQU	0159h
CB_GETLOCALE	EQU	015Ah
if (WINVER ge 0400h)
CB_GETTOPINDEX	EQU	015bh
CB_SETTOPINDEX	EQU	015ch
CB_GETHORIZONTALEXTENT	EQU	015dh
CB_SETHORIZONTALEXTENT	EQU	015eh
CB_GETDROPPEDWIDTH	EQU	015fh
CB_SETDROPPEDWIDTH	EQU	0160h
CB_INITSTORAGE	EQU	0161h
if (_WIN32_WCE ge 0400h)
CB_MULTIPLEADDSTRING	EQU	0163h
endif 
endif 
if (_WIN32_WINNT ge 0501h)
CB_GETCOMBOBOXINFO	EQU	0164h
endif 
if (_WIN32_WINNT ge 0501h)
CB_MSGMAX	EQU	0165h
elseif (_WIN32_WCE ge 0400h)
CB_MSGMAX	EQU	0163h
elseif (WINVER ge 0400h)
CB_MSGMAX	EQU	0162h
else 
CB_MSGMAX	EQU	015Bh
endif 
endif 
ifndef NOWINSTYLES
SBS_HORZ	EQU	0000h
SBS_VERT	EQU	0001h
SBS_TOPALIGN	EQU	0002h
SBS_LEFTALIGN	EQU	0002h
SBS_BOTTOMALIGN	EQU	0004h
SBS_RIGHTALIGN	EQU	0004h
SBS_SIZEBOXTOPLEFTALIGN	EQU	0002h
SBS_SIZEBOXBOTTOMRIGHTALIGN	EQU	0004h
SBS_SIZEBOX	EQU	0008h
if (WINVER ge 0400h)
SBS_SIZEGRIP	EQU	0010h
endif 
endif 
ifndef NOWINMESSAGES
SBM_SETPOS	EQU	00E0h
SBM_GETPOS	EQU	00E1h
SBM_SETRANGE	EQU	00E2h
SBM_SETRANGEREDRAW	EQU	00E6h
SBM_GETRANGE	EQU	00E3h
SBM_ENABLE_ARROWS	EQU	00E4h
if (WINVER ge 0400h)
SBM_SETSCROLLINFO	EQU	00E9h
SBM_GETSCROLLINFO	EQU	00EAh
endif 
if (_WIN32_WINNT ge 0501h)
SBM_GETSCROLLBARINFO	EQU	00EBh
endif 
if (WINVER ge 0400h)
SIF_RANGE	EQU	0001h
SIF_PAGE	EQU	0002h
SIF_POS	EQU	0004h
SIF_DISABLENOSCROLL	EQU	0008h
SIF_TRACKPOS	EQU	0010h
SIF_ALL	EQU	( SIF_RANGE  or  SIF_PAGE  or  SIF_POS  or  SIF_TRACKPOS )
SCROLLINFO	struct 
cbSize	DWORD	?
fMask	DWORD	?
nMin	DWORD	?
nMax	DWORD	?
nPage	DWORD	?
nPos	DWORD	?
nTrackPos	DWORD	?
SCROLLINFO	ends

LPSCROLLINFO typedef ptr SCROLLINFO

LPCSCROLLINFO typedef ptr SCROLLINFO
@DefProto WINUSERAPI, SetScrollInfo, stdcall, , <:HWND, :DWORD, :LPCSCROLLINFO, :BOOL>, 16
@DefProto WINUSERAPI, GetScrollInfo, stdcall, , <:HWND, :DWORD, :LPSCROLLINFO>, 12
endif 
endif 
endif 
ifndef NOMDI
MDIS_ALLCHILDSTYLES	EQU	0001h
MDITILE_VERTICAL	EQU	0000h
MDITILE_HORIZONTAL	EQU	0001h
MDITILE_SKIPDISABLED	EQU	0002h
if (_WIN32_WINNT ge 0500h)
MDITILE_ZORDER	EQU	0004h
endif 
MDICREATESTRUCTA	struct 
szClass	LPSTR	?
szTitle	LPSTR	?
hOwner	HANDLE	?
x	DWORD	?
y	DWORD	?
cx_	DWORD	?
cy	DWORD	?
style	DWORD	?
lParam	LPARAM	?
MDICREATESTRUCTA	ends

LPMDICREATESTRUCTA typedef ptr MDICREATESTRUCTA

MDICREATESTRUCTW	struct 
szClass	LPWSTR	?
szTitle	LPWSTR	?
hOwner	HANDLE	?
x	DWORD	?
y	DWORD	?
cx_	DWORD	?
cy	DWORD	?
style	DWORD	?
lParam	LPARAM	?
MDICREATESTRUCTW	ends

LPMDICREATESTRUCTW typedef ptr MDICREATESTRUCTW

ifdef UNICODE
MDICREATESTRUCT typedef MDICREATESTRUCTW
LPMDICREATESTRUCT typedef LPMDICREATESTRUCTW
else 
MDICREATESTRUCT typedef MDICREATESTRUCTA
LPMDICREATESTRUCT typedef LPMDICREATESTRUCTA
endif 
CLIENTCREATESTRUCT	struct 
hWindowMenu	HANDLE	?
idFirstChild	DWORD	?
CLIENTCREATESTRUCT	ends

LPCLIENTCREATESTRUCT typedef ptr CLIENTCREATESTRUCT

@DefProto WINUSERAPI, DefFrameProcA, stdcall, , <:HWND, :HWND, :DWORD, :WPARAM, :LPARAM>, 20
@DefProto WINUSERAPI, DefFrameProcW, stdcall, , <:HWND, :HWND, :DWORD, :WPARAM, :LPARAM>, 20
ifdef UNICODE
DefFrameProc	EQU	<DefFrameProcW>
else 
DefFrameProc	EQU	<DefFrameProcA>
endif 
ifndef _MAC
else 
endif 
@DefProto WINUSERAPI, DefMDIChildProcA, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifndef _MAC
else 
endif 
@DefProto WINUSERAPI, DefMDIChildProcW, stdcall, , <:HWND, :DWORD, :WPARAM, :LPARAM>, 16
ifdef UNICODE
DefMDIChildProc	EQU	<DefMDIChildProcW>
else 
DefMDIChildProc	EQU	<DefMDIChildProcA>
endif 
ifndef NOMSG
@DefProto WINUSERAPI, TranslateMDISysAccel, stdcall, , <:HWND, :LPMSG>, 8
endif 
@DefProto WINUSERAPI, ArrangeIconicWindows, stdcall, , <:HWND>, 4
@DefProto WINUSERAPI, CreateMDIWindowA, stdcall, , <:LPSTR, :LPSTR, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :HWND, :HINSTANCE, :LPARAM>, 40
@DefProto WINUSERAPI, CreateMDIWindowW, stdcall, , <:LPWSTR, :LPWSTR, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :HWND, :HINSTANCE, :LPARAM>, 40
ifdef UNICODE
CreateMDIWindow	EQU	<CreateMDIWindowW>
else 
CreateMDIWindow	EQU	<CreateMDIWindowA>
endif 
if (WINVER ge 0400h)
@DefProto WINUSERAPI, TileWindows, stdcall, , <:HWND, :DWORD, :ptr RECT, :DWORD, :ptr HWND>, 20
@DefProto WINUSERAPI, CascadeWindows, stdcall, , <:HWND, :DWORD, :ptr RECT, :DWORD, :ptr HWND>, 20
endif 
endif 
endif 
ifndef NOHELP
HELPPOLY typedef DWORD
MULTIKEYHELPA	struct 
ifndef _MAC
mkSize	DWORD	?
else 
mkSize	WORD	?
endif 
mkKeylist	CHAR	?
szKeyphrase	CHAR 1 dup (?)
MULTIKEYHELPA	ends

PMULTIKEYHELPA typedef ptr MULTIKEYHELPA
LPMULTIKEYHELPA typedef ptr MULTIKEYHELPA

MULTIKEYHELPW	struct 
ifndef _MAC
mkSize	DWORD	?
else 
mkSize	WORD	?
endif 
mkKeylist	WCHAR	?
szKeyphrase	WCHAR 1 dup (?)
MULTIKEYHELPW	ends

PMULTIKEYHELPW typedef ptr MULTIKEYHELPW
LPMULTIKEYHELPW typedef ptr MULTIKEYHELPW

ifdef UNICODE
MULTIKEYHELP typedef MULTIKEYHELPW
PMULTIKEYHELP typedef PMULTIKEYHELPW
LPMULTIKEYHELP typedef LPMULTIKEYHELPW
else 
MULTIKEYHELP typedef MULTIKEYHELPA
PMULTIKEYHELP typedef PMULTIKEYHELPA
LPMULTIKEYHELP typedef LPMULTIKEYHELPA
endif 
HELPWININFOA	struct 
wStructSize	DWORD	?
x	DWORD	?
y	DWORD	?
dx_	DWORD	?
dy	DWORD	?
wMax	DWORD	?
rgchMember	CHAR 2 dup (?)
HELPWININFOA	ends

PHELPWININFOA typedef ptr HELPWININFOA
LPHELPWININFOA typedef ptr HELPWININFOA

HELPWININFOW	struct 
wStructSize	DWORD	?
x	DWORD	?
y	DWORD	?
dx_	DWORD	?
dy	DWORD	?
wMax	DWORD	?
rgchMember	WCHAR 2 dup (?)
HELPWININFOW	ends

PHELPWININFOW typedef ptr HELPWININFOW
LPHELPWININFOW typedef ptr HELPWININFOW

ifdef UNICODE
HELPWININFO typedef HELPWININFOW
PHELPWININFO typedef PHELPWININFOW
LPHELPWININFO typedef LPHELPWININFOW
else 
HELPWININFO typedef HELPWININFOA
PHELPWININFO typedef PHELPWININFOA
LPHELPWININFO typedef LPHELPWININFOA
endif 
HELP_CONTEXT	EQU	0001h
HELP_QUIT	EQU	0002h
HELP_INDEX	EQU	0003h
HELP_CONTENTS	EQU	0003h
HELP_HELPONHELP	EQU	0004h
HELP_SETINDEX	EQU	0005h
HELP_SETCONTENTS	EQU	0005h
HELP_CONTEXTPOPUP	EQU	0008h
HELP_FORCEFILE	EQU	0009h
HELP_KEY	EQU	0101h
HELP_COMMAND	EQU	0102h
HELP_PARTIALKEY	EQU	0105h
HELP_MULTIKEY	EQU	0201h
HELP_SETWINPOS	EQU	0203h
if (WINVER ge 0400h)
HELP_CONTEXTMENU	EQU	000ah
HELP_FINDER	EQU	000bh
HELP_WM_HELP	EQU	000ch
HELP_SETPOPUP_POS	EQU	000dh
HELP_TCARD	EQU	8000h
HELP_TCARD_DATA	EQU	0010h
HELP_TCARD_OTHER_CALLER	EQU	0011h
IDH_NO_HELP	EQU	28440
IDH_MISSING_CONTEXT	EQU	28441
IDH_GENERIC_HELP_BUTTON	EQU	28442
IDH_OK	EQU	28443
IDH_CANCEL	EQU	28444
IDH_HELP	EQU	28445
endif 
@DefProto WINUSERAPI, WinHelpA, stdcall, , <:HWND, :LPSTR, :DWORD, :DWORD>, 16
@DefProto WINUSERAPI, WinHelpW, stdcall, , <:HWND, :LPWSTR, :DWORD, :DWORD>, 16
ifdef UNICODE
WinHelp	EQU	<WinHelpW>
else 
WinHelp	EQU	<WinHelpA>
endif 
endif 
if (WINVER ge 0500h)
GR_GDIOBJECTS	EQU	0
GR_USEROBJECTS	EQU	1
@DefProto WINUSERAPI, GetGuiResources, stdcall, , <:HANDLE, :DWORD>, 8
endif 
ifndef NOSYSPARAMSINFO
SPI_GETBEEP	EQU	0001h
SPI_SETBEEP	EQU	0002h
SPI_GETMOUSE	EQU	0003h
SPI_SETMOUSE	EQU	0004h
SPI_GETBORDER	EQU	0005h
SPI_SETBORDER	EQU	0006h
SPI_GETKEYBOARDSPEED	EQU	000Ah
SPI_SETKEYBOARDSPEED	EQU	000Bh
SPI_LANGDRIVER	EQU	000Ch
SPI_ICONHORIZONTALSPACING	EQU	000Dh
SPI_GETSCREENSAVETIMEOUT	EQU	000Eh
SPI_SETSCREENSAVETIMEOUT	EQU	000Fh
SPI_GETSCREENSAVEACTIVE	EQU	0010h
SPI_SETSCREENSAVEACTIVE	EQU	0011h
SPI_GETGRIDGRANULARITY	EQU	0012h
SPI_SETGRIDGRANULARITY	EQU	0013h
SPI_SETDESKWALLPAPER	EQU	0014h
SPI_SETDESKPATTERN	EQU	0015h
SPI_GETKEYBOARDDELAY	EQU	0016h
SPI_SETKEYBOARDDELAY	EQU	0017h
SPI_ICONVERTICALSPACING	EQU	0018h
SPI_GETICONTITLEWRAP	EQU	0019h
SPI_SETICONTITLEWRAP	EQU	001Ah
SPI_GETMENUDROPALIGNMENT	EQU	001Bh
SPI_SETMENUDROPALIGNMENT	EQU	001Ch
SPI_SETDOUBLECLKWIDTH	EQU	001Dh
SPI_SETDOUBLECLKHEIGHT	EQU	001Eh
SPI_GETICONTITLELOGFONT	EQU	001Fh
SPI_SETDOUBLECLICKTIME	EQU	0020h
SPI_SETMOUSEBUTTONSWAP	EQU	0021h
SPI_SETICONTITLELOGFONT	EQU	0022h
SPI_GETFASTTASKSWITCH	EQU	0023h
SPI_SETFASTTASKSWITCH	EQU	0024h
if (WINVER ge 0400h)
SPI_SETDRAGFULLWINDOWS	EQU	0025h
SPI_GETDRAGFULLWINDOWS	EQU	0026h
SPI_GETNONCLIENTMETRICS	EQU	0029h
SPI_SETNONCLIENTMETRICS	EQU	002Ah
SPI_GETMINIMIZEDMETRICS	EQU	002Bh
SPI_SETMINIMIZEDMETRICS	EQU	002Ch
SPI_GETICONMETRICS	EQU	002Dh
SPI_SETICONMETRICS	EQU	002Eh
SPI_SETWORKAREA	EQU	002Fh
SPI_GETWORKAREA	EQU	0030h
SPI_SETPENWINDOWS	EQU	0031h
SPI_GETHIGHCONTRAST	EQU	0042h
SPI_SETHIGHCONTRAST	EQU	0043h
SPI_GETKEYBOARDPREF	EQU	0044h
SPI_SETKEYBOARDPREF	EQU	0045h
SPI_GETSCREENREADER	EQU	0046h
SPI_SETSCREENREADER	EQU	0047h
SPI_GETANIMATION	EQU	0048h
SPI_SETANIMATION	EQU	0049h
SPI_GETFONTSMOOTHING	EQU	004Ah
SPI_SETFONTSMOOTHING	EQU	004Bh
SPI_SETDRAGWIDTH	EQU	004Ch
SPI_SETDRAGHEIGHT	EQU	004Dh
SPI_SETHANDHELD	EQU	004Eh
SPI_GETLOWPOWERTIMEOUT	EQU	004Fh
SPI_GETPOWEROFFTIMEOUT	EQU	0050h
SPI_SETLOWPOWERTIMEOUT	EQU	0051h
SPI_SETPOWEROFFTIMEOUT	EQU	0052h
SPI_GETLOWPOWERACTIVE	EQU	0053h
SPI_GETPOWEROFFACTIVE	EQU	0054h
SPI_SETLOWPOWERACTIVE	EQU	0055h
SPI_SETPOWEROFFACTIVE	EQU	0056h
SPI_SETCURSORS	EQU	0057h
SPI_SETICONS	EQU	0058h
SPI_GETDEFAULTINPUTLANG	EQU	0059h
SPI_SETDEFAULTINPUTLANG	EQU	005Ah
SPI_SETLANGTOGGLE	EQU	005Bh
SPI_GETWINDOWSEXTENSION	EQU	005Ch
SPI_SETMOUSETRAILS	EQU	005Dh
SPI_GETMOUSETRAILS	EQU	005Eh
SPI_SETSCREENSAVERRUNNING	EQU	0061h
SPI_SCREENSAVERRUNNING	EQU	<SPI_SETSCREENSAVERRUNNING>
endif 
SPI_GETFILTERKEYS	EQU	0032h
SPI_SETFILTERKEYS	EQU	0033h
SPI_GETTOGGLEKEYS	EQU	0034h
SPI_SETTOGGLEKEYS	EQU	0035h
SPI_GETMOUSEKEYS	EQU	0036h
SPI_SETMOUSEKEYS	EQU	0037h
SPI_GETSHOWSOUNDS	EQU	0038h
SPI_SETSHOWSOUNDS	EQU	0039h
SPI_GETSTICKYKEYS	EQU	003Ah
SPI_SETSTICKYKEYS	EQU	003Bh
SPI_GETACCESSTIMEOUT	EQU	003Ch
SPI_SETACCESSTIMEOUT	EQU	003Dh
if (WINVER ge 0400h)
SPI_GETSERIALKEYS	EQU	003Eh
SPI_SETSERIALKEYS	EQU	003Fh
endif 
SPI_GETSOUNDSENTRY	EQU	0040h
SPI_SETSOUNDSENTRY	EQU	0041h
if (_WIN32_WINNT ge 0400h)
SPI_GETSNAPTODEFBUTTON	EQU	005Fh
SPI_SETSNAPTODEFBUTTON	EQU	0060h
endif 
if (_WIN32_WINNT ge 0400h) OR (_WIN32_WINDOWS gt 0400h)
SPI_GETMOUSEHOVERWIDTH	EQU	0062h
SPI_SETMOUSEHOVERWIDTH	EQU	0063h
SPI_GETMOUSEHOVERHEIGHT	EQU	0064h
SPI_SETMOUSEHOVERHEIGHT	EQU	0065h
SPI_GETMOUSEHOVERTIME	EQU	0066h
SPI_SETMOUSEHOVERTIME	EQU	0067h
SPI_GETWHEELSCROLLLINES	EQU	0068h
SPI_SETWHEELSCROLLLINES	EQU	0069h
SPI_GETMENUSHOWDELAY	EQU	006Ah
SPI_SETMENUSHOWDELAY	EQU	006Bh
SPI_GETSHOWIMEUI	EQU	006Eh
SPI_SETSHOWIMEUI	EQU	006Fh
endif 
if (WINVER ge 0500h)
SPI_GETMOUSESPEED	EQU	0070h
SPI_SETMOUSESPEED	EQU	0071h
SPI_GETSCREENSAVERRUNNING	EQU	0072h
SPI_GETDESKWALLPAPER	EQU	0073h
endif 
if (WINVER ge 0500h)
SPI_GETACTIVEWINDOWTRACKING	EQU	1000h
SPI_SETACTIVEWINDOWTRACKING	EQU	1001h
SPI_GETMENUANIMATION	EQU	1002h
SPI_SETMENUANIMATION	EQU	1003h
SPI_GETCOMBOBOXANIMATION	EQU	1004h
SPI_SETCOMBOBOXANIMATION	EQU	1005h
SPI_GETLISTBOXSMOOTHSCROLLING	EQU	1006h
SPI_SETLISTBOXSMOOTHSCROLLING	EQU	1007h
SPI_GETGRADIENTCAPTIONS	EQU	1008h
SPI_SETGRADIENTCAPTIONS	EQU	1009h
SPI_GETKEYBOARDCUES	EQU	100Ah
SPI_SETKEYBOARDCUES	EQU	100Bh
SPI_GETMENUUNDERLINES	EQU	<SPI_GETKEYBOARDCUES>
SPI_SETMENUUNDERLINES	EQU	<SPI_SETKEYBOARDCUES>
SPI_GETACTIVEWNDTRKZORDER	EQU	100Ch
SPI_SETACTIVEWNDTRKZORDER	EQU	100Dh
SPI_GETHOTTRACKING	EQU	100Eh
SPI_SETHOTTRACKING	EQU	100Fh
SPI_GETMENUFADE	EQU	1012h
SPI_SETMENUFADE	EQU	1013h
SPI_GETSELECTIONFADE	EQU	1014h
SPI_SETSELECTIONFADE	EQU	1015h
SPI_GETTOOLTIPANIMATION	EQU	1016h
SPI_SETTOOLTIPANIMATION	EQU	1017h
SPI_GETTOOLTIPFADE	EQU	1018h
SPI_SETTOOLTIPFADE	EQU	1019h
SPI_GETCURSORSHADOW	EQU	101Ah
SPI_SETCURSORSHADOW	EQU	101Bh
if (_WIN32_WINNT ge 0501h)
SPI_GETMOUSESONAR	EQU	101Ch
SPI_SETMOUSESONAR	EQU	101Dh
SPI_GETMOUSECLICKLOCK	EQU	101Eh
SPI_SETMOUSECLICKLOCK	EQU	101Fh
SPI_GETMOUSEVANISH	EQU	1020h
SPI_SETMOUSEVANISH	EQU	1021h
SPI_GETFLATMENU	EQU	1022h
SPI_SETFLATMENU	EQU	1023h
SPI_GETDROPSHADOW	EQU	1024h
SPI_SETDROPSHADOW	EQU	1025h
endif 
SPI_GETUIEFFECTS	EQU	103Eh
SPI_SETUIEFFECTS	EQU	103Fh
SPI_GETFOREGROUNDLOCKTIMEOUT	EQU	2000h
SPI_SETFOREGROUNDLOCKTIMEOUT	EQU	2001h
SPI_GETACTIVEWNDTRKTIMEOUT	EQU	2002h
SPI_SETACTIVEWNDTRKTIMEOUT	EQU	2003h
SPI_GETFOREGROUNDFLASHCOUNT	EQU	2004h
SPI_SETFOREGROUNDFLASHCOUNT	EQU	2005h
SPI_GETCARETWIDTH	EQU	2006h
SPI_SETCARETWIDTH	EQU	2007h
if (_WIN32_WINNT ge 0501h)
SPI_GETMOUSECLICKLOCKTIME	EQU	2008h
SPI_SETMOUSECLICKLOCKTIME	EQU	2009h
SPI_GETFONTSMOOTHINGTYPE	EQU	200Ah
SPI_SETFONTSMOOTHINGTYPE	EQU	200Bh
FE_FONTSMOOTHINGSTANDARD	EQU	0001h
FE_FONTSMOOTHINGCLEARTYPE	EQU	0002h
FE_FONTSMOOTHINGDOCKING	EQU	8000h
SPI_GETFONTSMOOTHINGCONTRAST	EQU	200Ch
SPI_SETFONTSMOOTHINGCONTRAST	EQU	200Dh
SPI_GETFOCUSBORDERWIDTH	EQU	200Eh
SPI_SETFOCUSBORDERWIDTH	EQU	200Fh
SPI_GETFOCUSBORDERHEIGHT	EQU	2010h
SPI_SETFOCUSBORDERHEIGHT	EQU	2011h
endif 
endif 
SPIF_UPDATEINIFILE	EQU	0001h
SPIF_SENDWININICHANGE	EQU	0002h
SPIF_SENDCHANGE	EQU	<SPIF_SENDWININICHANGE>
METRICS_USEDEFAULT	EQU	- 1
ifdef _WINGDI_
ifndef NOGDI
NONCLIENTMETRICSA	struct 
cbSize	DWORD	?
iBorderWidth	DWORD	?
iScrollWidth	DWORD	?
iScrollHeight	DWORD	?
iCaptionWidth	DWORD	?
iCaptionHeight	DWORD	?
lfCaptionFont	LOGFONTA	<>
iSmCaptionWidth	DWORD	?
iSmCaptionHeight	DWORD	?
lfSmCaptionFont	LOGFONTA	<>
iMenuWidth	DWORD	?
iMenuHeight	DWORD	?
lfMenuFont	LOGFONTA	<>
lfStatusFont	LOGFONTA	<>
lfMessageFont	LOGFONTA	<>
NONCLIENTMETRICSA	ends

PNONCLIENTMETRICSA typedef ptr NONCLIENTMETRICSA
LPNONCLIENTMETRICSA typedef ptr NONCLIENTMETRICSA

NONCLIENTMETRICSW	struct 
cbSize	DWORD	?
iBorderWidth	DWORD	?
iScrollWidth	DWORD	?
iScrollHeight	DWORD	?
iCaptionWidth	DWORD	?
iCaptionHeight	DWORD	?
lfCaptionFont	LOGFONTW	<>
iSmCaptionWidth	DWORD	?
iSmCaptionHeight	DWORD	?
lfSmCaptionFont	LOGFONTW	<>
iMenuWidth	DWORD	?
iMenuHeight	DWORD	?
lfMenuFont	LOGFONTW	<>
lfStatusFont	LOGFONTW	<>
lfMessageFont	LOGFONTW	<>
NONCLIENTMETRICSW	ends

PNONCLIENTMETRICSW typedef ptr NONCLIENTMETRICSW
LPNONCLIENTMETRICSW typedef ptr NONCLIENTMETRICSW

ifdef UNICODE
NONCLIENTMETRICS typedef NONCLIENTMETRICSW
PNONCLIENTMETRICS typedef PNONCLIENTMETRICSW
LPNONCLIENTMETRICS typedef LPNONCLIENTMETRICSW
else 
NONCLIENTMETRICS typedef NONCLIENTMETRICSA
PNONCLIENTMETRICS typedef PNONCLIENTMETRICSA
LPNONCLIENTMETRICS typedef LPNONCLIENTMETRICSA
endif 
endif 
endif 
ARW_BOTTOMLEFT	EQU	0000h
ARW_BOTTOMRIGHT	EQU	0001h
ARW_TOPLEFT	EQU	0002h
ARW_TOPRIGHT	EQU	0003h
ARW_STARTMASK	EQU	0003h
ARW_STARTRIGHT	EQU	0001h
ARW_STARTTOP	EQU	0002h
ARW_LEFT	EQU	0000h
ARW_RIGHT	EQU	0000h
ARW_UP	EQU	0004h
ARW_DOWN	EQU	0004h
ARW_HIDE	EQU	0008h
MINIMIZEDMETRICS	struct 
cbSize	DWORD	?
iWidth	DWORD	?
iHorzGap	DWORD	?
iVertGap	DWORD	?
iArrange	DWORD	?
MINIMIZEDMETRICS	ends

PMINIMIZEDMETRICS typedef ptr MINIMIZEDMETRICS
LPMINIMIZEDMETRICS typedef ptr MINIMIZEDMETRICS

ifdef _WINGDI_
ifndef NOGDI
ICONMETRICSA	struct 
cbSize	DWORD	?
iHorzSpacing	DWORD	?
iVertSpacing	DWORD	?
iTitleWrap	DWORD	?
lfFont	LOGFONTA	<>
ICONMETRICSA	ends

PICONMETRICSA typedef ptr ICONMETRICSA
LPICONMETRICSA typedef ptr ICONMETRICSA

ICONMETRICSW	struct 
cbSize	DWORD	?
iHorzSpacing	DWORD	?
iVertSpacing	DWORD	?
iTitleWrap	DWORD	?
lfFont	LOGFONTW	<>
ICONMETRICSW	ends

PICONMETRICSW typedef ptr ICONMETRICSW
LPICONMETRICSW typedef ptr ICONMETRICSW

ifdef UNICODE
ICONMETRICS typedef ICONMETRICSW
PICONMETRICS typedef PICONMETRICSW
LPICONMETRICS typedef LPICONMETRICSW
else 
ICONMETRICS typedef ICONMETRICSA
PICONMETRICS typedef PICONMETRICSA
LPICONMETRICS typedef LPICONMETRICSA
endif 
endif 
endif 
ANIMATIONINFO	struct 
cbSize	DWORD	?
iMinAnimate	DWORD	?
ANIMATIONINFO	ends

LPANIMATIONINFO typedef ptr ANIMATIONINFO

SERIALKEYSA	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
lpszActivePort	LPSTR	?
lpszPort	LPSTR	?
iBaudRate	DWORD	?
iPortState	DWORD	?
iActive	DWORD	?
SERIALKEYSA	ends

LPSERIALKEYSA typedef ptr SERIALKEYSA

SERIALKEYSW	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
lpszActivePort	LPWSTR	?
lpszPort	LPWSTR	?
iBaudRate	DWORD	?
iPortState	DWORD	?
iActive	DWORD	?
SERIALKEYSW	ends

LPSERIALKEYSW typedef ptr SERIALKEYSW

ifdef UNICODE
SERIALKEYS typedef SERIALKEYSW
LPSERIALKEYS typedef LPSERIALKEYSW
else 
SERIALKEYS typedef SERIALKEYSA
LPSERIALKEYS typedef LPSERIALKEYSA
endif 
SERKF_SERIALKEYSON	EQU	00000001h
SERKF_AVAILABLE	EQU	00000002h
SERKF_INDICATOR	EQU	00000004h
HIGHCONTRASTA	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
lpszDefaultScheme	LPSTR	?
HIGHCONTRASTA	ends

LPHIGHCONTRASTA typedef ptr HIGHCONTRASTA

HIGHCONTRASTW	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
lpszDefaultScheme	LPWSTR	?
HIGHCONTRASTW	ends

LPHIGHCONTRASTW typedef ptr HIGHCONTRASTW

ifdef UNICODE
HIGHCONTRAST typedef HIGHCONTRASTW
LPHIGHCONTRAST typedef LPHIGHCONTRASTW
else 
HIGHCONTRAST typedef HIGHCONTRASTA
LPHIGHCONTRAST typedef LPHIGHCONTRASTA
endif 
HCF_HIGHCONTRASTON	EQU	00000001h
HCF_AVAILABLE	EQU	00000002h
HCF_HOTKEYACTIVE	EQU	00000004h
HCF_CONFIRMHOTKEY	EQU	00000008h
HCF_HOTKEYSOUND	EQU	00000010h
HCF_INDICATOR	EQU	00000020h
HCF_HOTKEYAVAILABLE	EQU	00000040h
CDS_UPDATEREGISTRY	EQU	00000001h
CDS_TEST	EQU	00000002h
CDS_FULLSCREEN	EQU	00000004h
CDS_GLOBAL	EQU	00000008h
CDS_SET_PRIMARY	EQU	00000010h
CDS_VIDEOPARAMETERS	EQU	00000020h
CDS_RESET	EQU	40000000h
CDS_NORESET	EQU	10000000h
	include tvout.inc
DISP_CHANGE_SUCCESSFUL	EQU	0
DISP_CHANGE_RESTART	EQU	1
DISP_CHANGE_FAILED	EQU	- 1
DISP_CHANGE_BADMODE	EQU	- 2
DISP_CHANGE_NOTUPDATED	EQU	- 3
DISP_CHANGE_BADFLAGS	EQU	- 4
DISP_CHANGE_BADPARAM	EQU	- 5
if (_WIN32_WINNT ge 0501h)
DISP_CHANGE_BADDUALVIEW	EQU	- 6
endif 
ifdef _WINGDI_
ifndef NOGDI
@DefProto WINUSERAPI, ChangeDisplaySettingsA, stdcall, , <:LPDEVMODEA, :DWORD>, 8
@DefProto WINUSERAPI, ChangeDisplaySettingsW, stdcall, , <:LPDEVMODEW, :DWORD>, 8
ifdef UNICODE
ChangeDisplaySettings	EQU	<ChangeDisplaySettingsW>
else 
ChangeDisplaySettings	EQU	<ChangeDisplaySettingsA>
endif 
@DefProto WINUSERAPI, ChangeDisplaySettingsExA, stdcall, , <:LPSTR, :LPDEVMODEA, :HWND, :DWORD, :LPVOID>, 20
@DefProto WINUSERAPI, ChangeDisplaySettingsExW, stdcall, , <:LPWSTR, :LPDEVMODEW, :HWND, :DWORD, :LPVOID>, 20
ifdef UNICODE
ChangeDisplaySettingsEx	EQU	<ChangeDisplaySettingsExW>
else 
ChangeDisplaySettingsEx	EQU	<ChangeDisplaySettingsExA>
endif 
ENUM_CURRENT_SETTINGS	EQU	- 1
ENUM_REGISTRY_SETTINGS	EQU	- 2
@DefProto WINUSERAPI, EnumDisplaySettingsA, stdcall, , <:LPSTR, :DWORD, :LPDEVMODEA>, 12
@DefProto WINUSERAPI, EnumDisplaySettingsW, stdcall, , <:LPWSTR, :DWORD, :LPDEVMODEW>, 12
ifdef UNICODE
EnumDisplaySettings	EQU	<EnumDisplaySettingsW>
else 
EnumDisplaySettings	EQU	<EnumDisplaySettingsA>
endif 
if (WINVER ge 0500h)
@DefProto WINUSERAPI, EnumDisplaySettingsExA, stdcall, , <:LPSTR, :DWORD, :LPDEVMODEA, :DWORD>, 16
@DefProto WINUSERAPI, EnumDisplaySettingsExW, stdcall, , <:LPWSTR, :DWORD, :LPDEVMODEW, :DWORD>, 16
ifdef UNICODE
EnumDisplaySettingsEx	EQU	<EnumDisplaySettingsExW>
else 
EnumDisplaySettingsEx	EQU	<EnumDisplaySettingsExA>
endif 
EDS_RAWMODE	EQU	00000002h
@DefProto WINUSERAPI, EnumDisplayDevicesA, stdcall, , <:LPSTR, :DWORD, :PDISPLAY_DEVICEA, :DWORD>, 16
@DefProto WINUSERAPI, EnumDisplayDevicesW, stdcall, , <:LPWSTR, :DWORD, :PDISPLAY_DEVICEW, :DWORD>, 16
ifdef UNICODE
EnumDisplayDevices	EQU	<EnumDisplayDevicesW>
else 
EnumDisplayDevices	EQU	<EnumDisplayDevicesA>
endif 
endif 
endif 
endif 
@DefProto WINUSERAPI, SystemParametersInfoA, stdcall, , <:DWORD, :DWORD, :PVOID, :DWORD>, 16
@DefProto WINUSERAPI, SystemParametersInfoW, stdcall, , <:DWORD, :DWORD, :PVOID, :DWORD>, 16
ifdef UNICODE
SystemParametersInfo	EQU	<SystemParametersInfoW>
else 
SystemParametersInfo	EQU	<SystemParametersInfoA>
endif 
endif 
FILTERKEYS	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
iWaitMSec	DWORD	?
iDelayMSec	DWORD	?
iRepeatMSec	DWORD	?
iBounceMSec	DWORD	?
FILTERKEYS	ends

LPFILTERKEYS typedef ptr FILTERKEYS

FKF_FILTERKEYSON	EQU	00000001h
FKF_AVAILABLE	EQU	00000002h
FKF_HOTKEYACTIVE	EQU	00000004h
FKF_CONFIRMHOTKEY	EQU	00000008h
FKF_HOTKEYSOUND	EQU	00000010h
FKF_INDICATOR	EQU	00000020h
FKF_CLICKON	EQU	00000040h
STICKYKEYS	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
STICKYKEYS	ends

LPSTICKYKEYS typedef ptr STICKYKEYS

SKF_STICKYKEYSON	EQU	00000001h
SKF_AVAILABLE	EQU	00000002h
SKF_HOTKEYACTIVE	EQU	00000004h
SKF_CONFIRMHOTKEY	EQU	00000008h
SKF_HOTKEYSOUND	EQU	00000010h
SKF_INDICATOR	EQU	00000020h
SKF_AUDIBLEFEEDBACK	EQU	00000040h
SKF_TRISTATE	EQU	00000080h
SKF_TWOKEYSOFF	EQU	00000100h
if (_WIN32_WINNT ge 0500h)
SKF_LALTLATCHED	EQU	10000000h
SKF_LCTLLATCHED	EQU	04000000h
SKF_LSHIFTLATCHED	EQU	01000000h
SKF_RALTLATCHED	EQU	20000000h
SKF_RCTLLATCHED	EQU	08000000h
SKF_RSHIFTLATCHED	EQU	02000000h
SKF_LWINLATCHED	EQU	40000000h
SKF_RWINLATCHED	EQU	80000000h
SKF_LALTLOCKED	EQU	00100000h
SKF_LCTLLOCKED	EQU	00040000h
SKF_LSHIFTLOCKED	EQU	00010000h
SKF_RALTLOCKED	EQU	00200000h
SKF_RCTLLOCKED	EQU	00080000h
SKF_RSHIFTLOCKED	EQU	00020000h
SKF_LWINLOCKED	EQU	00400000h
SKF_RWINLOCKED	EQU	00800000h
endif 
MOUSEKEYS	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
iMaxSpeed	DWORD	?
iTimeToMaxSpeed	DWORD	?
iCtrlSpeed	DWORD	?
dwReserved1	DWORD	?
dwReserved2	DWORD	?
MOUSEKEYS	ends

LPMOUSEKEYS typedef ptr MOUSEKEYS

MKF_MOUSEKEYSON	EQU	00000001h
MKF_AVAILABLE	EQU	00000002h
MKF_HOTKEYACTIVE	EQU	00000004h
MKF_CONFIRMHOTKEY	EQU	00000008h
MKF_HOTKEYSOUND	EQU	00000010h
MKF_INDICATOR	EQU	00000020h
MKF_MODIFIERS	EQU	00000040h
MKF_REPLACENUMBERS	EQU	00000080h
if (_WIN32_WINNT ge 0500h)
MKF_LEFTBUTTONSEL	EQU	10000000h
MKF_RIGHTBUTTONSEL	EQU	20000000h
MKF_LEFTBUTTONDOWN	EQU	01000000h
MKF_RIGHTBUTTONDOWN	EQU	02000000h
MKF_MOUSEMODE	EQU	80000000h
endif 
ACCESSTIMEOUT	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
iTimeOutMSec	DWORD	?
ACCESSTIMEOUT	ends

LPACCESSTIMEOUT typedef ptr ACCESSTIMEOUT

ATF_TIMEOUTON	EQU	00000001h
ATF_ONOFFFEEDBACK	EQU	00000002h
SSGF_NONE	EQU	0
SSGF_DISPLAY	EQU	3
SSTF_NONE	EQU	0
SSTF_CHARS	EQU	1
SSTF_BORDER	EQU	2
SSTF_DISPLAY	EQU	3
SSWF_NONE	EQU	0
SSWF_TITLE	EQU	1
SSWF_WINDOW	EQU	2
SSWF_DISPLAY	EQU	3
SSWF_CUSTOM	EQU	4
SOUNDSENTRYA	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
iFSTextEffect	DWORD	?
iFSTextEffectMSec	DWORD	?
iFSTextEffectColorBits	DWORD	?
iFSGrafEffect	DWORD	?
iFSGrafEffectMSec	DWORD	?
iFSGrafEffectColor	DWORD	?
iWindowsEffect	DWORD	?
iWindowsEffectMSec	DWORD	?
lpszWindowsEffectDLL	LPSTR	?
iWindowsEffectOrdinal	DWORD	?
SOUNDSENTRYA	ends

LPSOUNDSENTRYA typedef ptr SOUNDSENTRYA

SOUNDSENTRYW	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
iFSTextEffect	DWORD	?
iFSTextEffectMSec	DWORD	?
iFSTextEffectColorBits	DWORD	?
iFSGrafEffect	DWORD	?
iFSGrafEffectMSec	DWORD	?
iFSGrafEffectColor	DWORD	?
iWindowsEffect	DWORD	?
iWindowsEffectMSec	DWORD	?
lpszWindowsEffectDLL	LPWSTR	?
iWindowsEffectOrdinal	DWORD	?
SOUNDSENTRYW	ends

LPSOUNDSENTRYW typedef ptr SOUNDSENTRYW

ifdef UNICODE
SOUNDSENTRY typedef SOUNDSENTRYW
LPSOUNDSENTRY typedef LPSOUNDSENTRYW
else 
SOUNDSENTRY typedef SOUNDSENTRYA
LPSOUNDSENTRY typedef LPSOUNDSENTRYA
endif 
SSF_SOUNDSENTRYON	EQU	00000001h
SSF_AVAILABLE	EQU	00000002h
SSF_INDICATOR	EQU	00000004h
TOGGLEKEYS	struct 
cbSize	DWORD	?
dwFlags	DWORD	?
TOGGLEKEYS	ends

LPTOGGLEKEYS typedef ptr TOGGLEKEYS

TKF_TOGGLEKEYSON	EQU	00000001h
TKF_AVAILABLE	EQU	00000002h
TKF_HOTKEYACTIVE	EQU	00000004h
TKF_CONFIRMHOTKEY	EQU	00000008h
TKF_HOTKEYSOUND	EQU	00000010h
TKF_INDICATOR	EQU	00000020h
@DefProto WINUSERAPI, SetDebugErrorLevel, stdcall, , <:DWORD>, 4
SLE_ERROR	EQU	00000001h
SLE_MINORERROR	EQU	00000002h
SLE_WARNING	EQU	00000003h
@DefProto WINUSERAPI, SetLastErrorEx, stdcall, , <:DWORD, :DWORD>, 8
if (WINVER ge 0500h)
MONITOR_DEFAULTTONULL	EQU	00000000h
MONITOR_DEFAULTTOPRIMARY	EQU	00000001h
MONITOR_DEFAULTTONEAREST	EQU	00000002h
@DefProto WINUSERAPI, MonitorFromPoint, stdcall, , <:POINT, :DWORD>, 12
@DefProto WINUSERAPI, MonitorFromRect, stdcall, , <:LPCRECT, :DWORD>, 8
@DefProto WINUSERAPI, MonitorFromWindow, stdcall, , <:HWND, :DWORD>, 8
MONITORINFOF_PRIMARY	EQU	00000001h
ifndef CCHDEVICENAME
CCHDEVICENAME	EQU	32
endif 
MONITORINFO	struct 
cbSize	DWORD	?
rcMonitor	RECT	<>
rcWork	RECT	<>
dwFlags	DWORD	?
MONITORINFO	ends

LPMONITORINFO typedef ptr MONITORINFO

ifdef __cplusplus
MONITORINFOEXA	struct 
;public:
	tagMONITORINFO <>
szDevice	CHAR CCHDEVICENAME dup (?)
MONITORINFOEXA	ends

LPMONITORINFOEXA typedef ptr MONITORINFOEXA

MONITORINFOEXW	struct 
;public:
	tagMONITORINFO <>
szDevice	WCHAR CCHDEVICENAME dup (?)
MONITORINFOEXW	ends

LPMONITORINFOEXW typedef ptr MONITORINFOEXW

ifdef UNICODE
MONITORINFOEX typedef MONITORINFOEXW
LPMONITORINFOEX typedef LPMONITORINFOEXW
else 
MONITORINFOEX typedef MONITORINFOEXA
LPMONITORINFOEX typedef LPMONITORINFOEXA
endif 
else 
MONITORINFOEXA	struct 
	MONITORINFO	<>
szDevice	CHAR CCHDEVICENAME dup (?)
MONITORINFOEXA	ends

LPMONITORINFOEXA typedef ptr MONITORINFOEXA

MONITORINFOEXW	struct 
	MONITORINFO	<>
szDevice	WCHAR CCHDEVICENAME dup (?)
MONITORINFOEXW	ends

LPMONITORINFOEXW typedef ptr MONITORINFOEXW

ifdef UNICODE
MONITORINFOEX typedef MONITORINFOEXW
LPMONITORINFOEX typedef LPMONITORINFOEXW
else 
MONITORINFOEX typedef MONITORINFOEXA
LPMONITORINFOEX typedef LPMONITORINFOEXA
endif 
endif 
@DefProto WINUSERAPI, GetMonitorInfoA, stdcall, , <:HMONITOR, :LPMONITORINFO>, 8
@DefProto WINUSERAPI, GetMonitorInfoW, stdcall, , <:HMONITOR, :LPMONITORINFO>, 8
ifdef UNICODE
GetMonitorInfo	EQU	<GetMonitorInfoW>
else 
GetMonitorInfo	EQU	<GetMonitorInfoA>
endif 
proto_MONITORENUMPROC typedef proto stdcall :HMONITOR,:HDC,:LPRECT,:LPARAM
MONITORENUMPROC typedef ptr proto_MONITORENUMPROC
@DefProto WINUSERAPI, EnumDisplayMonitors, stdcall, , <:HDC, :LPCRECT, :MONITORENUMPROC, :LPARAM>, 16
ifndef NOWINABLE
@DefProto WINUSERAPI, NotifyWinEvent, stdcall, , <:DWORD, :HWND, :SDWORD, :SDWORD>, 16
proto_WINEVENTPROC typedef proto stdcall :HWINEVENTHOOK,:DWORD,:HWND,:SDWORD,:SDWORD,:DWORD,:DWORD
WINEVENTPROC typedef ptr proto_WINEVENTPROC
@DefProto WINUSERAPI, SetWinEventHook, stdcall, , <:DWORD, :DWORD, :HMODULE, :WINEVENTPROC, :DWORD, :DWORD, :DWORD>, 28
if (_WIN32_WINNT ge 0501h)
@DefProto WINUSERAPI, IsWinEventHookInstalled, stdcall, , <:DWORD>, 4
endif 
WINEVENT_OUTOFCONTEXT	EQU	0000h
WINEVENT_SKIPOWNTHREAD	EQU	0001h
WINEVENT_SKIPOWNPROCESS	EQU	0002h
WINEVENT_INCONTEXT	EQU	0004h
@DefProto WINUSERAPI, UnhookWinEvent, stdcall, , <:HWINEVENTHOOK>, 4
CHILDID_SELF	EQU	0
INDEXID_OBJECT	EQU	0
INDEXID_CONTAINER	EQU	0
OBJID_WINDOW	EQU	00000000h
OBJID_SYSMENU	EQU	0FFFFFFFFh
OBJID_TITLEBAR	EQU	0FFFFFFFEh
OBJID_MENU	EQU	0FFFFFFFDh
OBJID_CLIENT	EQU	0FFFFFFFCh
OBJID_VSCROLL	EQU	0FFFFFFFBh
OBJID_HSCROLL	EQU	0FFFFFFFAh
OBJID_SIZEGRIP	EQU	0FFFFFFF9h
OBJID_CARET	EQU	0FFFFFFF8h
OBJID_CURSOR	EQU	0FFFFFFF7h
OBJID_ALERT	EQU	0FFFFFFF6h
OBJID_SOUND	EQU	0FFFFFFF5h
OBJID_QUERYCLASSNAMEIDX	EQU	0FFFFFFF4h
OBJID_NATIVEOM	EQU	0FFFFFFF0h
EVENT_MIN	EQU	00000001h
EVENT_MAX	EQU	7FFFFFFFh
EVENT_SYSTEM_SOUND	EQU	0001h
EVENT_SYSTEM_ALERT	EQU	0002h
EVENT_SYSTEM_FOREGROUND	EQU	0003h
EVENT_SYSTEM_MENUSTART	EQU	0004h
EVENT_SYSTEM_MENUEND	EQU	0005h
EVENT_SYSTEM_MENUPOPUPSTART	EQU	0006h
EVENT_SYSTEM_MENUPOPUPEND	EQU	0007h
EVENT_SYSTEM_CAPTURESTART	EQU	0008h
EVENT_SYSTEM_CAPTUREEND	EQU	0009h
EVENT_SYSTEM_MOVESIZESTART	EQU	000Ah
EVENT_SYSTEM_MOVESIZEEND	EQU	000Bh
EVENT_SYSTEM_CONTEXTHELPSTART	EQU	000Ch
EVENT_SYSTEM_CONTEXTHELPEND	EQU	000Dh
EVENT_SYSTEM_DRAGDROPSTART	EQU	000Eh
EVENT_SYSTEM_DRAGDROPEND	EQU	000Fh
EVENT_SYSTEM_DIALOGSTART	EQU	0010h
EVENT_SYSTEM_DIALOGEND	EQU	0011h
EVENT_SYSTEM_SCROLLINGSTART	EQU	0012h
EVENT_SYSTEM_SCROLLINGEND	EQU	0013h
EVENT_SYSTEM_SWITCHSTART	EQU	0014h
EVENT_SYSTEM_SWITCHEND	EQU	0015h
EVENT_SYSTEM_MINIMIZESTART	EQU	0016h
EVENT_SYSTEM_MINIMIZEEND	EQU	0017h
if (_WIN32_WINNT ge 0501h)
EVENT_CONSOLE_CARET	EQU	4001h
EVENT_CONSOLE_UPDATE_REGION	EQU	4002h
EVENT_CONSOLE_UPDATE_SIMPLE	EQU	4003h
EVENT_CONSOLE_UPDATE_SCROLL	EQU	4004h
EVENT_CONSOLE_LAYOUT	EQU	4005h
EVENT_CONSOLE_START_APPLICATION	EQU	4006h
EVENT_CONSOLE_END_APPLICATION	EQU	4007h
CONSOLE_APPLICATION_16BIT	EQU	0001h
CONSOLE_CARET_SELECTION	EQU	0001h
CONSOLE_CARET_VISIBLE	EQU	0002h
endif 
EVENT_OBJECT_CREATE	EQU	8000h
EVENT_OBJECT_DESTROY	EQU	8001h
EVENT_OBJECT_SHOW	EQU	8002h
EVENT_OBJECT_HIDE	EQU	8003h
EVENT_OBJECT_REORDER	EQU	8004h
EVENT_OBJECT_FOCUS	EQU	8005h
EVENT_OBJECT_SELECTION	EQU	8006h
EVENT_OBJECT_SELECTIONADD	EQU	8007h
EVENT_OBJECT_SELECTIONREMOVE	EQU	8008h
EVENT_OBJECT_SELECTIONWITHIN	EQU	8009h
EVENT_OBJECT_STATECHANGE	EQU	800Ah
EVENT_OBJECT_LOCATIONCHANGE	EQU	800Bh
EVENT_OBJECT_NAMECHANGE	EQU	800Ch
EVENT_OBJECT_DESCRIPTIONCHANGE	EQU	800Dh
EVENT_OBJECT_VALUECHANGE	EQU	800Eh
EVENT_OBJECT_PARENTCHANGE	EQU	800Fh
EVENT_OBJECT_HELPCHANGE	EQU	8010h
EVENT_OBJECT_DEFACTIONCHANGE	EQU	8011h
EVENT_OBJECT_ACCELERATORCHANGE	EQU	8012h
SOUND_SYSTEM_STARTUP	EQU	1
SOUND_SYSTEM_SHUTDOWN	EQU	2
SOUND_SYSTEM_BEEP	EQU	3
SOUND_SYSTEM_ERROR	EQU	4
SOUND_SYSTEM_QUESTION	EQU	5
SOUND_SYSTEM_WARNING	EQU	6
SOUND_SYSTEM_INFORMATION	EQU	7
SOUND_SYSTEM_MAXIMIZE	EQU	8
SOUND_SYSTEM_MINIMIZE	EQU	9
SOUND_SYSTEM_RESTOREUP	EQU	10
SOUND_SYSTEM_RESTOREDOWN	EQU	11
SOUND_SYSTEM_APPSTART	EQU	12
SOUND_SYSTEM_FAULT	EQU	13
SOUND_SYSTEM_APPEND	EQU	14
SOUND_SYSTEM_MENUCOMMAND	EQU	15
SOUND_SYSTEM_MENUPOPUP	EQU	16
CSOUND_SYSTEM	EQU	16
ALERT_SYSTEM_INFORMATIONAL	EQU	1
ALERT_SYSTEM_WARNING	EQU	2
ALERT_SYSTEM_ERROR	EQU	3
ALERT_SYSTEM_QUERY	EQU	4
ALERT_SYSTEM_CRITICAL	EQU	5
CALERT_SYSTEM	EQU	6
GUITHREADINFO	struct 
cbSize	DWORD	?
flags	DWORD	?
hwndActive	HWND	?
hwndFocus	HWND	?
hwndCapture	HWND	?
hwndMenuOwner	HWND	?
hwndMoveSize	HWND	?
hwndCaret	HWND	?
rcCaret	RECT	<>
GUITHREADINFO	ends

PGUITHREADINFO typedef ptr GUITHREADINFO
LPGUITHREADINFO typedef ptr GUITHREADINFO

GUI_CARETBLINKING	EQU	00000001h
GUI_INMOVESIZE	EQU	00000002h
GUI_INMENUMODE	EQU	00000004h
GUI_SYSTEMMENUMODE	EQU	00000008h
GUI_POPUPMENUMODE	EQU	00000010h
if (_WIN32_WINNT ge 0501h)
GUI_16BITTASK	EQU	00000020h
endif 
@DefProto WINUSERAPI, GetGUIThreadInfo, stdcall, , <:DWORD, :PGUITHREADINFO>, 8
@DefProto WINUSERAPI, GetWindowModuleFileNameA, stdcall, , <:HWND, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, GetWindowModuleFileNameW, stdcall, , <:HWND, :LPWSTR, :DWORD>, 12
ifdef UNICODE
GetWindowModuleFileName	EQU	<GetWindowModuleFileNameW>
else 
GetWindowModuleFileName	EQU	<GetWindowModuleFileNameA>
endif 
ifndef NO_STATE_FLAGS
STATE_SYSTEM_UNAVAILABLE	EQU	00000001h
STATE_SYSTEM_SELECTED	EQU	00000002h
STATE_SYSTEM_FOCUSED	EQU	00000004h
STATE_SYSTEM_PRESSED	EQU	00000008h
STATE_SYSTEM_CHECKED	EQU	00000010h
STATE_SYSTEM_MIXED	EQU	00000020h
STATE_SYSTEM_INDETERMINATE	EQU	<STATE_SYSTEM_MIXED>
STATE_SYSTEM_READONLY	EQU	00000040h
STATE_SYSTEM_HOTTRACKED	EQU	00000080h
STATE_SYSTEM_DEFAULT	EQU	00000100h
STATE_SYSTEM_EXPANDED	EQU	00000200h
STATE_SYSTEM_COLLAPSED	EQU	00000400h
STATE_SYSTEM_BUSY	EQU	00000800h
STATE_SYSTEM_FLOATING	EQU	00001000h
STATE_SYSTEM_MARQUEED	EQU	00002000h
STATE_SYSTEM_ANIMATED	EQU	00004000h
STATE_SYSTEM_INVISIBLE	EQU	00008000h
STATE_SYSTEM_OFFSCREEN	EQU	00010000h
STATE_SYSTEM_SIZEABLE	EQU	00020000h
STATE_SYSTEM_MOVEABLE	EQU	00040000h
STATE_SYSTEM_SELFVOICING	EQU	00080000h
STATE_SYSTEM_FOCUSABLE	EQU	00100000h
STATE_SYSTEM_SELECTABLE	EQU	00200000h
STATE_SYSTEM_LINKED	EQU	00400000h
STATE_SYSTEM_TRAVERSED	EQU	00800000h
STATE_SYSTEM_MULTISELECTABLE	EQU	01000000h
STATE_SYSTEM_EXTSELECTABLE	EQU	02000000h
STATE_SYSTEM_ALERT_LOW	EQU	04000000h
STATE_SYSTEM_ALERT_MEDIUM	EQU	08000000h
STATE_SYSTEM_ALERT_HIGH	EQU	10000000h
STATE_SYSTEM_PROTECTED	EQU	20000000h
STATE_SYSTEM_VALID	EQU	3FFFFFFFh
endif 
CCHILDREN_TITLEBAR	EQU	5
CCHILDREN_SCROLLBAR	EQU	5
CURSORINFO	struct 
cbSize	DWORD	?
flags	DWORD	?
hCursor	HCURSOR	?
ptScreenPos	POINT	<>
CURSORINFO	ends

PCURSORINFO typedef ptr CURSORINFO
LPCURSORINFO typedef ptr CURSORINFO

CURSOR_SHOWING	EQU	00000001h
@DefProto WINUSERAPI, GetCursorInfo, stdcall, , <:PCURSORINFO>, 4
WINDOWINFO	struct 
cbSize	DWORD	?
rcWindow	RECT	<>
rcClient	RECT	<>
dwStyle	DWORD	?
dwExStyle	DWORD	?
dwWindowStatus	DWORD	?
cxWindowBorders	DWORD	?
cyWindowBorders	DWORD	?
atomWindowType	ATOM	?
wCreatorVersion	WORD	?
WINDOWINFO	ends

PWINDOWINFO typedef ptr WINDOWINFO
LPWINDOWINFO typedef ptr WINDOWINFO

WS_ACTIVECAPTION	EQU	0001h
@DefProto WINUSERAPI, GetWindowInfo, stdcall, , <:HWND, :PWINDOWINFO>, 8
TITLEBARINFO	struct 
cbSize	DWORD	?
rcTitleBar	RECT	<>
rgstate	DWORD CCHILDREN_TITLEBAR+1 dup (?)
TITLEBARINFO	ends

PTITLEBARINFO typedef ptr TITLEBARINFO
LPTITLEBARINFO typedef ptr TITLEBARINFO

@DefProto WINUSERAPI, GetTitleBarInfo, stdcall, , <:HWND, :PTITLEBARINFO>, 8
MENUBARINFO	struct 
cbSize	DWORD	?
rcBar	RECT	<>
hMenu	HMENU	?
hwndMenu	HWND	?
MENUBARINFO_R0	RECORD	fBarFocused:1,fFocused:1
	MENUBARINFO_R0 <>
MENUBARINFO	ends

PMENUBARINFO typedef ptr MENUBARINFO
LPMENUBARINFO typedef ptr MENUBARINFO

@DefProto WINUSERAPI, GetMenuBarInfo, stdcall, , <:HWND, :SDWORD, :SDWORD, :PMENUBARINFO>, 16
SCROLLBARINFO	struct 
cbSize	DWORD	?
rcScrollBar	RECT	<>
dxyLineButton	DWORD	?
xyThumbTop	DWORD	?
xyThumbBottom	DWORD	?
reserved	DWORD	?
rgstate	DWORD CCHILDREN_SCROLLBAR+1 dup (?)
SCROLLBARINFO	ends

PSCROLLBARINFO typedef ptr SCROLLBARINFO
LPSCROLLBARINFO typedef ptr SCROLLBARINFO

@DefProto WINUSERAPI, GetScrollBarInfo, stdcall, , <:HWND, :SDWORD, :PSCROLLBARINFO>, 12
COMBOBOXINFO	struct 
cbSize	DWORD	?
rcItem	RECT	<>
rcButton	RECT	<>
stateButton	DWORD	?
hwndCombo	HWND	?
hwndItem	HWND	?
hwndList	HWND	?
COMBOBOXINFO	ends

PCOMBOBOXINFO typedef ptr COMBOBOXINFO
LPCOMBOBOXINFO typedef ptr COMBOBOXINFO

@DefProto WINUSERAPI, GetComboBoxInfo, stdcall, , <:HWND, :PCOMBOBOXINFO>, 8
GA_PARENT	EQU	1
GA_ROOT	EQU	2
GA_ROOTOWNER	EQU	3
@DefProto WINUSERAPI, GetAncestor, stdcall, , <:HWND, :DWORD>, 8
@DefProto WINUSERAPI, RealChildWindowFromPoint, stdcall, , <:HWND, :POINT>, 12
@DefProto WINUSERAPI, RealGetWindowClassA, stdcall, , <:HWND, :LPSTR, :DWORD>, 12
@DefProto WINUSERAPI, RealGetWindowClassW, stdcall, , <:HWND, :LPWSTR, :DWORD>, 12
ifdef UNICODE
RealGetWindowClass	EQU	<RealGetWindowClassW>
else 
RealGetWindowClass	EQU	<RealGetWindowClassA>
endif 
ALTTABINFO	struct 
cbSize	DWORD	?
cItems	DWORD	?
cColumns	DWORD	?
cRows	DWORD	?
iColFocus	DWORD	?
iRowFocus	DWORD	?
cxItem	DWORD	?
cyItem	DWORD	?
ptStart	POINT	<>
ALTTABINFO	ends

PALTTABINFO typedef ptr ALTTABINFO
LPALTTABINFO typedef ptr ALTTABINFO

@DefProto WINUSERAPI, GetAltTabInfoA, stdcall, , <:HWND, :DWORD, :PALTTABINFO, :LPSTR, :DWORD>, 20
@DefProto WINUSERAPI, GetAltTabInfoW, stdcall, , <:HWND, :DWORD, :PALTTABINFO, :LPWSTR, :DWORD>, 20
ifdef UNICODE
GetAltTabInfo	EQU	<GetAltTabInfoW>
else 
GetAltTabInfo	EQU	<GetAltTabInfoA>
endif 
@DefProto WINUSERAPI, GetListBoxInfo, stdcall, , <:HWND>, 4
endif 
endif 
if (_WIN32_WINNT ge 0500h)
@DefProto WINUSERAPI, LockWorkStation, stdcall, , <>, 0
endif 
if (_WIN32_WINNT ge 0500h)
@DefProto WINUSERAPI, UserHandleGrantAccess, stdcall, , <:HANDLE, :HANDLE, :BOOL>, 12
endif 
if (_WIN32_WINNT ge 0501h)
DECLARE_HANDLE( HRAWINPUT)
GET_RAWINPUT_CODE_WPARAM macro wParam
	exitm <( ( wParam )  and  0ffh ) >
	endm
RIM_INPUT	EQU	0
RIM_INPUTSINK	EQU	1
RAWINPUTHEADER	struct 
dwType	DWORD	?
dwSize	DWORD	?
hDevice	HANDLE	?
wParam	WPARAM	?
RAWINPUTHEADER	ends

PRAWINPUTHEADER typedef ptr RAWINPUTHEADER
LPRAWINPUTHEADER typedef ptr RAWINPUTHEADER

RIM_TYPEMOUSE	EQU	0
RIM_TYPEKEYBOARD	EQU	1
RIM_TYPEHID	EQU	2
RAWMOUSE	struct 
usFlags	WORD	?
union
ulButtons	DWORD	?
struct
usButtonFlags	WORD	?
usButtonData	WORD	?
ends
ends
ulRawButtons	DWORD	?
lLastX	SDWORD	?
lLastY	SDWORD	?
ulExtraInformation	DWORD	?
RAWMOUSE	ends

PRAWMOUSE typedef ptr RAWMOUSE
LPRAWMOUSE typedef ptr RAWMOUSE

RI_MOUSE_LEFT_BUTTON_DOWN	EQU	0001h
RI_MOUSE_LEFT_BUTTON_UP	EQU	0002h
RI_MOUSE_RIGHT_BUTTON_DOWN	EQU	0004h
RI_MOUSE_RIGHT_BUTTON_UP	EQU	0008h
RI_MOUSE_MIDDLE_BUTTON_DOWN	EQU	0010h
RI_MOUSE_MIDDLE_BUTTON_UP	EQU	0020h
RI_MOUSE_BUTTON_1_DOWN	EQU	<RI_MOUSE_LEFT_BUTTON_DOWN>
RI_MOUSE_BUTTON_1_UP	EQU	<RI_MOUSE_LEFT_BUTTON_UP>
RI_MOUSE_BUTTON_2_DOWN	EQU	<RI_MOUSE_RIGHT_BUTTON_DOWN>
RI_MOUSE_BUTTON_2_UP	EQU	<RI_MOUSE_RIGHT_BUTTON_UP>
RI_MOUSE_BUTTON_3_DOWN	EQU	<RI_MOUSE_MIDDLE_BUTTON_DOWN>
RI_MOUSE_BUTTON_3_UP	EQU	<RI_MOUSE_MIDDLE_BUTTON_UP>
RI_MOUSE_BUTTON_4_DOWN	EQU	0040h
RI_MOUSE_BUTTON_4_UP	EQU	0080h
RI_MOUSE_BUTTON_5_DOWN	EQU	0100h
RI_MOUSE_BUTTON_5_UP	EQU	0200h
RI_MOUSE_WHEEL	EQU	0400h
MOUSE_MOVE_RELATIVE	EQU	0
MOUSE_MOVE_ABSOLUTE	EQU	1
MOUSE_VIRTUAL_DESKTOP	EQU	02h
MOUSE_ATTRIBUTES_CHANGED	EQU	04h
RAWKEYBOARD	struct 
MakeCode	WORD	?
Flags	WORD	?
Reserved	WORD	?
VKey	WORD	?
Message	DWORD	?
ExtraInformation	DWORD	?
RAWKEYBOARD	ends

PRAWKEYBOARD typedef ptr RAWKEYBOARD
LPRAWKEYBOARD typedef ptr RAWKEYBOARD

KEYBOARD_OVERRUN_MAKE_CODE	EQU	0FFh
RI_KEY_MAKE	EQU	0
RI_KEY_BREAK	EQU	1
RI_KEY_E0	EQU	2
RI_KEY_E1	EQU	4
RI_KEY_TERMSRV_SET_LED	EQU	8
RI_KEY_TERMSRV_SHADOW	EQU	10h
RAWHID	struct 
dwSizeHid	DWORD	?
dwCount	DWORD	?
bRawData	BYTE 1 dup (?)
RAWHID	ends

PRAWHID typedef ptr RAWHID
LPRAWHID typedef ptr RAWHID

RAWINPUT	struct 
header	RAWINPUTHEADER	<>
union data
mouse	RAWMOUSE	<>
keyboard	RAWKEYBOARD	<>
hid	RAWHID	<>
ends
RAWINPUT	ends

PRAWINPUT typedef ptr RAWINPUT
LPRAWINPUT typedef ptr RAWINPUT

ifdef _WIN64
RAWINPUT_ALIGN macro x
	exitm <( ( ( x ) + sizeof ( QWORD ) - 1 )  and   not  ( sizeof ( QWORD ) - 1 ) ) >
	endm
else 
RAWINPUT_ALIGN macro x
	exitm <( ( ( x ) + sizeof ( DWORD ) - 1 )  and   not  ( sizeof ( DWORD ) - 1 ) ) >
	endm
endif 
NEXTRAWINPUTBLOCK macro ptr
	exitm <( ( PRAWINPUT ) RAWINPUT_ALIGN ( ( ( ptr ) + ( ptr ) -> header.dwSize ) ) ) >
	endm
RID_INPUT	EQU	10000003h
RID_HEADER	EQU	10000005h
@DefProto WINUSERAPI, GetRawInputData, stdcall, , <:HRAWINPUT, :DWORD, :LPVOID, :PUINT, :DWORD>, 20
RIDI_PREPARSEDDATA	EQU	20000005h
RIDI_DEVICENAME	EQU	20000007h
RIDI_DEVICEINFO	EQU	2000000bh
RID_DEVICE_INFO_MOUSE	struct 
dwId	DWORD	?
dwNumberOfButtons	DWORD	?
dwSampleRate	DWORD	?
RID_DEVICE_INFO_MOUSE	ends

PRID_DEVICE_INFO_MOUSE typedef ptr RID_DEVICE_INFO_MOUSE

RID_DEVICE_INFO_KEYBOARD	struct 
dwType	DWORD	?
dwSubType	DWORD	?
dwKeyboardMode	DWORD	?
dwNumberOfFunctionKeys	DWORD	?
dwNumberOfIndicators	DWORD	?
dwNumberOfKeysTotal	DWORD	?
RID_DEVICE_INFO_KEYBOARD	ends

PRID_DEVICE_INFO_KEYBOARD typedef ptr RID_DEVICE_INFO_KEYBOARD

RID_DEVICE_INFO_HID	struct 
dwVendorId	DWORD	?
dwProductId	DWORD	?
dwVersionNumber	DWORD	?
usUsagePage	WORD	?
usUsage	WORD	?
RID_DEVICE_INFO_HID	ends

PRID_DEVICE_INFO_HID typedef ptr RID_DEVICE_INFO_HID

RID_DEVICE_INFO	struct 
cbSize	DWORD	?
dwType	DWORD	?
union
mouse	RID_DEVICE_INFO_MOUSE	<>
keyboard	RID_DEVICE_INFO_KEYBOARD	<>
hid	RID_DEVICE_INFO_HID	<>
ends
RID_DEVICE_INFO	ends

PRID_DEVICE_INFO typedef ptr RID_DEVICE_INFO
LPRID_DEVICE_INFO typedef ptr RID_DEVICE_INFO

@DefProto WINUSERAPI, GetRawInputDeviceInfoA, stdcall, , <:HANDLE, :DWORD, :LPVOID, :PUINT>, 16
@DefProto WINUSERAPI, GetRawInputDeviceInfoW, stdcall, , <:HANDLE, :DWORD, :LPVOID, :PUINT>, 16
ifdef UNICODE
GetRawInputDeviceInfo	EQU	<GetRawInputDeviceInfoW>
else 
GetRawInputDeviceInfo	EQU	<GetRawInputDeviceInfoA>
endif 
@DefProto WINUSERAPI, GetRawInputBuffer, stdcall, , <:PRAWINPUT, :PUINT, :DWORD>, 12
RAWINPUTDEVICE	struct 
usUsagePage	WORD	?
usUsage	WORD	?
dwFlags	DWORD	?
hwndTarget	HWND	?
RAWINPUTDEVICE	ends

PRAWINPUTDEVICE typedef ptr RAWINPUTDEVICE
LPRAWINPUTDEVICE typedef ptr RAWINPUTDEVICE

PCRAWINPUTDEVICE typedef ptr RAWINPUTDEVICE
RIDEV_REMOVE	EQU	00000001h
RIDEV_EXCLUDE	EQU	00000010h
RIDEV_PAGEONLY	EQU	00000020h
RIDEV_NOLEGACY	EQU	00000030h
RIDEV_CAPTUREMOUSE	EQU	00000200h
RIDEV_NOHOTKEYS	EQU	00000200h
RIDEV_EXMODEMASK	EQU	000000F0h
RIDEV_EXMODE macro mode
	exitm <( ( mode )  and  RIDEV_EXMODEMASK ) >
	endm
@DefProto WINUSERAPI, RegisterRawInputDevices, stdcall, , <:PCRAWINPUTDEVICE, :DWORD, :DWORD>, 12
@DefProto WINUSERAPI, GetRegisteredRawInputDevices, stdcall, , <:PRAWINPUTDEVICE, :PUINT, :DWORD>, 12
RAWINPUTDEVICELIST	struct 
hDevice	HANDLE	?
dwType	DWORD	?
RAWINPUTDEVICELIST	ends

PRAWINPUTDEVICELIST typedef ptr RAWINPUTDEVICELIST

@DefProto WINUSERAPI, GetRawInputDeviceList, stdcall, , <:PRAWINPUTDEVICELIST, :PUINT, :DWORD>, 12
@DefProto WINUSERAPI, DefRawInputProc, stdcall, , <:ptr PRAWINPUT, :DWORD, :DWORD>, 12
endif 
if  0 eq defined(RC_INVOKED)
if ISOLATION_AWARE_ENABLED
	include winuser.inl
endif 
endif 
ifdef __cplusplus
;}
endif 
endif 

;--- errors: 0
;--- end of file ---
