fix bug 838 (Sol.exe is missing it's menubar)
[reactos.git] / reactos / include / win32k / ntuser.h
index 82dd775..8954168 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef __WIN32K_NTUSER_H
 #define __WIN32K_NTUSER_H
 
+
 ULONG STDCALL
 NtUserGetSystemMetrics(ULONG Index);
 
@@ -68,10 +69,10 @@ NtUserBitBltSysBmp(
   DWORD Unknown6,
   DWORD Unknown7);
 
-DWORD
+BOOL
 STDCALL
 NtUserBlockInput(
-  DWORD Unknown0);
+  BOOL BlockIt);
 
 ULONG
 STDCALL
@@ -84,14 +85,6 @@ NtUserBuildHwndList(
   HWND* pWnd,
   ULONG nBufSize);
 
-DWORD
-STDCALL
-NtUserBuildMenuItemList(
- HMENU hMenu,
- PVOID Buffer,
- ULONG nBufSize,
- DWORD Reserved);
-
 NTSTATUS STDCALL
 NtUserBuildNameList(
    HWINSTA hWinSta,
@@ -107,6 +100,11 @@ NtUserBuildPropList(
   DWORD BufferSize,
   DWORD *Count);
 
+enum {
+       HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
+       HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
+};
+
 DWORD
 STDCALL
 NtUserCallHwnd(
@@ -146,12 +144,12 @@ NtUserCallHwndParamLock(
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
+BOOL
 STDCALL
 NtUserCallMsgFilter(
-  DWORD Unknown0,
-  DWORD Unknown1);
-
+  LPMSG msg,
+  INT code);
 LRESULT
 STDCALL
 NtUserCallNextHookEx(
@@ -160,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(
@@ -180,29 +181,46 @@ NtUserCallNoParam(
 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING   0x08
 #define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09
 #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(
   DWORD Param,
   DWORD Routine);
 
+#define TWOPARAM_ROUTINE_SETDCPENCOLOR      0x45
+#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR    0x46
+#define TWOPARAM_ROUTINE_GETDCCOLOR         0x47
+#define TWOPARAM_ROUTINE_GETWINDOWRGNBOX    0x48
+#define TWOPARAM_ROUTINE_GETWINDOWRGN       0x49
 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT   0x50
 #define TWOPARAM_ROUTINE_SETMENUITEMRECT    0x51
 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE   0x52
-  #define TPR_SGTH_ACTIVE         0x01
-  #define TPR_SGTH_FOCUS          0x02
-  #define TPR_SGTH_CAPTURE        0x03
-  #define TPR_SGTH_MENUOWNER      0x04
-  #define TPR_SGTH_MOVESIZE       0x05
-  #define TPR_SGTH_CARET          0x06
+  #define MSQ_STATE_CAPTURE    0x1
+  #define MSQ_STATE_ACTIVE     0x2
+  #define MSQ_STATE_FOCUS      0x3
+  #define MSQ_STATE_MENUOWNER  0x4
+  #define MSQ_STATE_MOVESIZE   0x5
+  #define MSQ_STATE_CARET      0x6
 #define TWOPARAM_ROUTINE_ENABLEWINDOW       0x53
 #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_CURSORPOSITION     0x59
 #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(
@@ -225,13 +243,6 @@ NtUserChangeDisplaySettings(
   DWORD dwflags,
   LPVOID lParam);
 
-DWORD
-STDCALL
-NtUserCheckMenuItem(
-  HMENU hmenu,
-  UINT uIDCheckItem,
-  UINT uCheck);
-
 HWND STDCALL
 NtUserChildWindowFromPointEx(HWND Parent,
                             LONG x,
@@ -311,10 +322,6 @@ NtUserCreateLocalMemHandle(
   DWORD Unknown2,
   DWORD Unknown3);
 
-HMENU
-STDCALL
-NtUserCreateMenu(BOOL PopupMenu);
-
 HWND
 STDCALL
 NtUserCreateWindowEx(
@@ -376,14 +383,7 @@ NtUserDeferWindowPos(HDWP WinPosInfo,
          int cy,
                     UINT Flags);
 BOOL STDCALL
-NtUserDefSetText(HWND WindowHandle, PANSI_STRING Text);
-
-BOOL
-STDCALL
-NtUserDeleteMenu(
-  HMENU hMenu,
-  UINT uPosition,
-  UINT uFlags);
+NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText);
 
 BOOLEAN
 STDCALL
@@ -396,17 +396,20 @@ NtUserDestroyCursorIcon(
   HANDLE Handle,
   DWORD Unknown);
 
-BOOL
-STDCALL
-NtUserDestroyMenu(
-  HMENU hMenu);
-
 BOOLEAN STDCALL
 NtUserDestroyWindow(HWND Wnd);
 
+typedef struct tagNTUSERDISPATCHMESSAGEINFO
+{
+  BOOL HandledByKernel;
+  BOOL Ansi;
+  WNDPROC Proc;
+  MSG Msg;
+} NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO;
+
 LRESULT
 STDCALL
-NtUserDispatchMessage(CONST MSG* lpmsg);
+NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo);
 
 BOOL
 STDCALL
@@ -467,35 +470,10 @@ NtUserDrawIconEx(
   DWORD Unknown0,
   DWORD Unknown1);
 
-DWORD
-STDCALL
-NtUserDrawMenuBarTemp(
-  HWND hWnd,
-  HDC hDC,
-  PRECT hRect,
-  HMENU hMenu,
-  HFONT hFont);
-
 DWORD
 STDCALL
 NtUserEmptyClipboard(VOID);
 
-UINT
-STDCALL
-NtUserEnableMenuItem(
-  HMENU hMenu,
-  UINT uIDEnableItem,
-  UINT uEnable);
-  
-DWORD
-STDCALL
-NtUserInsertMenuItem(
-  HMENU hMenu,
-  UINT uItem,
-  BOOL fByPosition,
-  LPCMENUITEMINFOW lpmii);
-
-
 BOOL
 STDCALL
 NtUserEnableScrollBar(
@@ -509,10 +487,6 @@ NtUserEndDeferWindowPosEx(
   DWORD Unknown0,
   DWORD Unknown1);
 
-BOOL
-STDCALL
-NtUserEndMenu(VOID);
-
 BOOL STDCALL
 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
 
@@ -524,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
@@ -693,16 +681,17 @@ STDCALL
 NtUserGetCursorInfo(
   PCURSORINFO pci);
 
-UINT STDCALL
-NtUserGetMenuDefaultItem(
-  HMENU hMenu,
-  UINT fByPos,
-  UINT gmdiFlags);
-
-HDC STDCALL
-NtUserGetDC(HWND hWnd);
+HDC
+STDCALL
+NtUserGetDC(
+  HWND hWnd);
 
-HDC STDCALL NtUserGetDCEx(HWND hWnd, HANDLE hRegion, ULONG Flags);
+HDC
+STDCALL
+NtUserGetDCEx(
+  HWND hWnd,
+  HANDLE hRegion,
+  ULONG Flags);
 
 UINT
 STDCALL
@@ -752,6 +741,11 @@ NtUserGetInternalWindowPos(
   DWORD Unknown1,
   DWORD Unknown2);
 
+HKL
+STDCALL 
+NtUserGetKeyboardLayout(
+  DWORD dwThreadid);
+
 DWORD
 STDCALL
 NtUserGetKeyboardLayoutList(
@@ -770,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(
@@ -782,36 +781,26 @@ STDCALL
 NtUserGetListBoxInfo(
   DWORD Unknown0);
 
-BOOL
-STDCALL
-NtUserGetMenuBarInfo(
-  HWND hwnd,
-  LONG idObject,
-  LONG idItem,
-  PMENUBARINFO pmbi);
-
-UINT
-STDCALL
-NtUserGetMenuIndex(
-  HMENU hMenu,
-  UINT wID);
-
-BOOL
-STDCALL
-NtUserGetMenuItemRect(
-  HWND hWnd,
-  HMENU hMenu,
-  UINT uItem,
-  LPRECT lprcItem);
+typedef struct tagNTUSERGETMESSAGEINFO
+{
+  MSG Msg;
+  ULONG LParamSize;
+} NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO;
 
 BOOL
 STDCALL
 NtUserGetMessage(
-  LPMSG lpMsg,
+  PNTUSERGETMESSAGEINFO MsgInfo,
   HWND hWnd,
   UINT wMsgFilterMin,
   UINT wMsgFilterMax);
 
+BOOL
+STDCALL
+NtUserGetMonitorInfo(
+  IN HMONITOR hMonitor,
+  OUT LPMONITORINFO pMonitorInfo);
+
 DWORD
 STDCALL
 NtUserGetMouseMovePointsEx(
@@ -858,22 +847,18 @@ NtUserGetScrollInfo(
   int fnBar, 
   LPSCROLLINFO lpsi);
 
-HMENU
-STDCALL
-NtUserGetSystemMenu(
-  HWND hWnd,
-  BOOL bRevert);
-
 HDESK
 STDCALL
 NtUserGetThreadDesktop(
   DWORD dwThreadId,
   DWORD Unknown1);
 
+#define THREADSTATE_FOCUSWINDOW (1)
+#define THREADSTATE_INSENDMESSAGE       (2)
 DWORD
 STDCALL
 NtUserGetThreadState(
-  DWORD Unknown0);
+  DWORD Routine);
 
 DWORD
 STDCALL
@@ -908,19 +893,6 @@ NtUserGetWOWClass(
   DWORD Unknown0,
   DWORD Unknown1);
 
-BOOL
-STDCALL
-NtUserHideCaret(
-  HWND hWnd);
-
-BOOL
-STDCALL
-NtUserHiliteMenuItem(
-  HWND hwnd,
-  HMENU hmenu,
-  UINT uItemHilite,
-  UINT uHilite);
-
 DWORD
 STDCALL
 NtUserImpersonateDdeClientWindow(
@@ -950,26 +922,12 @@ NtUserInitTask(
   DWORD Unknown9,
   DWORD Unknown10);
 
-DWORD
+INT
 STDCALL
 NtUserInternalGetWindowText(
   HWND hWnd,
   LPWSTR lpString,
-  int nMaxCount);
-
-DWORD
-STDCALL
-NtUserInvalidateRect(
-HWND hWnd,
-CONST RECT *lpRect,
-BOOL bErase);
-
-DWORD
-STDCALL
-  NtUserInvalidateRgn(
-  HWND hWnd,
-  HRGN hRgn,
-  BOOL bErase);
+  INT nMaxCount);
 
 
 BOOL
@@ -1024,32 +982,6 @@ NtUserMapVirtualKeyEx( UINT keyCode,
                       DWORD keyboardId,
                       HKL dwhkl );
 
-BOOL
-STDCALL
-NtUserMenuInfo(
- HMENU hmenu,
- LPMENUINFO lpmi,
- BOOL fsog
-);
-
-int
-STDCALL
-NtUserMenuItemFromPoint(
-  HWND hWnd,
-  HMENU hMenu,
-  DWORD X,
-  DWORD Y);
-
-BOOL
-STDCALL
-NtUserMenuItemInfo(
- HMENU hMenu,
- UINT uItem,
- BOOL fByPosition,
- LPMENUITEMINFOW lpmii,
- BOOL fsog
-);
-
 DWORD
 STDCALL
 NtUserMessageCall(
@@ -1084,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(      
@@ -1144,7 +1095,7 @@ NtUserPaintDesktop(
 BOOL
 STDCALL
 NtUserPeekMessage(
-  LPMSG lpMsg,
+  PNTUSERGETMESSAGEINFO MsgInfo,
   HWND hWnd,
   UINT wMsgFilterMin,
   UINT wMsgFilterMax,
@@ -1180,6 +1131,9 @@ NtUserQueryUserCounters(
   DWORD Unknown3,
   DWORD Unknown4);
 
+#define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
+#define QUERY_WINDOW_UNIQUE_THREAD_ID  0x01
+#define QUERY_WINDOW_ISHUNG    0x04
 DWORD
 STDCALL
 NtUserQueryWindow(
@@ -1203,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
@@ -1226,13 +1188,6 @@ NtUserRegisterTasklist(
 UINT STDCALL
 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
 
-BOOL
-STDCALL
-NtUserRemoveMenu(
-  HMENU hMenu,
-  UINT uPosition,
-  UINT uFlags);
-
 HANDLE STDCALL
 NtUserRemoveProp(HWND hWnd, ATOM Atom);
 
@@ -1264,12 +1219,12 @@ DWORD STDCALL
 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
    const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
 
-DWORD
+UINT
 STDCALL
 NtUserSendInput(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+  UINT nInputs,
+  LPINPUT pInput,
+  INT cbSize);
 
 typedef struct tagNTUSERSENDMESSAGEINFO
 {
@@ -1295,6 +1250,16 @@ NtUserSendMessageCallback(
   SENDASYNCPROC lpCallBack,
   ULONG_PTR dwData);
 
+LRESULT STDCALL
+NtUserSendMessageTimeout(HWND hWnd,
+                        UINT Msg,
+                        WPARAM wParam,
+                        LPARAM lParam,
+                        UINT uFlags,
+                        UINT uTimeout,
+                        ULONG_PTR *uResult,
+                        PNTUSERSENDMESSAGEINFO Info);
+
 BOOL
 STDCALL
 NtUserSendNotifyMessage(
@@ -1419,31 +1384,6 @@ STDCALL
 NtUserSetLogonNotifyWindow(
   DWORD Unknown0);
 
-BOOL
-STDCALL
-NtUserSetMenu(
-  HWND hWnd,
-  HMENU hMenu,
-  BOOL bRepaint);
-
-BOOL
-STDCALL
-NtUserSetMenuContextHelpId(
-  HMENU hmenu,
-  DWORD dwContextHelpId);
-
-BOOL
-STDCALL
-NtUserSetMenuDefaultItem(
-  HMENU hMenu,
-  UINT uItem,
-  UINT fByPos);
-
-BOOL
-STDCALL
-NtUserSetMenuFlagRtoL(
-  HMENU hMenu);
-
 BOOL
 STDCALL
 NtUserSetObjectInformation(
@@ -1504,12 +1444,6 @@ NtUserSetSystemCursor(
   HCURSOR hcur,
   DWORD id);
 
-BOOL
-STDCALL
-NtUserSetSystemMenu(
-  HWND hWnd,
-  HMENU hMenu);
-
 BOOL
 STDCALL
 NtUserSetThreadDesktop(
@@ -1572,12 +1506,12 @@ STDCALL NtUserSetWindowPos(
     UINT uFlags
 );
 
-DWORD
+INT
 STDCALL
 NtUserSetWindowRgn(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+  HWND hWnd,
+  HRGN hRgn,
+  BOOL bRedraw);
 
 DWORD
 STDCALL
@@ -1622,7 +1556,8 @@ NtUserSetWinEventHook(
 BOOL
 STDCALL
 NtUserShowCaret(
-  HWND hWnd);
+  HWND hWnd,
+  BOOL bShow);
 
 DWORD
 STDCALL
@@ -1634,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,
@@ -1653,22 +1588,6 @@ NtUserSystemParametersInfo(
   PVOID pvParam,
   UINT fWinIni);
 
-DWORD
-STDCALL
-NtUserThunkedMenuInfo(
-  HMENU hMenu,
-  LPCMENUINFO lpcmi);
-
-DWORD
-STDCALL
-NtUserThunkedMenuItemInfo(
-  HMENU hMenu,
-  UINT uItem,
-  BOOL fByPosition,
-  BOOL bInsert,
-  LPMENUITEMINFOW lpmii,
-  PUNICODE_STRING lpszCaption);
-
 int
 STDCALL
 NtUserToUnicodeEx(
@@ -1685,16 +1604,6 @@ STDCALL
 NtUserTrackMouseEvent(
   DWORD Unknown0);
 
-BOOL
-STDCALL
-NtUserTrackPopupMenuEx(
-  HMENU hmenu,
-  UINT fuFlags,
-  int x,
-  int y,
-  HWND hwnd,
-  LPTPMPARAMS lptpm);
-
 int
 STDCALL
 NtUserTranslateAccelerator(
@@ -1754,9 +1663,6 @@ NtUserUpdateInstance(
   DWORD Unknown1,
   DWORD Unknown2);
 
-BOOL STDCALL
-NtUserUpdateWindow( HWND hWnd );
-
 DWORD
 STDCALL
 NtUserUpdateLayeredWindow(
@@ -1770,11 +1676,11 @@ NtUserUpdateLayeredWindow(
   DWORD Unknown7,
   DWORD Unknown8);
 
-DWORD
+BOOL
 STDCALL
 NtUserUpdatePerUserSystemParameters(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  DWORD dwReserved,
+  BOOL bEnable);
 
 DWORD
 STDCALL
@@ -1788,10 +1694,6 @@ STDCALL
 NtUserValidateHandleSecure(
   DWORD Unknown0);
 
-VOID STDCALL
-NtUserValidateRect(HWND Wnd, const RECT* Rect);
-
-
 DWORD
 STDCALL
 NtUserVkKeyScanEx(
@@ -1876,12 +1778,35 @@ NtUserSetScrollBarInfo(
   LONG idObject,
   SETSCROLLBARINFO *info);
 
-typedef struct _SETMENUITEMRECT
+/* lParam of DDE messages */
+typedef struct tagKMDDEEXECUTEDATA
+{
+  HWND Sender;
+  HGLOBAL ClientMem;
+  /* BYTE Data[DataSize] */
+} KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA; 
+
+typedef struct tagKMDDELPARAM
+{
+  BOOL Packed;
+  union
+    {
+      struct
+        {
+          UINT uiLo;
+          UINT uiHi;
+        } Packed;
+      LPARAM Unpacked;
+    } Value;
+} KMDDELPARAM, *PKMDDELPARAM;
+
+typedef struct _GDI_TABLE_ENTRY
 {
-  UINT uItem;
-  BOOL fByPosition;
-  RECT rcRect;
-} SETMENUITEMRECT, *PSETMENUITEMRECT;
+  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 */