/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS user32.dll
- * FILE: include/user32.h
- * PURPOSE: Global user32 definitions
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS System Libraries
+ * FILE: lib/user32/include/user32.h
+ * PURPOSE: Win32 User Library
+ * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
*/
-#include <windows.h>
-#include <win32k/win32k.h>
-
-typedef struct _USER32_THREAD_DATA
-{
- MSG LastMessage;
- HKL KeyboardLayoutHandle;
-} USER32_THREAD_DATA, *PUSER32_THREAD_DATA;
-
-PUSER32_THREAD_DATA User32GetThreadData();
-
-/* a copy of this structure is in subsys/win32k/include/caret.h */
-typedef struct _THRDCARETINFO
-{
- HWND hWnd;
- HBITMAP Bitmap;
- POINT Pos;
- SIZE Size;
- BYTE Visible;
- BYTE Showing;
-} THRDCARETINFO, *PTHRDCARETINFO;
-
-VOID CreateFrameBrushes(VOID);
-VOID DeleteFrameBrushes(VOID);
-void DrawCaret(HWND hWnd, PTHRDCARETINFO CaretInfo);
-
-
-#define NtUserValidateRgn(hWnd, hRgn) \
- (BOOL)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN)
-
-#define NtUserSetWindowContextHelpId(hWnd, dwContextHelpId) \
- (BOOL)NtUserCallTwoParam((DWORD)hwnd, dwContextHelpId, TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID)
-
-#define NtUserSetCaretPos(X, Y) \
- (BOOL)NtUserCallTwoParam((DWORD)X, (DWORD)Y, TWOPARAM_ROUTINE_SETCARETPOS)
-
-#define NtUserSetGUIThreadHandle(field, hwnd) \
- (BOOL)NtUserCallTwoParam((DWORD)field, (DWORD)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE)
-
-#define NtUserSetMenuItemRect(menu, mir) \
- (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)mir, TWOPARAM_ROUTINE_SETMENUITEMRECT)
-
-#define NtUserSetMenuBarHeight(menu, height) \
- (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT)
-
-#define NtUserGetWindowInfo(hwnd, pwi) \
- (BOOL)NtUserCallTwoParam((DWORD)hwnd, (DWORD)pwi, TWOPARAM_ROUTINE_GETWINDOWINFO)
-#define NtUserRegisterLogonProcess(hproc, x) \
- (BOOL)NtUserCallTwoParam((DWORD)hproc, (DWORD)x, TWOPARAM_ROUTINE_REGISTERLOGONPROC)
+/* INCLUDES ******************************************************************/
-#define NtUserSetCaretBlinkTime(uMSeconds) \
- (BOOL)NtUserCallOneParam((DWORD)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME)
+/* C Headers */
+#include <stdio.h>
+#include <math.h>
-#define NtUserEnumClipboardFormats(format) \
- (UINT)NtUserCallOneParam(format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS)
-
-#define NtUserWindowFromDC(hDC) \
- (HWND)NtUserCallOneParam((DWORD)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC)
-
-#define NtUserSwitchCaretShowing(CaretInfo) \
- (BOOL)NtUserCallOneParam((DWORD)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING)
-
-#define NtUserSwapMouseButton(fSwap) \
- (BOOL)NtUserCallOneParam((DWORD)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON)
-
-#define NtUserGetMenu(hWnd) \
- (HMENU)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_GETMENU)
-
-#define NtUserSetMessageExtraInfo(lParam) \
- (LPARAM)NtUserCallOneParam((DWORD)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO)
-
-#define NtUserIsWindowUnicode(hWnd) \
- (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWUNICODE)
-
-#define NtUserGetWindowContextHelpId(hwnd) \
- NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID)
-
-#define NtUserGetWindowInstance(hwnd) \
- (HINSTANCE)NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWINDOWINSTANCE)
-
-#define NtUserGetCursorPos(lpPoint) \
- (BOOL)NtUserCallOneParam((DWORD)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION)
-
-LONG WINAPI RegCloseKey(HKEY);
-LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
-LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
-
-#ifdef __USE_W32API
-NTSTATUS STDCALL ZwCallbackReturn(PVOID Result,
- ULONG ResultLength,
- NTSTATUS Status);
-#endif
+/* SDK/NDK Headers */
+#define _USER32_
+#define OEMRESOURCE
+#define NTOS_MODE_USER
+#define WIN32_NO_STATUS
+#include <windows.h>
+#include <winuser.h>
+#include <windowsx.h>
+#include <winnls32.h>
+#include <ndk/ntndk.h>
+
+/* CSRSS Headers */
+#include <csrss/csrss.h>
+
+/* External Win32K Headers */
+#include <win32k/ntuser.h>
+#include <win32k/caret.h>
+#include <win32k/callback.h>
+#include <win32k/cursoricon.h>
+#include <win32k/menu.h>
+#include <win32k/paint.h>
+
+/* WINE Headers */
+#include <wine/debug.h>
+#include <wine/unicode.h>
+
+/* Internal User32 Headers */
+#include "user32p.h"
+
+/* FIXME: FILIP */
+HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);
+DWORD STDCALL GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);