From 31b77781aef97d08431a99829f62c6f393acc9b0 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 25 Feb 2010 14:36:12 -0600 Subject: [PATCH] Add more user32 bindings --- basis/windows/user32/user32.factor | 98 ++++++++++++++++++++++++++++-- 1 file changed, 92 insertions(+), 6 deletions(-) diff --git a/basis/windows/user32/user32.factor b/basis/windows/user32/user32.factor index 9908bb1f1b..b9d5cc95c4 100644 --- a/basis/windows/user32/user32.factor +++ b/basis/windows/user32/user32.factor @@ -927,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 ) ; @@ -965,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 @@ -1173,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 @@ -1236,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 @@ -1345,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 @@ -1692,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 ; : HWND_NOTOPMOST ( -- alien ) -2 ; CONSTANT: HWND_TOP f -- 2.34.1