implemented GetWindowInfo()
[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 #include <win32k/win32k.h>
9
10 typedef struct _USER32_THREAD_DATA
11 {
12 MSG LastMessage;
13 HKL KeyboardLayoutHandle;
14 } USER32_THREAD_DATA, *PUSER32_THREAD_DATA;
15
16 PUSER32_THREAD_DATA User32GetThreadData();
17
18 /* a copy of this structure is in subsys/win32k/include/caret.h */
19 typedef struct _THRDCARETINFO
20 {
21 HWND hWnd;
22 HBITMAP Bitmap;
23 POINT Pos;
24 SIZE Size;
25 BYTE Visible;
26 BYTE Showing;
27 } THRDCARETINFO, *PTHRDCARETINFO;
28
29 VOID CreateFrameBrushes(VOID);
30 VOID DeleteFrameBrushes(VOID);
31 void DrawCaret(HWND hWnd, PTHRDCARETINFO CaretInfo);
32
33
34 #define NtUserValidateRgn(hWnd, hRgn) \
35 (BOOL)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN)
36
37 #define NtUserSetWindowContextHelpId(hWnd, dwContextHelpId) \
38 (BOOL)NtUserCallTwoParam((DWORD)hwnd, dwContextHelpId, TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID)
39
40 #define NtUserSetCaretPos(X, Y) \
41 (BOOL)NtUserCallTwoParam((DWORD)X, (DWORD)Y, TWOPARAM_ROUTINE_SETCARETPOS)
42
43 #define NtUserGetCursorPos(lpPoint) \
44 (BOOL)NtUserCallTwoParam((DWORD)lpPoint, (DWORD)FALSE, TWOPARAM_ROUTINE_CURSORPOSITION)
45
46 #define NtUserSetCursorPos(lpPoint) \
47 (BOOL)NtUserCallTwoParam((DWORD)lpPoint, (DWORD)TRUE, TWOPARAM_ROUTINE_CURSORPOSITION)
48
49 #define NtUserSetGUIThreadHandle(field, hwnd) \
50 (BOOL)NtUserCallTwoParam((DWORD)field, (DWORD)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE)
51
52 #define NtUserSetMenuItemRect(menu, mir) \
53 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)mir, TWOPARAM_ROUTINE_SETMENUITEMRECT)
54
55 #define NtUserSetMenuBarHeight(menu, height) \
56 (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT)
57
58 #define NtUserGetWindowInfo(hwnd, pwi) \
59 (BOOL)NtUserCallTwoParam((DWORD)hwnd, (DWORD)pwi, TWOPARAM_ROUTINE_GETWINDOWINFO)
60
61 #define NtUserSetCaretBlinkTime(uMSeconds) \
62 (BOOL)NtUserCallOneParam((DWORD)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME)
63
64 #define NtUserEnumClipboardFormats(format) \
65 (UINT)NtUserCallOneParam(format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS)
66
67 #define NtUserWindowFromDC(hDC) \
68 (HWND)NtUserCallOneParam((DWORD)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC)
69
70 #define NtUserSwitchCaretShowing(CaretInfo) \
71 (BOOL)NtUserCallOneParam((DWORD)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING)
72
73 #define NtUserSwapMouseButton(fSwap) \
74 (BOOL)NtUserCallOneParam((DWORD)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON)
75
76 #define NtUserGetMenu(hWnd) \
77 (HMENU)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_GETMENU)
78
79 #define NtUserSetMessageExtraInfo(lParam) \
80 (LPARAM)NtUserCallOneParam((DWORD)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO)
81
82 #define NtUserIsWindowUnicode(hWnd) \
83 (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWUNICODE)
84
85 #define NtUserGetWindowContextHelpId(hwnd) \
86 NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID)
87
88 LONG WINAPI RegCloseKey(HKEY);
89 LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
90 LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);