CONSTANT: MF_RIGHTJUSTIFY HEX: 4000
CONSTANT: MF_MOUSESELECT HEX: 8000
+CONSTANT: SPI_GETBEEP 1
+CONSTANT: SPI_SETBEEP 2
+CONSTANT: SPI_GETMOUSE 3
+CONSTANT: SPI_SETMOUSE 4
+CONSTANT: SPI_GETBORDER 5
+CONSTANT: SPI_SETBORDER 6
+CONSTANT: SPI_GETKEYBOARDSPEED 10
+CONSTANT: SPI_SETKEYBOARDSPEED 11
+CONSTANT: SPI_LANGDRIVER 12
+CONSTANT: SPI_ICONHORIZONTALSPACING 13
+CONSTANT: SPI_GETSCREENSAVETIMEOUT 14
+CONSTANT: SPI_SETSCREENSAVETIMEOUT 15
+CONSTANT: SPI_GETSCREENSAVEACTIVE 16
+CONSTANT: SPI_SETSCREENSAVEACTIVE 17
+CONSTANT: SPI_GETGRIDGRANULARITY 18
+CONSTANT: SPI_SETGRIDGRANULARITY 19
+CONSTANT: SPI_SETDESKWALLPAPER 20
+CONSTANT: SPI_SETDESKPATTERN 21
+CONSTANT: SPI_GETKEYBOARDDELAY 22
+CONSTANT: SPI_SETKEYBOARDDELAY 23
+CONSTANT: SPI_ICONVERTICALSPACING 24
+CONSTANT: SPI_GETICONTITLEWRAP 25
+CONSTANT: SPI_SETICONTITLEWRAP 26
+CONSTANT: SPI_GETMENUDROPALIGNMENT 27
+CONSTANT: SPI_SETMENUDROPALIGNMENT 28
+CONSTANT: SPI_SETDOUBLECLKWIDTH 29
+CONSTANT: SPI_SETDOUBLECLKHEIGHT 30
+CONSTANT: SPI_GETICONTITLELOGFONT 31
+CONSTANT: SPI_SETDOUBLECLICKTIME 32
+CONSTANT: SPI_SETMOUSEBUTTONSWAP 33
+CONSTANT: SPI_SETICONTITLELOGFONT 34
+CONSTANT: SPI_GETFASTTASKSWITCH 35
+CONSTANT: SPI_SETFASTTASKSWITCH 36
+CONSTANT: SPI_SETDRAGFULLWINDOWS 37
+CONSTANT: SPI_GETDRAGFULLWINDOWS 38
+
+CONSTANT: SPI_GETFILTERKEYS 50
+CONSTANT: SPI_SETFILTERKEYS 51
+CONSTANT: SPI_GETTOGGLEKEYS 52
+CONSTANT: SPI_SETTOGGLEKEYS 53
+CONSTANT: SPI_GETMOUSEKEYS 54
+CONSTANT: SPI_SETMOUSEKEYS 55
+CONSTANT: SPI_GETSHOWSOUNDS 56
+CONSTANT: SPI_SETSHOWSOUNDS 57
+CONSTANT: SPI_GETSTICKYKEYS 58
+CONSTANT: SPI_SETSTICKYKEYS 59
+CONSTANT: SPI_GETACCESSTIMEOUT 60
+CONSTANT: SPI_SETACCESSTIMEOUT 61
+
+CONSTANT: SPI_GETSOUNDSENTRY 64
+CONSTANT: SPI_SETSOUNDSENTRY 65
+
+! WINVER >= 0x0400
+CONSTANT: SPI_GETNONCLIENTMETRICS 41
+CONSTANT: SPI_SETNONCLIENTMETRICS 42
+CONSTANT: SPI_GETMINIMIZEDMETRICS 43
+CONSTANT: SPI_SETMINIMIZEDMETRICS 44
+CONSTANT: SPI_GETICONMETRICS 45
+CONSTANT: SPI_SETICONMETRICS 46
+CONSTANT: SPI_SETWORKAREA 47
+CONSTANT: SPI_GETWORKAREA 48
+CONSTANT: SPI_SETPENWINDOWS 49
+
+CONSTANT: SPI_GETSERIALKEYS 62
+CONSTANT: SPI_SETSERIALKEYS 63
+CONSTANT: SPI_GETHIGHCONTRAST 66
+CONSTANT: SPI_SETHIGHCONTRAST 67
+CONSTANT: SPI_GETKEYBOARDPREF 68
+CONSTANT: SPI_SETKEYBOARDPREF 69
+CONSTANT: SPI_GETSCREENREADER 70
+CONSTANT: SPI_SETSCREENREADER 71
+CONSTANT: SPI_GETANIMATION 72
+CONSTANT: SPI_SETANIMATION 73
+CONSTANT: SPI_GETFONTSMOOTHING 74
+CONSTANT: SPI_SETFONTSMOOTHING 75
+CONSTANT: SPI_SETDRAGWIDTH 76
+CONSTANT: SPI_SETDRAGHEIGHT 77
+CONSTANT: SPI_SETHANDHELD 78
+CONSTANT: SPI_GETLOWPOWERTIMEOUT 79
+CONSTANT: SPI_GETPOWEROFFTIMEOUT 80
+CONSTANT: SPI_SETLOWPOWERTIMEOUT 81
+CONSTANT: SPI_SETPOWEROFFTIMEOUT 82
+CONSTANT: SPI_GETLOWPOWERACTIVE 83
+CONSTANT: SPI_GETPOWEROFFACTIVE 84
+CONSTANT: SPI_SETLOWPOWERACTIVE 85
+CONSTANT: SPI_SETPOWEROFFACTIVE 86
+CONSTANT: SPI_SETCURSORS 87
+CONSTANT: SPI_SETICONS 88
+CONSTANT: SPI_GETDEFAULTINPUTLANG 89
+CONSTANT: SPI_SETDEFAULTINPUTLANG 90
+CONSTANT: SPI_SETLANGTOGGLE 91
+CONSTANT: SPI_GETWINDOWSEXTENSION 92
+CONSTANT: SPI_SETMOUSETRAILS 93
+CONSTANT: SPI_GETMOUSETRAILS 94
+CONSTANT: SPI_SETSCREENSAVERRUNNING 97
+ALIAS: SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
+
+! WIN32_WINNT >= 0x0400 || WIN32_WINDOWS > 0x0400
+CONSTANT: SPI_GETMOUSEHOVERWIDTH 98
+CONSTANT: SPI_SETMOUSEHOVERWIDTH 99
+CONSTANT: SPI_GETMOUSEHOVERHEIGHT 100
+CONSTANT: SPI_SETMOUSEHOVERHEIGHT 101
+CONSTANT: SPI_GETMOUSEHOVERTIME 102
+CONSTANT: SPI_SETMOUSEHOVERTIME 103
+CONSTANT: SPI_GETWHEELSCROLLLINES 104
+CONSTANT: SPI_SETWHEELSCROLLLINES 105
+
+CONSTANT: SPI_GETSHOWIMEUI 110
+CONSTANT: SPI_SETSHOWIMEUI 111
+
+! WINVER >= 0x0500
+CONSTANT: SPI_GETMOUSESPEED 112
+CONSTANT: SPI_SETMOUSESPEED 113
+CONSTANT: SPI_GETSCREENSAVERRUNNING 114
+
+CONSTANT: SPI_GETACTIVEWINDOWTRACKING HEX: 1000
+CONSTANT: SPI_SETACTIVEWINDOWTRACKING HEX: 1001
+CONSTANT: SPI_GETMENUANIMATION HEX: 1002
+CONSTANT: SPI_SETMENUANIMATION HEX: 1003
+CONSTANT: SPI_GETCOMBOBOXANIMATION HEX: 1004
+CONSTANT: SPI_SETCOMBOBOXANIMATION HEX: 1005
+CONSTANT: SPI_GETLISTBOXSMOOTHSCROLLING HEX: 1006
+CONSTANT: SPI_SETLISTBOXSMOOTHSCROLLING HEX: 1007
+CONSTANT: SPI_GETGRADIENTCAPTIONS HEX: 1008
+CONSTANT: SPI_SETGRADIENTCAPTIONS HEX: 1009
+CONSTANT: SPI_GETMENUUNDERLINES HEX: 100A
+CONSTANT: SPI_SETMENUUNDERLINES HEX: 100B
+CONSTANT: SPI_GETACTIVEWNDTRKZORDER HEX: 100C
+CONSTANT: SPI_SETACTIVEWNDTRKZORDER HEX: 100D
+CONSTANT: SPI_GETHOTTRACKING HEX: 100E
+CONSTANT: SPI_SETHOTTRACKING HEX: 100F
+CONSTANT: SPI_GETFOREGROUNDLOCKTIMEOUT HEX: 2000
+CONSTANT: SPI_SETFOREGROUNDLOCKTIMEOUT HEX: 2001
+CONSTANT: SPI_GETACTIVEWNDTRKTIMEOUT HEX: 2002
+CONSTANT: SPI_SETACTIVEWNDTRKTIMEOUT HEX: 2003
+CONSTANT: SPI_GETFOREGROUNDFLASHCOUNT HEX: 2004
+CONSTANT: SPI_SETFOREGROUNDFLASHCOUNT HEX: 2005
+
+! SystemParamInfo Flags
+CONSTANT: SPIF_UPDATEINIFILE 1
+CONSTANT: SPIF_SENDWININICHANGE 2
+ALIAS: SPIF_SENDCHANGE SPIF_SENDWININICHANGE
+
+
TYPEDEF: HANDLE HRAWINPUT
: GET_RAWINPUT_CODE_WPARAM ( wParam -- n ) HEX: ff bitand ; inline
{ dwType DWORD } ;
TYPEDEF: RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST
+CONSTANT: CCHFORMNAME 32
+
+CONSTANT: CDS_UPDATEREGISTRY HEX: 00000001
+CONSTANT: CDS_TEST HEX: 00000002
+CONSTANT: CDS_FULLSCREEN HEX: 00000004
+CONSTANT: CDS_GLOBAL HEX: 00000008
+CONSTANT: CDS_SET_PRIMARY HEX: 00000010
+CONSTANT: CDS_RESET HEX: 40000000
+CONSTANT: CDS_SETRECT HEX: 20000000
+CONSTANT: CDS_NORESET HEX: 10000000
+
+CONSTANT: DISP_CHANGE_SUCCESSFUL 0
+CONSTANT: DISP_CHANGE_RESTART 1
+CONSTANT: DISP_CHANGE_FAILED -1
+CONSTANT: DISP_CHANGE_BADMODE -2
+CONSTANT: DISP_CHANGE_NOTUPDATED -3
+CONSTANT: DISP_CHANGE_BADFLAGS -4
+CONSTANT: DISP_CHANGE_BADPARAM -5
+
+
+
+STRUCT: DEVMODE
+ { dmDeviceName TCHAR[CCHDEVICENAME] }
+ { dmSpecVersion WORD }
+ { dmDriverVersion WORD }
+ { dmSize WORD }
+ { dmDriverExtra WORD }
+ { dmFields DWORD }
+
+ { dmOrientation short }
+ { dmPaperSize short }
+ { dmPaperLength short }
+ { dmPaperWidth short }
+ { dmScale short }
+ { dmCopies short }
+ { dmDefaultSource short }
+ { dmPrintQuality short }
+
+ { dmColor short }
+ { dmDuplex short }
+ { dmYResolution short }
+ { dmTTOption short }
+ { dmCollate short }
+ { dmFormName TCHAR[CCHFORMNAME] }
+ { dmLogPixels WORD }
+ { dmBitsPerPel DWORD }
+ { dmPelsWidth DWORD }
+ { dmPelsHeight DWORD }
+ { dmDisplayFlags DWORD }
+ { dmDisplayFrequency DWORD }
+ { dmiCMMethod DWORD }
+ { dmICMIntent DWORD }
+
+ { dmMediaType DWORD }
+ { dmDitherType DWORD }
+ { dmReserved1 DWORD }
+ { dmReserved2 DWORD }
+ { dmPanningWidth DWORD } ;
+
+! union { DWORD dmDisplayFlags; DWORD dmNup; } ;
+ ! union {
+ ! struct {
+ ! short dmOrientation;
+ ! short dmPaperSize;
+ ! short dmPaperLength;
+ ! short dmPaperWidth;
+ ! short dmScale;
+ ! short dmCopies;
+ ! short dmDefaultSource;
+ ! short dmPrintQuality;
+ ! } ;
+ ! struct {
+ ! POINTL dmPosition;
+ ! DWORD dmDisplayOrientation;
+ ! DWORD dmDisplayFixedOutput;
+ ! } ;
+ ! } ;
+
+TYPEDEF: DEVMODE* PDEVMODE
+TYPEDEF: DEVMODE* LPDEVMODE
+
LIBRARY: user32
FUNCTION: HKL ActivateKeyboardLayout ( HKL hkl, UINT Flags ) ;
! FUNCTION: CascadeChildWindows
! FUNCTION: CascadeWindows
! FUNCTION: ChangeClipboardChain
-! FUNCTION: ChangeDisplaySettingsA
-! FUNCTION: ChangeDisplaySettingsExA
-! FUNCTION: ChangeDisplaySettingsExW
-! FUNCTION: ChangeDisplaySettingsW
+FUNCTION: LONG ChangeDisplaySettingsExW ( LPCTSTR lpszDeviceName, DEVMODE *lpDevMode, HWND hwnd, DWORD dwFlags, LPVOID lParam ) ;
+FUNCTION: LONG ChangeDisplaySettingsW ( DEVMODE *lpDevMode, DWORD dwFlags ) ;
+ALIAS: ChangeDisplaySettingsEx ChangeDisplaySettingsExW
+ALIAS: ChangeDisplaySettings ChangeDisplaySettingsW
! FUNCTION: ChangeMenuA
! FUNCTION: ChangeMenuW
! FUNCTION: CharLowerA
! FUNCTION: EnumDisplaySettingsA
! FUNCTION: EnumDisplaySettingsExA
! FUNCTION: EnumDisplaySettingsExW
-! FUNCTION: EnumDisplaySettingsW
+FUNCTION: BOOL EnumDisplaySettingsW ( LPCTSTR lpszDeviceName, DWORD iModeNum, DEVMODE *lpDevMode ) ;
+ALIAS: EnumDisplaySettings EnumDisplaySettingsW
! FUNCTION: EnumPropsA
! FUNCTION: EnumPropsExA
! FUNCTION: EnumPropsExW
! FUNCTION: ExcludeUpdateRgn
! FUNCTION: ExitWindowsEx
FUNCTION: int FillRect ( HDC hDC, RECT* lprc, HBRUSH hbr ) ;
-FUNCTION: HWND FindWindowA ( char* lpClassName, char* lpWindowName ) ;
-FUNCTION: HWND FindWindowExA ( HWND hwndParent, HWND childAfter, char* lpClassName, char* lpWindowName ) ;
+FUNCTION: HWND FindWindowA ( c-string lpClassName, c-string lpWindowName ) ;
+FUNCTION: HWND FindWindowExA ( HWND hwndParent, HWND childAfter, c-string lpClassName, c-string lpWindowName ) ;
! FUNCTION: FindWindowExW
! FUNCTION: FindWindowW
! FUNCTION: FlashWindow
! FUNCTION: GetCursorPos
FUNCTION: HDC GetDC ( HWND hWnd ) ;
FUNCTION: HDC GetDCEx ( HWND hWnd, HRGN hrgnClip, DWORD flags ) ;
-! FUNCTION: GetDesktopWindow
+FUNCTION: HWND GetDesktopWindow ( ) ;
! FUNCTION: GetDialogBaseUnits
! FUNCTION: GetDlgCtrlID
! FUNCTION: GetDlgItem
! FUNCTION: GetWindowLongW
FUNCTION: LONG_PTR GetWindowLongW ( HANDLE hWnd, int index ) ;
ALIAS: GetWindowLong GetWindowLongW
+
+FUNCTION: LONG_PTR GetWindowLongPtr ( HWND hWnd, int nIndex ) ;
! FUNCTION: GetWindowModuleFileName
! FUNCTION: GetWindowModuleFileNameA
! FUNCTION: GetWindowModuleFileNameW
! FUNCTION: SetWindowPlacement
FUNCTION: BOOL SetWindowPos ( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags ) ;
+FUNCTION: LONG_PTR SetWindowLongPtr ( HWND hWnd, int nIndex, LONG_PTR dwNewLong ) ;
+
: HWND_BOTTOM ( -- alien ) 1 <alien> ;
: HWND_NOTOPMOST ( -- alien ) -2 <alien> ;
CONSTANT: HWND_TOP f
! FUNCTION: SwitchDesktop
! FUNCTION: SwitchToThisWindow
! FUNCTION: SystemParametersInfoA
-! FUNCTION: SystemParametersInfoW
+
+FUNCTION: BOOL SystemParametersInfoW ( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni ) ;
+ALIAS: SystemParametersInfo SystemParametersInfoW
+
! FUNCTION: TabbedTextOutA
! FUNCTION: TabbedTextOutW
! FUNCTION: TileChildWindows