implemented GetKeyboardLayoutNameW
[reactos.git] / reactos / include / win32k / ntuser.h
index 8a3f6c1..8f75340 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,51 +144,83 @@ NtUserCallHwndParamLock(
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
+BOOL
 STDCALL
 NtUserCallMsgFilter(
-  DWORD Unknown0,
-  DWORD Unknown1);
-
-DWORD
+  LPMSG msg,
+  INT code);
+LRESULT
 STDCALL
 NtUserCallNextHookEx(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2,
-  DWORD Unknown3);
+  HHOOK Hook,
+  int Code,
+  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_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(
   DWORD Routine);
 
-#define ONEPARAM_ROUTINE_GETMENU            0x01
-#define ONEPARAM_ROUTINE_ISWINDOWUNICODE    0x02
-#define ONEPARAM_ROUTINE_WINDOWFROMDC       0x03
-#define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0x04
-#define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON    0x05
-#define ONEPARAM_ROUTINE_SETCARETBLINKTIME  0x06
-#define ONEPARAM_ROUTINE_GETCARETINFO       0x07
-#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0x08
+#define ONEPARAM_ROUTINE_GETMENU              0x01
+#define ONEPARAM_ROUTINE_ISWINDOWUNICODE      0x02
+#define ONEPARAM_ROUTINE_WINDOWFROMDC         0x03
+#define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID   0x04
+#define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON      0x05
+#define ONEPARAM_ROUTINE_SETCARETBLINKTIME    0x06
+#define ONEPARAM_ROUTINE_GETCARETINFO         0x07
+#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 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(
@@ -198,11 +228,11 @@ NtUserCallTwoParam(
   DWORD Param2,
   DWORD Routine);
 
-DWORD
+BOOL
 STDCALL
 NtUserChangeClipboardChain(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWndRemove,
+  HWND hWndNewNext);
 
 LONG
 STDCALL
@@ -213,14 +243,7 @@ NtUserChangeDisplaySettings(
   DWORD dwflags,
   LPVOID lParam);
 
