2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS user32.dll
4 * FILE: include/user32.h
5 * PURPOSE: Global user32 definitions
10 #include <win32k/win32k.h>
12 extern HINSTANCE User32Instance
;
14 typedef struct _USER32_THREAD_DATA
17 HKL KeyboardLayoutHandle
;
18 } USER32_THREAD_DATA
, *PUSER32_THREAD_DATA
;
20 PUSER32_THREAD_DATA
User32GetThreadData();
22 /* a copy of this structure is in subsys/win32k/include/caret.h */
23 typedef struct _THRDCARETINFO
31 } THRDCARETINFO
, *PTHRDCARETINFO
;
33 void InitStockObjects(void);
34 VOID
CreateFrameBrushes(VOID
);
35 VOID
DeleteFrameBrushes(VOID
);
36 void DrawCaret(HWND hWnd
, PTHRDCARETINFO CaretInfo
);
38 #define NtUserMsqSetWakeMask(dwWaitMask) \
39 (HANDLE)NtUserCallOneParam(dwWaitMask, ONEPARAM_ROUTINE_MSQSETWAKEMASK)
41 #define NtUserMsqClearWakeMask() \
42 NtUserCallNoParam(NOPARAM_ROUTINE_MSQCLEARWAKEMASK)
44 LONG WINAPI
RegCloseKey(HKEY
);
45 LONG WINAPI
RegOpenKeyExW(HKEY
,LPCWSTR
,DWORD
,REGSAM
,PHKEY
);
46 LONG WINAPI
RegQueryValueExW(HKEY
,LPCWSTR
,LPDWORD
,LPDWORD
,LPBYTE
,LPDWORD
);
49 NTSTATUS STDCALL
ZwCallbackReturn(PVOID Result
,
54 #define NtUserAnyPopup() \
55 (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_ANYPOPUP)
57 #define NtUserValidateRgn(hWnd, hRgn) \
58 (BOOL)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN)
60 #define NtUserSetWindowContextHelpId(hWnd, dwContextHelpId) \
61 (BOOL)NtUserCallTwoParam((DWORD)hwnd, dwContextHelpId, TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID)
63 #define NtUserSetCaretPos(X, Y) \
64 (BOOL)NtUserCallTwoParam((DWORD)X, (DWORD)Y, TWOPARAM_ROUTINE_SETCARETPOS)
66 #define NtUserSetGUIThreadHandle(field, hwnd) \
67 (BOOL)NtUserCallTwoParam((DWORD)field, (DWORD)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE)
69 #define NtUserSetMenuItemRect(menu, mir) \
70 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)mir, TWOPARAM_ROUTINE_SETMENUITEMRECT)
72 #define NtUserSetMenuBarHeight(menu, height) \
73 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT)
75 #define NtUserGetWindowInfo(hwnd, pwi) \
76 (BOOL)NtUserCallTwoParam((DWORD)hwnd, (DWORD)pwi, TWOPARAM_ROUTINE_GETWINDOWINFO)
78 #define NtUserRegisterLogonProcess(hproc, x) \
79 (BOOL)NtUserCallTwoParam((DWORD)hproc, (DWORD)x, TWOPARAM_ROUTINE_REGISTERLOGONPROC)
81 #define NtUserGetSysColorBrushes(HBrushes, count) \
82 (BOOL)NtUserCallTwoParam((DWORD)(HBrushes), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES)
84 #define NtUserGetSysColorPens(HPens, count) \
85 (BOOL)NtUserCallTwoParam((DWORD)(HPens), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORPENS)
87 #define NtUserGetSysColors(ColorRefs, count) \
88 (BOOL)NtUserCallTwoParam((DWORD)(ColorRefs), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORS)
90 #define NtUserSetSysColors(ColorRefs, count) \
91 (BOOL)NtUserCallTwoParam((DWORD)(ColorRefs), (DWORD)(count), TWOPARAM_ROUTINE_SETSYSCOLORS)
93 #define NtUserSetCaretBlinkTime(uMSeconds) \
94 (BOOL)NtUserCallOneParam((DWORD)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME)
96 #define NtUserEnumClipboardFormats(format) \
97 (UINT)NtUserCallOneParam(format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS)
99 #define NtUserWindowFromDC(hDC) \
100 (HWND)NtUserCallOneParam((DWORD)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC)
102 #define NtUserSwitchCaretShowing(CaretInfo) \
103 (BOOL)NtUserCallOneParam((DWORD)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING)
105 #define NtUserSwapMouseButton(fSwap) \
106 (BOOL)NtUserCallOneParam((DWORD)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON)
108 #define NtUserGetMenu(hWnd) \
109 (HMENU)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_GETMENU)
111 #define NtUserSetMessageExtraInfo(lParam) \
112 (LPARAM)NtUserCallOneParam((DWORD)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO)
114 #define NtUserIsWindowUnicode(hWnd) \
115 (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWUNICODE)
117 #define NtUserGetWindowContextHelpId(hwnd) \
118 NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID)
120 #define NtUserGetWindowInstance(hwnd) \
121 (HINSTANCE)NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWINDOWINSTANCE)
123 #define NtUserGetCursorPos(lpPoint) \
124 (BOOL)NtUserCallOneParam((DWORD)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION)
126 #define NtUserIsWindowInDestroy(hWnd) \
127 (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWINDESTROY)
129 #define NtUserEnableProcessWindowGhosting(bEnable) \
130 NtUserCallOneParam((DWORD)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING)