]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/user32/user32.factor
Add more user32 bindings
[factor.git] / basis / windows / user32 / user32.factor
index 15eb9ba2f50c8dadb8a810293db0871f9508ea5d..b9d5cc95c4a8db591ceb0d0d86254c0bb3372019 100644 (file)
@@ -608,6 +608,150 @@ CONSTANT: MF_HELP            HEX: 4000
 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
 
@@ -783,6 +927,87 @@ STRUCT: RAWINPUTDEVICELIST
     { 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 ) ;
@@ -821,10 +1046,10 @@ FUNCTION: HDC BeginPaint ( HWND hwnd, LPPAINTSTRUCT lpPaint ) ;
 ! 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
@@ -1029,7 +1254,8 @@ FUNCTION: UINT EnumClipboardFormats ( UINT format ) ;
 ! 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
@@ -1042,8 +1268,8 @@ FUNCTION: UINT EnumClipboardFormats ( UINT format ) ;
 ! 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
@@ -1092,7 +1318,7 @@ FUNCTION: DWORD GetClipboardSequenceNumber ( ) ;
 ! 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
@@ -1201,6 +1427,8 @@ FUNCTION: HWND GetWindow ( HWND hWnd, UINT uCmd ) ;
 ! 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
@@ -1548,6 +1776,8 @@ ALIAS: SetWindowLong SetWindowLongW
 ! 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
@@ -1578,7 +1808,10 @@ FUNCTION: BOOL ShowWindow ( HWND hWnd, int nCmdShow ) ;
 ! 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