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 LONG WINAPI
RegCloseKey(HKEY
);
39 LONG WINAPI
RegOpenKeyExW(HKEY
,LPCWSTR
,DWORD
,REGSAM
,PHKEY
);
40 LONG WINAPI
RegQueryValueExW(HKEY
,LPCWSTR
,LPDWORD
,LPDWORD
,LPBYTE
,LPDWORD
);
43 NTSTATUS STDCALL
ZwCallbackReturn(PVOID Result
,
48 #define NtUserAnyPopup() \
49 (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_ANYPOPUP)
51 #define NtUserValidateRgn(hWnd, hRgn) \
52 (BOOL)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN)
54 #define NtUserSetWindowContextHelpId(hWnd, dwContextHelpId) \
55 (BOOL)NtUserCallTwoParam((DWORD)hwnd, dwContextHelpId, TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID)
57 #define NtUserSetCaretPos(X, Y) \
58 (BOOL)NtUserCallTwoParam((DWORD)X, (DWORD)Y, TWOPARAM_ROUTINE_SETCARETPOS)
60 #define NtUserSetGUIThreadHandle(field, hwnd) \
61 (BOOL)NtUserCallTwoParam((DWORD)field, (DWORD)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE)
63 #define NtUserSetMenuItemRect(menu, mir) \
64 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)mir, TWOPARAM_ROUTINE_SETMENUITEMRECT)
66 #define NtUserSetMenuBarHeight(menu, height) \
67 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT)
69 #define NtUserGetWindowInfo(hwnd, pwi) \
70 (BOOL)NtUserCallTwoParam((DWORD)hwnd, (DWORD)pwi, TWOPARAM_ROUTINE_GETWINDOWINFO)
72 #define NtUserRegisterLogonProcess(hproc, x) \
73 (BOOL)NtUserCallTwoParam((DWORD)hproc, (DWORD)x, TWOPARAM_ROUTINE_REGISTERLOGONPROC)
75 #define NtUserGetSysColorBrushes(HBrushes, count) \
76 (BOOL)NtUserCallTwoParam((DWORD)(HBrushes), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES)
78 #define NtUserGetSysColorPens(HPens, count) \
79 (BOOL)NtUserCallTwoParam((DWORD)(HPens), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORPENS)
81 #define NtUserGetSysColors(ColorRefs, count) \
82 (BOOL)NtUserCallTwoParam((DWORD)(ColorRefs), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORS)
84 #define NtUserSetSysColors(ColorRefs, count) \
85 (BOOL)NtUserCallTwoParam((DWORD)(ColorRefs), (DWORD)(count), TWOPARAM_ROUTINE_SETSYSCOLORS)
87 #define NtUserSetCaretBlinkTime(uMSeconds) \
88 (BOOL)NtUserCallOneParam((DWORD)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME)
90 #define NtUserEnumClipboardFormats(format) \
91 (UINT)NtUserCallOneParam(format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS)
93 #define NtUserWindowFromDC(hDC) \
94 (HWND)NtUserCallOneParam((DWORD)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC)
96 #define NtUserSwitchCaretShowing(CaretInfo) \
97 (BOOL)NtUserCallOneParam((DWORD)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING)
99 #define NtUserSwapMouseButton(fSwap) \
100 (BOOL)NtUserCallOneParam((DWORD)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON)
102 #define NtUserGetMenu(hWnd) \
103 (HMENU)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_GETMENU)
105 #define NtUserSetMessageExtraInfo(lParam) \
106 (LPARAM)NtUserCallOneParam((DWORD)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO)
108 #define NtUserIsWindowUnicode(hWnd) \
109 (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWUNICODE)
111 #define NtUserGetWindowContextHelpId(hwnd) \
112 NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID)
114 #define NtUserGetWindowInstance(hwnd) \
115 (HINSTANCE)NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWINDOWINSTANCE)
117 #define NtUserGetCursorPos(lpPoint) \
118 (BOOL)NtUserCallOneParam((DWORD)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION)
120 #define NtUserIsWindowInDestroy(hWnd) \
121 (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWINDESTROY)
123 #define NtUserEnableProcessWindowGhosting(bEnable) \
124 NtUserCallOneParam((DWORD)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING)