fix bug 838 (Sol.exe is missing it's menubar)
[reactos.git] / reactos / include / win32k / ntuser.h
index 3ab2b90..8954168 100644 (file)
@@ -1,9 +1,6 @@
 #ifndef __WIN32K_NTUSER_H
 #define __WIN32K_NTUSER_H
 
-#include <ddk/ntapi.h>
-
-#define WM_SYSTIMER 280
 
 ULONG STDCALL
 NtUserGetSystemMetrics(ULONG Index);
@@ -103,6 +100,11 @@ NtUserBuildPropList(
   DWORD BufferSize,
   DWORD *Count);
 
+enum {
+       HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
+       HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
+};
+
 DWORD
 STDCALL
 NtUserCallHwnd(
@@ -142,12 +144,12 @@ NtUserCallHwndParamLock(
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
+BOOL
 STDCALL
 NtUserCallMsgFilter(
-  DWORD Unknown0,
-  DWORD Unknown1);
-
+  LPMSG msg,
+  INT code);
 LRESULT
 STDCALL
 NtUserCallNextHookEx(
@@ -156,11 +158,14 @@ NtUserCallNextHookEx(
   WPARAM wParam,
   LPARAM lParam);
 
-#define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */
-#define NOPARAM_ROUTINE_DESTROY_CARET      0xffff0002
-#define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003
-#define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP  0xffff0004
-#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
+#define NOPARAM_ROUTINE_MSQCLEARWAKEMASK      0x3
+#define NOPARAM_ROUTINE_REGISTER_PRIMITIVE       0xffff0001 /* Private ROS */
+#define NOPARAM_ROUTINE_DESTROY_CARET         0xffff0002
+#define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP   0xffff0003
+#define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP     0xffff0004
+#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO   0xffff0005
+#define NOPARAM_ROUTINE_ANYPOPUP              0xffff0006
+#define NOPARAM_ROUTINE_CSRSS_INITIALIZED     0xffff0007
 DWORD
 STDCALL
 NtUserCallNoParam(
@@ -175,9 +180,14 @@ NtUserCallNoParam(
 #define ONEPARAM_ROUTINE_GETCARETINFO         0x07
 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING   0x08
 #define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09
-#define ONEPARAM_ROUTINE_GETWINDOWINSTANCE    0x10
 #define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO  0x0a
 #define ONEPARAM_ROUTINE_GETCURSORPOSITION    0x0b
+#define ONEPARAM_ROUTINE_ISWINDOWINDESTROY    0x0c
+#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d
+#define ONEPARAM_ROUTINE_GETWINDOWINSTANCE    0x10
+#define ONEPARAM_ROUTINE_MSQSETWAKEMASK       0x27
+#define ONEPARAM_ROUTINE_GETKEYBOARDTYPE      0x28
+#define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT    0x29
 DWORD
 STDCALL
 NtUserCallOneParam(
@@ -202,10 +212,15 @@ NtUserCallOneParam(
 #define TWOPARAM_ROUTINE_UNKNOWN            0x54
 #define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS    0x55
 #define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x56
-#define TWOPARAM_ROUTINE_VALIDATERGN        0x57
 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0x58
 #define TWOPARAM_ROUTINE_SETCARETPOS        0x60
 #define TWOPARAM_ROUTINE_GETWINDOWINFO      0x61
+#define TWOPARAM_ROUTINE_REGISTERLOGONPROC  0x62
+#define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0x63
+#define TWOPARAM_ROUTINE_GETSYSCOLORPENS    0x64
+#define TWOPARAM_ROUTINE_GETSYSCOLORS       0x65
+#define TWOPARAM_ROUTINE_SETSYSCOLORS       0x66
+#define TWOPARAM_ROUTINE_ROS_SHOWWINDOW     0x1000
 DWORD
 STDCALL
 NtUserCallTwoParam(
@@ -483,13 +498,27 @@ NtUserEnumDisplayDevices (
   PDISPLAY_DEVICE lpDisplayDevice, /* device information */
   DWORD dwFlags ); /* reserved */
 
-BOOL
+/*BOOL
 STDCALL
 NtUserEnumDisplayMonitors (
   HDC hdc,
   LPCRECT lprcClip,
   MONITORENUMPROC lpfnEnum,
-  LPARAM dwData );
+  LPARAM dwData );*/
+
+#define MONITORINFOF_PRIMARY 1
+#define MONITOR_DEFAULTTONULL 0
+#define MONITOR_DEFAULTTOPRIMARY 1
+#define MONITOR_DEFAULTTONEAREST 2
+INT
+STDCALL
+NtUserEnumDisplayMonitors(
+  OPTIONAL IN HDC hDC,
+  OPTIONAL IN LPCRECT pRect,
+  OPTIONAL OUT HMONITOR *hMonitorList,
+  OPTIONAL OUT LPRECT monitorRectList,
+  OPTIONAL IN DWORD listSize );
+
 
 BOOL
 STDCALL
@@ -712,6 +741,11 @@ NtUserGetInternalWindowPos(
   DWORD Unknown1,
   DWORD Unknown2);
 
+HKL
+STDCALL 
+NtUserGetKeyboardLayout(
+  DWORD dwThreadid);
+
 DWORD
 STDCALL
 NtUserGetKeyboardLayoutList(
@@ -730,8 +764,13 @@ NtUserGetKeyboardState(
 
 DWORD
 STDCALL
-NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
+NtUserGetKeyboardType(
+  DWORD TypeFlag);
 
+DWORD
+STDCALL
+NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
+  
 DWORD
 STDCALL
 NtUserGetKeyState(
@@ -756,6 +795,12 @@ NtUserGetMessage(
   UINT wMsgFilterMin,
   UINT wMsgFilterMax);
 
+BOOL
+STDCALL
+NtUserGetMonitorInfo(
+  IN HMONITOR hMonitor,
+  OUT LPMONITORINFO pMonitorInfo);
+
 DWORD
 STDCALL
 NtUserGetMouseMovePointsEx(
@@ -848,11 +893,6 @@ NtUserGetWOWClass(
   DWORD Unknown0,
   DWORD Unknown1);
 
-BOOL
-STDCALL
-NtUserHideCaret(
-  HWND hWnd);
-
 DWORD
 STDCALL
 NtUserImpersonateDdeClientWindow(
@@ -889,20 +929,6 @@ NtUserInternalGetWindowText(
   LPWSTR lpString,
   INT nMaxCount);
 
-DWORD
-STDCALL
-NtUserInvalidateRect(
-HWND hWnd,
-CONST RECT *lpRect,
-BOOL bErase);
-
-DWORD
-STDCALL
-  NtUserInvalidateRgn(
-  HWND hWnd,
-  HRGN hRgn,
-  BOOL bErase);
-
 
 BOOL
 STDCALL
@@ -990,6 +1016,25 @@ NtUserModifyUserStartupInfoFlags(
   DWORD Unknown0,
   DWORD Unknown1);
 
+HMONITOR
+STDCALL
+NtUserMonitorFromPoint(
+  IN POINT point,
+  IN DWORD dwFlags);
+
+HMONITOR
+STDCALL
+NtUserMonitorFromRect(
+  IN LPCRECT pRect,
+  IN DWORD dwFlags);
+
+HMONITOR
+STDCALL
+NtUserMonitorFromWindow(
+  IN HWND hWnd,
+  IN DWORD dwFlags);
+
+
 BOOL
 STDCALL
 NtUserMoveWindow(      
@@ -1112,13 +1157,21 @@ NtUserRedrawWindow
  UINT flags
 );
 
-RTL_ATOM
-STDCALL
-NtUserRegisterClassExWOW(CONST WNDCLASSEXW* lpwcx,
-                        BOOL bUnicodeClass,
-                        WNDPROC wpExtra,
-                        DWORD Unknown4,
-                        DWORD Unknown5);
+/* FIXME: These flag constans aren't what Windows uses. */
+#define REGISTERCLASS_ANSI     2
+#define REGISTERCLASS_SYSTEM   4
+#define REGISTERCLASS_ALL      (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM)
+
+RTL_ATOM STDCALL
+NtUserRegisterClassExWOW(
+   CONST WNDCLASSEXW* lpwcx,
+   PUNICODE_STRING ClassName,
+   PUNICODE_STRING ClassNameCopy,
+   PUNICODE_STRING MenuName,
+   WNDPROC wpExtra,
+   DWORD Flags,
+   DWORD Unknown7,
+   HMENU hMenu);
 
 BOOL
 STDCALL
@@ -1503,7 +1556,8 @@ NtUserSetWinEventHook(
 BOOL
 STDCALL
 NtUserShowCaret(
-  HWND hWnd);
+  HWND hWnd,
+  BOOL bShow);
 
 DWORD
 STDCALL
@@ -1515,18 +1569,18 @@ NtUserShowWindow(
   HWND hWnd,
   LONG nCmdShow);
 
-DWORD
+BOOL
 STDCALL
 NtUserShowWindowAsync(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWnd,
+  LONG nCmdShow);
 
 BOOL
 STDCALL
 NtUserSwitchDesktop(
   HDESK hDesktop);
 
-DWORD
+BOOL
 STDCALL
 NtUserSystemParametersInfo(
   UINT uiAction,
@@ -1609,9 +1663,6 @@ NtUserUpdateInstance(
   DWORD Unknown1,
   DWORD Unknown2);
 
-BOOL STDCALL
-NtUserUpdateWindow( HWND hWnd );
-
 DWORD
 STDCALL
 NtUserUpdateLayeredWindow(
@@ -1625,11 +1676,11 @@ NtUserUpdateLayeredWindow(
   DWORD Unknown7,
   DWORD Unknown8);
 
-DWORD
+BOOL
 STDCALL
 NtUserUpdatePerUserSystemParameters(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  DWORD dwReserved,
+  BOOL bEnable);
 
 DWORD
 STDCALL
@@ -1643,10 +1694,6 @@ STDCALL
 NtUserValidateHandleSecure(
   DWORD Unknown0);
 
-VOID STDCALL
-NtUserValidateRect(HWND Wnd, const RECT* Rect);
-
-
 DWORD
 STDCALL
 NtUserVkKeyScanEx(
@@ -1753,6 +1800,14 @@ typedef struct tagKMDDELPARAM
     } Value;
 } KMDDELPARAM, *PKMDDELPARAM;
 
+typedef struct _GDI_TABLE_ENTRY
+{
+  PVOID KernelData; /* Points to the kernel mode structure */
+  HANDLE ProcessId; /* process id that created the object, 0 for stock objects */
+  LONG Type;        /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */
+  PVOID UserData;   /* Points to the user mode structure, usually NULL though */
+} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
+
 #endif /* __WIN32K_NTUSER_H */
 
 /* EOF */