1. remove mouse cursor hacks from eng/mouse
[reactos.git] / reactos / lib / user32 / include / user32.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS user32.dll
4 * FILE: include/user32.h
5 * PURPOSE: Global user32 definitions
6 */
7 #include <windows.h>
8 #define NTOS_MODE_USER
9 #include <ntos.h>
10 #include <win32k/win32k.h>
11
12 extern HINSTANCE User32Instance;
13
14 typedef struct _USER32_THREAD_DATA
15 {
16 MSG LastMessage;
17 HKL KeyboardLayoutHandle;
18 } USER32_THREAD_DATA, *PUSER32_THREAD_DATA;
19
20 PUSER32_THREAD_DATA User32GetThreadData();
21
22 /* a copy of this structure is in subsys/win32k/include/caret.h */
23 typedef struct _THRDCARETINFO
24 {
25 HWND hWnd;
26 HBITMAP Bitmap;
27 POINT Pos;
28 SIZE Size;
29 BYTE Visible;
30 BYTE Showing;
31 } THRDCARETINFO, *PTHRDCARETINFO;
32
33 void InitStockObjects(void);
34 VOID CreateFrameBrushes(VOID);
35 VOID DeleteFrameBrushes(VOID);
36 void DrawCaret(HWND hWnd, PTHRDCARETINFO CaretInfo);
37
38 LONG WINAPI RegCloseKey(HKEY);
39 LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
40 LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
41
42 #ifdef __USE_W32API
43 NTSTATUS STDCALL ZwCallbackReturn(PVOID Result,
44 ULONG ResultLength,
45 NTSTATUS Status);
46 #endif
47
48 #define NtUserAnyPopup() \
49 (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_ANYPOPUP)
50
51 #define NtUserValidateRgn(hWnd, hRgn) \
52 (BOOL)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN)
53
54 #define NtUserSetWindowContextHelpId(hWnd, dwContextHelpId) \
55 (BOOL)NtUserCallTwoParam((DWORD)hwnd, dwContextHelpId, TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID)
56
57 #define NtUserSetCaretPos(X, Y) \
58 (BOOL)NtUserCallTwoParam((DWORD)X, (DWORD)Y, TWOPARAM_ROUTINE_SETCARETPOS)
59
60 #define NtUserSetGUIThreadHandle(field, hwnd) \
61 (BOOL)NtUserCallTwoParam((DWORD)field, (DWORD)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE)
62
63 #define NtUserSetMenuItemRect(menu, mir) \
64 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)mir, TWOPARAM_ROUTINE_SETMENUITEMRECT)
65
66 #define NtUserSetMenuBarHeight(menu, height) \
67 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT)
68
69 #define NtUserGetWindowInfo(hwnd, pwi) \
70 (BOOL)NtUserCallTwoParam((DWORD)hwnd, (DWORD)pwi, TWOPARAM_ROUTINE_GETWINDOWINFO)
71
72 #define NtUserRegisterLogonProcess(hproc, x) \
73 (BOOL)NtUserCallTwoParam((DWORD)hproc, (DWORD)x, TWOPARAM_ROUTINE_REGISTERLOGONPROC)
74
75 #define NtUserGetSysColorBrushes(HBrushes, count) \
76 (BOOL)NtUserCallTwoParam((DWORD)(HBrushes), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES)
77
78 #define NtUserGetSysColorPens(HPens, count) \
79 (BOOL)NtUserCallTwoParam((DWORD)(HPens), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORPENS)
80
81 #define NtUserGetSysColors(ColorRefs, count) \
82 (BOOL)NtUserCallTwoParam((DWORD)(ColorRefs), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORS)
83
84 #define NtUserSetSysColors(ColorRefs, count) \
85 (BOOL)NtUserCallTwoParam((DWORD)(ColorRefs), (DWORD)(count), TWOPARAM_ROUTINE_SETSYSCOLORS)
86
87 #define NtUserSetCaretBlinkTime(uMSeconds) \
88 (BOOL)NtUserCallOneParam((DWORD)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME)
89
90 #define NtUserEnumClipboardFormats(format) \
91 (UINT)NtUserCallOneParam(format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS)
92
93 #define NtUserWindowFromDC(hDC) \
94 (HWND)NtUserCallOneParam((DWORD)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC)
95
96 #define NtUserSwitchCaretShowing(CaretInfo) \
97 (BOOL)NtUserCallOneParam((DWORD)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING)
98
99 #define NtUserSwapMouseButton(fSwap) \
100 (BOOL)NtUserCallOneParam((DWORD)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON)
101
102 #define NtUserGetMenu(hWnd) \
103 (HMENU)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_GETMENU)
104
105 #define NtUserSetMessageExtraInfo(lParam) \
106 (LPARAM)NtUserCallOneParam((DWORD)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO)
107
108 #define NtUserIsWindowUnicode(hWnd) \
109 (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWUNICODE)
110
111 #define NtUserGetWindowContextHelpId(hwnd) \
112 NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID)
113
114 #define NtUserGetWindowInstance(hwnd) \
115 (HINSTANCE)NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWINDOWINSTANCE)
116
117 #define NtUserGetCursorPos(lpPoint) \
118 (BOOL)NtUserCallOneParam((DWORD)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION)
119
120 #define NtUserIsWindowInDestroy(hWnd) \
121 (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWINDESTROY)
122
123 #define NtUserEnableProcessWindowGhosting(bEnable) \
124 NtUserCallOneParam((DWORD)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING)
125