-DWORD
-STDCALL
-NtUserCheckMenuItem(
-  HMENU hmenu,
-  UINT uIDCheckItem,
-  UINT uCheck);
-
-DWORD STDCALL
+HWND STDCALL
 NtUserChildWindowFromPointEx(HWND Parent,
                             LONG x,
                             LONG y,
@@ -231,7 +254,7 @@ STDCALL
 NtUserClipCursor(
   RECT *lpRect);
 
-DWORD
+BOOL
 STDCALL
 NtUserCloseClipboard(VOID);
 
@@ -276,7 +299,7 @@ NtUserCreateCaret(
   int nWidth,
   int nHeight);
 
-HICON
+HANDLE
 STDCALL
 NtUserCreateCursorIconHandle(
   PICONINFO IconInfo,
@@ -299,10 +322,6 @@ NtUserCreateLocalMemHandle(
   DWORD Unknown2,
   DWORD Unknown3);
 
-HMENU
-STDCALL
-NtUserCreateMenu(VOID);
-
 HWND
 STDCALL
 NtUserCreateWindowEx(
@@ -364,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
@@ -380,21 +392,24 @@ NtUserDestroyAcceleratorTable(
 
 BOOL
 STDCALL
-NtUserDestroyCursor(
-  HCURSOR hCursor,
+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
@@ -455,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,
-  WINBOOL fByPosition,
-  LPCMENUITEMINFOW lpmii);
-
-
 BOOL
 STDCALL
 NtUserEnableScrollBar(
@@ -497,14 +487,10 @@ NtUserEndDeferWindowPosEx(
   DWORD Unknown0,
   DWORD Unknown1);
 
-BOOL
-STDCALL
-NtUserEndMenu(VOID);
-
 BOOL STDCALL
 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
 
-WINBOOL
+BOOL
 STDCALL
 NtUserEnumDisplayDevices (
   PUNICODE_STRING lpDevice, /* device name */
@@ -512,15 +498,29 @@ NtUserEnumDisplayDevices (
   PDISPLAY_DEVICE lpDisplayDevice, /* device information */
   DWORD dwFlags ); /* reserved */
 
-WINBOOL
+/*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 );
+
 
-WINBOOL
+BOOL
 STDCALL
 NtUserEnumDisplaySettings(
   PUNICODE_STRING lpszDeviceName,
@@ -551,7 +551,9 @@ HICON
 STDCALL
 NtUserFindExistingCursorIcon(
   HMODULE hModule,
-  HRSRC hRsrc);
+  HRSRC hRsrc,
+  LONG cx,
+  LONG cy);
 
 HWND
 STDCALL
@@ -608,20 +610,20 @@ NtUserGetClassName(HWND hWnd,
                   LPWSTR lpClassName,
                   ULONG nMaxCount);
 
-DWORD
+HANDLE
 STDCALL
 NtUserGetClipboardData(
-  DWORD Unknown0,
+  UINT uFormat,
   DWORD Unknown1);
 
-DWORD
+INT
 STDCALL
 NtUserGetClipboardFormatName(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+  UINT format,
+  PUNICODE_STRING FormatName,
+  INT cchMaxCount);
 
-DWORD
+HWND
 STDCALL
 NtUserGetClipboardOwner(VOID);
 
@@ -629,7 +631,7 @@ DWORD
 STDCALL
 NtUserGetClipboardSequenceNumber(VOID);
 
-DWORD
+HWND
 STDCALL
 NtUserGetClipboardViewer(VOID);
 
@@ -679,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
@@ -712,14 +715,14 @@ NtUserGetGUIThreadInfo(
 
 BOOL
 STDCALL
-NtUserGetIconInfo(
-  HICON hIcon,
+NtUserGetCursorIconInfo(
+  HANDLE Handle,
   PICONINFO IconInfo);
 
 BOOL
 STDCALL
-NtUserGetIconSize(
-  HICON hIcon,
+NtUserGetCursorIconSize(
+  HANDLE Handle,
   BOOL *fIcon,
   SIZE *Size);
 
@@ -738,16 +741,21 @@ NtUserGetInternalWindowPos(
   DWORD Unknown1,
   DWORD Unknown2);
 
+HKL
+STDCALL 
+NtUserGetKeyboardLayout(
+  DWORD dwThreadid);
+
 DWORD
 STDCALL
 NtUserGetKeyboardLayoutList(
   DWORD Unknown0,
   DWORD Unknown1);
 
-DWORD
+BOOL
 STDCALL
 NtUserGetKeyboardLayoutName(
-  DWORD Unknown0);
+  LPWSTR lpszName);
 
 DWORD
 STDCALL
@@ -756,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(
@@ -768,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(
@@ -816,15 +819,15 @@ NtUserGetObjectInformation(
   DWORD nLength,
   PDWORD nLengthNeeded);
 
-DWORD
+HWND
 STDCALL
 NtUserGetOpenClipboardWindow(VOID);
 
-DWORD
+INT
 STDCALL
 NtUserGetPriorityClipboardFormat(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  UINT *paFormatPriorityList,
+  INT cFormats);
 
 HWINSTA
 STDCALL
@@ -844,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
@@ -875,18 +874,18 @@ STDCALL
 NtUserGetUpdateRgn(
   HWND hWnd,
   HRGN hRgn,
-  WINBOOL bErase);
+  BOOL bErase);
 
 DWORD
 STDCALL
 NtUserGetWindowDC(
   HWND hWnd);
 
-DWORD
+BOOL
 STDCALL
 NtUserGetWindowPlacement(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWnd,
+  WINDOWPLACEMENT *lpwndpl);
 
 DWORD
 STDCALL
@@ -894,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(
@@ -936,32 +922,18 @@ NtUserInitTask(
   DWORD Unknown9,
   DWORD Unknown10);
 
-DWORD
+INT
 STDCALL
 NtUserInternalGetWindowText(
   HWND hWnd,
   LPWSTR lpString,
-  int nMaxCount);
-
-DWORD
-STDCALL
-NtUserInvalidateRect(
-HWND hWnd,
-CONST RECT *lpRect,
-WINBOOL bErase);
+  INT nMaxCount);
 
-DWORD
-STDCALL
-  NtUserInvalidateRgn(
-  HWND hWnd,
-  HRGN hRgn,
-  WINBOOL bErase);
 
-
-DWORD
+BOOL
 STDCALL
 NtUserIsClipboardFormatAvailable(
-  DWORD Unknown0);
+  UINT format);
 
 BOOL
 STDCALL
@@ -1010,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(
@@ -1047,12 +993,12 @@ NtUserMessageCall(
   DWORD Unknown5,
   DWORD Unknown6);
 
-DWORD
+BOOL
 STDCALL
-NtUserMinMaximize(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+NtUserGetMinMaxInfo(
+  HWND hwnd,
+  MINMAXINFO *MinMaxInfo,
+  BOOL SendMessage);
 
 DWORD
 STDCALL
@@ -1070,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(      
@@ -1096,10 +1061,10 @@ NtUserNotifyWinEvent(
   DWORD Unknown2,
   DWORD Unknown3);
 
-DWORD
+BOOL
 STDCALL
 NtUserOpenClipboard(
-  DWORD Unknown0,
+  HWND hWnd,
   DWORD Unknown1);
 
 HDESK
@@ -1130,7 +1095,7 @@ NtUserPaintDesktop(
 BOOL
 STDCALL
 NtUserPeekMessage(
-  LPMSG lpMsg,
+  PNTUSERGETMESSAGEINFO MsgInfo,
   HWND hWnd,
   UINT wMsgFilterMin,
   UINT wMsgFilterMax,
@@ -1166,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(
@@ -1189,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
@@ -1212,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);
 
@@ -1246,30 +1215,30 @@ NtUserScrollDC(
   HRGN hrgnUpdate,
   LPRECT lprcUpdate);
 
-DWORD
-STDCALL
-NtUserScrollWindowEx(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2,
-  DWORD Unknown3,
-  DWORD Unknown4,
-  DWORD Unknown5,
-  DWORD Unknown6,
-  DWORD Unknown7);
+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
+{
+  BOOL HandledByKernel;
+  BOOL Ansi;
+  WNDPROC Proc;
+} NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO;
 
 LRESULT STDCALL
 NtUserSendMessage(HWND hWnd,
                  UINT Msg,
                  WPARAM wParam,
-                 LPARAM lParam);
+                 LPARAM lParam,
+                  PNTUSERSENDMESSAGEINFO Info);
 
 BOOL
 STDCALL
@@ -1281,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(
@@ -1314,17 +1293,17 @@ NtUserSetClassWord(
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
+HANDLE
 STDCALL
 NtUserSetClipboardData(
-  DWORD Unknown0,
-  DWORD Unknown1,
+  UINT uFormat,
+  HANDLE hMem,
   DWORD Unknown2);
 
-DWORD
+HWND
 STDCALL
 NtUserSetClipboardViewer(
-  DWORD Unknown0);
+  HWND hWndNewViewer);
 
 DWORD
 STDCALL
@@ -1340,13 +1319,13 @@ NtUserSetCursor(
 BOOL
 STDCALL
 NtUserSetCursorIconContents(
-  HCURSOR hCursor,
+  HANDLE Handle,
   PICONINFO IconInfo);
 
 BOOL
 STDCALL
 NtUserSetCursorIconData(
-  HICON hIcon,
+  HANDLE Handle,
   PBOOL fIcon,
   POINT *Hotspot,
   HMODULE hModule,
@@ -1405,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(
@@ -1463,10 +1417,10 @@ STDCALL
 NtUserSetScrollInfo(
   HWND hwnd, 
   int fnBar, 
-  LPSCROLLINFO lpsi, 
-  DWORD *Changed);
+  LPCSCROLLINFO lpsi, 
+  BOOL bRedraw);
 
-DWORD
+BOOL
 STDCALL
 NtUserSetShellWindowEx(
   HWND hwndShell,
@@ -1490,12 +1444,6 @@ NtUserSetSystemCursor(
   HCURSOR hcur,
   DWORD id);
 
-BOOL
-STDCALL
-NtUserSetSystemMenu(
-  HWND hWnd,
-  HMENU hMenu);
-
 BOOL
 STDCALL
 NtUserSetThreadDesktop(
@@ -1541,11 +1489,11 @@ NtUserSetWindowLong(
   LONG NewValue,
   BOOL Ansi);
 
-DWORD
+BOOL
 STDCALL
 NtUserSetWindowPlacement(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWnd,
+  WINDOWPLACEMENT *lpwndpl);
 
 BOOL 
 STDCALL NtUserSetWindowPos(      
@@ -1558,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
@@ -1572,15 +1520,15 @@ NtUserSetWindowsHookAW(
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
+HHOOK
 STDCALL
 NtUserSetWindowsHookEx(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2,
-  DWORD Unknown3,
-  DWORD Unknown4,
-  DWORD Unknown5);
+  HINSTANCE Mod,
+  PUNICODE_STRING ModuleName,
+  DWORD ThreadId,
+  int HookId,
+  HOOKPROC HookProc,
+  BOOL Ansi);
 
 DWORD
 STDCALL
@@ -1608,7 +1556,8 @@ NtUserSetWinEventHook(
 BOOL
 STDCALL
 NtUserShowCaret(
-  HWND hWnd);
+  HWND hWnd,
+  BOOL bShow);
 
 DWORD
 STDCALL
@@ -1620,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,
@@ -1639,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(
@@ -1671,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(
@@ -1694,10 +1617,10 @@ NtUserTranslateMessage(
   LPMSG lpMsg,
   HKL dwhkl );
 
-DWORD
+BOOL
 STDCALL
 NtUserUnhookWindowsHookEx(
-  DWORD Unknown0);
+  HHOOK Hook);
 
 DWORD
 STDCALL
@@ -1740,9 +1663,6 @@ NtUserUpdateInstance(
   DWORD Unknown1,
   DWORD Unknown2);
 
-BOOL STDCALL
-NtUserUpdateWindow( HWND hWnd );
-
 DWORD
 STDCALL
 NtUserUpdateLayeredWindow(
@@ -1756,11 +1676,11 @@ NtUserUpdateLayeredWindow(
   DWORD Unknown7,
   DWORD Unknown8);
 
-DWORD
+BOOL
 STDCALL
 NtUserUpdatePerUserSystemParameters(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  DWORD dwReserved,
+  BOOL bEnable);
 
 DWORD
 STDCALL
@@ -1774,10 +1694,6 @@ STDCALL
 NtUserValidateHandleSecure(
   DWORD Unknown0);
 
-VOID STDCALL
-NtUserValidateRect(HWND Wnd, const RECT* Rect);
-
-
 DWORD
 STDCALL
 NtUserVkKeyScanEx(
@@ -1847,6 +1763,51 @@ NtUserDereferenceWndProcHandle(WNDPROC wpHandle, WndProcHandle *Data);
 
 VOID STDCALL
 NtUserManualGuiCheck(LONG Check);
+
+typedef struct _SETSCROLLBARINFO
+{
+  int nTrackPos; 
+  int reserved;
+  DWORD rgstate[CCHILDREN_SCROLLBAR+1];
+} SETSCROLLBARINFO, *PSETSCROLLBARINFO;
+
+BOOL
+STDCALL
+NtUserSetScrollBarInfo(
+  HWND hwnd,
+  LONG idObject,
+  SETSCROLLBARINFO *info);
+
+/* 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
+{
+  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 */