Registry entries for shell folders
[reactos.git] / reactos / include / win32k / ntuser.h
index 75d4f38..a931838 100644 (file)
 #ifndef __WIN32K_NTUSER_H
 #define __WIN32K_NTUSER_H
 
-ULONG STDCALL
+
+DWORD
+NTAPI
+NtUserBuildMenuItemList(
+ HMENU hMenu,
+ PVOID Buffer,
+ ULONG nBufSize,
+ DWORD Reserved);
+
+DWORD
+NTAPI
+NtUserCheckMenuItem(
+  HMENU hmenu,
+  UINT uIDCheckItem,
+  UINT uCheck);
+
+HMENU
+NTAPI
+NtUserCreateMenu(BOOL PopupMenu);
+
+BOOL
+NTAPI
+NtUserDeleteMenu(
+  HMENU hMenu,
+  UINT uPosition,
+  UINT uFlags);
+
+BOOL
+NTAPI
+NtUserDestroyMenu(
+  HMENU hMenu);
+
+DWORD
+NTAPI
+NtUserDrawMenuBarTemp(
+  HWND hWnd,
+  HDC hDC,
+  PRECT hRect,
+  HMENU hMenu,
+  HFONT hFont);
+
+UINT
+NTAPI
+NtUserEnableMenuItem(
+  HMENU hMenu,
+  UINT uIDEnableItem,
+  UINT uEnable);
+  
+DWORD
+NTAPI
+NtUserInsertMenuItem(
+  HMENU hMenu,
+  UINT uItem,
+  BOOL fByPosition,
+  LPCMENUITEMINFOW lpmii);
+
+BOOL
+NTAPI
+NtUserEndMenu(VOID);
+
+UINT NTAPI
+NtUserGetMenuDefaultItem(
+  HMENU hMenu,
+  UINT fByPos,
+  UINT gmdiFlags);
+
+BOOL
+NTAPI
+NtUserGetMenuBarInfo(
+  HWND hwnd,
+  LONG idObject,
+  LONG idItem,
+  PMENUBARINFO pmbi);
+
+UINT
+NTAPI
+NtUserGetMenuIndex(
+  HMENU hMenu,
+  UINT wID);
+
+BOOL
+NTAPI
+NtUserGetMenuItemRect(
+  HWND hWnd,
+  HMENU hMenu,
+  UINT uItem,
+  LPRECT lprcItem);
+
+HMENU
+NTAPI
+NtUserGetSystemMenu(
+  HWND hWnd,
+  BOOL bRevert);
+
+BOOL
+NTAPI
+NtUserHiliteMenuItem(
+  HWND hwnd,
+  HMENU hmenu,
+  UINT uItemHilite,
+  UINT uHilite);
+
+BOOL
+NTAPI
+NtUserMenuInfo(
+ HMENU hmenu,
+ PROSMENUINFO lpmi,
+ BOOL fsog
+);
+
+int
+NTAPI
+NtUserMenuItemFromPoint(
+  HWND hWnd,
+  HMENU hMenu,
+  DWORD X,
+  DWORD Y);
+
+BOOL
+NTAPI
+NtUserMenuItemInfo(
+ HMENU hMenu,
+ UINT uItem,
+ BOOL fByPosition,
+ PROSMENUITEMINFO lpmii,
+ BOOL fsog
+);
+
+BOOL
+NTAPI
+NtUserRemoveMenu(
+  HMENU hMenu,
+  UINT uPosition,
+  UINT uFlags);
+
+BOOL
+NTAPI
+NtUserSetMenu(
+  HWND hWnd,
+  HMENU hMenu,
+  BOOL bRepaint);
+
+BOOL
+NTAPI
+NtUserSetMenuContextHelpId(
+  HMENU hmenu,
+  DWORD dwContextHelpId);
+
+BOOL
+NTAPI
+NtUserSetMenuDefaultItem(
+  HMENU hMenu,
+  UINT uItem,
+  UINT fByPos);
+
+BOOL
+NTAPI
+NtUserSetMenuFlagRtoL(
+  HMENU hMenu);
+
+BOOL
+NTAPI
+NtUserSetSystemMenu(
+  HWND hWnd,
+  HMENU hMenu);
+
+DWORD
+NTAPI
+NtUserThunkedMenuInfo(
+  HMENU hMenu,
+  LPCMENUINFO lpcmi);
+
+DWORD
+NTAPI
+NtUserThunkedMenuItemInfo(
+  HMENU hMenu,
+  UINT uItem,
+  BOOL fByPosition,
+  BOOL bInsert,
+  LPMENUITEMINFOW lpmii,
+  PUNICODE_STRING lpszCaption);
+
+BOOL
+NTAPI
+NtUserTrackPopupMenuEx(
+  HMENU hmenu,
+  UINT fuFlags,
+  int x,
+  int y,
+  HWND hwnd,
+  LPTPMPARAMS lptpm);
+
+ULONG NTAPI
 NtUserGetSystemMetrics(ULONG Index);
 
-DWORD STDCALL
+DWORD NTAPI
 NtUserGetClassLong(HWND hWnd, DWORD Offset, BOOL Ansi);
 
-LONG STDCALL
+LONG NTAPI
 NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi);
 
-INT STDCALL
+INT NTAPI
 NtUserReleaseDC(HWND hWnd, HDC hDc);
 
-BOOL STDCALL
+BOOL NTAPI
 NtUserGetWindowRect(HWND hWnd, LPRECT Rect);
 
-BOOL STDCALL
+BOOL NTAPI
 NtUserGetClientRect(HWND hWnd, LPRECT Rect);
 
-HANDLE STDCALL
+HANDLE NTAPI
 NtUserGetProp(HWND hWnd, ATOM Atom);
 
-BOOL STDCALL
+BOOL NTAPI
 NtUserGetClientOrigin(HWND hWnd, LPPOINT Point);
 
-HWND STDCALL
+HWND NTAPI
 NtUserGetDesktopWindow();
 
 NTSTATUS
-STDCALL
+NTAPI
 NtUserAcquireOrReleaseInputOwnership(
   BOOLEAN Release);
 
 DWORD
-STDCALL
+NTAPI
 NtUserActivateKeyboardLayout(
   DWORD Unknown0,
   DWORD Unknown1);
 
 DWORD
-STDCALL
+NTAPI
 NtUserAlterWindowStyle(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserAttachThreadInput(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
-HDC STDCALL
+HDC NTAPI
 NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs);
 
 DWORD
-STDCALL
+NTAPI
 NtUserBitBltSysBmp(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -68,13 +260,13 @@ NtUserBitBltSysBmp(
   DWORD Unknown6,
   DWORD Unknown7);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserBlockInput(
-  DWORD Unknown0);
+  BOOL BlockIt);
 
 ULONG
-STDCALL
+NTAPI
 NtUserBuildHwndList(
   HDESK hDesktop,
   HWND hwndParent,
@@ -84,125 +276,158 @@ NtUserBuildHwndList(
   HWND* pWnd,
   ULONG nBufSize);
 
-DWORD
-STDCALL
-NtUserBuildMenuItemList(
- HMENU hMenu,
- PVOID Buffer,
- ULONG nBufSize,
- DWORD Reserved);
-
-
-DWORD
-STDCALL
+NTSTATUS NTAPI
 NtUserBuildNameList(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2,
-  DWORD Unknown3);
+   HWINSTA hWinSta,
+   ULONG dwSize,
+   PVOID lpBuffer,
+   PULONG pRequiredSize);
 
 NTSTATUS
-STDCALL
+NTAPI
 NtUserBuildPropList(
   HWND hWnd,
   LPVOID Buffer,
   DWORD BufferSize,
   DWORD *Count);
 
+enum {
+       HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
+       HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
+};
+
 DWORD
-STDCALL
+NTAPI
 NtUserCallHwnd(
   DWORD Unknown0,
   DWORD Unknown1);
 
+#define HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS      0x54
+#define HWNDLOCK_ROUTINE_DRAWMENUBAR               0x55
+#define HWNDLOCK_ROUTINE_REDRAWFRAME               0x58
+#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW       0x5B
+#define HWNDLOCK_ROUTINE_UPDATEWINDOW              0x5E
 BOOL
-STDCALL
+NTAPI
 NtUserCallHwndLock(
   HWND hWnd,
-  DWORD Unknown1);
+  DWORD Routine);
 
 #define HWNDOPT_ROUTINE_SETPROGMANWINDOW       0x4A
 #define HWNDOPT_ROUTINE_SETTASKMANWINDOW       0x4B
 HWND
-STDCALL
+NTAPI
 NtUserCallHwndOpt(
   HWND Param,
   DWORD Routine);
 
 DWORD
-STDCALL
+NTAPI
 NtUserCallHwndParam(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserCallHwndParamLock(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserCallMsgFilter(
-  DWORD Unknown0,
-  DWORD Unknown1);
-
-DWORD
-STDCALL
+  LPMSG msg,
+  INT code);
+LRESULT
+NTAPI
 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
+NTAPI
 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
-DWORD
-STDCALL
+#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
+#define ONEPARAM_ROUTINE_SHOWCURSOR           0x30 
+DWORD
+NTAPI
 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
-DWORD
-STDCALL
+#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
+NTAPI
 NtUserCallTwoParam(
   DWORD Param1,
   DWORD Param2,
   DWORD Routine);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserChangeClipboardChain(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWndRemove,
+  HWND hWndNewNext);
 
 LONG
-STDCALL
+NTAPI
 NtUserChangeDisplaySettings(
   PUNICODE_STRING lpszDeviceName,
   LPDEVMODEW lpDevMode,
@@ -210,77 +435,70 @@ NtUserChangeDisplaySettings(
   DWORD dwflags,
   LPVOID lParam);
 
-DWORD
-STDCALL
-NtUserCheckMenuItem(
-  HMENU hmenu,
-  UINT uIDCheckItem,
-  UINT uCheck);
-
-DWORD STDCALL
+HWND NTAPI
 NtUserChildWindowFromPointEx(HWND Parent,
                             LONG x,
                             LONG y,
                             UINT Flags);
 
 BOOL
-STDCALL
+NTAPI
 NtUserClipCursor(
   RECT *lpRect);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserCloseClipboard(VOID);
 
 BOOL
-STDCALL
+NTAPI
 NtUserCloseDesktop(
   HDESK hDesktop);
 
 BOOL
-STDCALL
+NTAPI
 NtUserCloseWindowStation(
   HWINSTA hWinSta);
 
 DWORD
-STDCALL
+NTAPI
 NtUserConvertMemHandle(
   DWORD Unknown0,
   DWORD Unknown1);
 
 int
-STDCALL
+NTAPI
 NtUserCopyAcceleratorTable(
   HACCEL Table,
   LPACCEL Entries,
   int EntriesCount);
 
 DWORD
-STDCALL
+NTAPI
 NtUserCountClipboardFormats(VOID);
 
 HACCEL
-STDCALL
+NTAPI
 NtUserCreateAcceleratorTable(
- LPACCEL Entries,
 LPACCEL Entries,
   SIZE_T EntriesCount);
 
 BOOL
-STDCALL
+NTAPI
 NtUserCreateCaret(
   HWND hWnd,
   HBITMAP hBitmap,
   int nWidth,
   int nHeight);
 
-HICON
-STDCALL
+HANDLE
+NTAPI
 NtUserCreateCursorIconHandle(
   PICONINFO IconInfo,
   BOOL Indirect);
 
 HDESK
-STDCALL
+NTAPI
 NtUserCreateDesktop(
   PUNICODE_STRING lpszDesktopName,
   DWORD dwFlags,
@@ -289,19 +507,15 @@ NtUserCreateDesktop(
   HWINSTA hWindowStation);
 
 DWORD
-STDCALL
+NTAPI
 NtUserCreateLocalMemHandle(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2,
   DWORD Unknown3);
 
-HMENU
-STDCALL
-NtUserCreateMenu(VOID);
-
 HWND
-STDCALL
+NTAPI
 NtUserCreateWindowEx(
   DWORD dwExStyle,
   PUNICODE_STRING lpClassName,
@@ -319,7 +533,7 @@ NtUserCreateWindowEx(
   BOOL bUnicodeWindow);
 
 HWINSTA
-STDCALL
+NTAPI
 NtUserCreateWindowStation(
   PUNICODE_STRING lpszWindowStationName,
   ACCESS_MASK dwDesiredAccess,
@@ -329,14 +543,14 @@ NtUserCreateWindowStation(
   DWORD Unknown5);
 
 DWORD
-STDCALL
+NTAPI
 NtUserDdeGetQualityOfService(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserDdeInitialize(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -345,13 +559,13 @@ NtUserDdeInitialize(
   DWORD Unknown4);
 
 DWORD
-STDCALL
+NTAPI
 NtUserDdeSetQualityOfService(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
-HDWP STDCALL
+HDWP NTAPI
 NtUserDeferWindowPos(HDWP WinPosInfo,
                     HWND Wnd,
                     HWND WndInsertAfter,
@@ -360,48 +574,44 @@ NtUserDeferWindowPos(HDWP WinPosInfo,
          int cx,
          int cy,
                     UINT Flags);
-BOOL STDCALL
-NtUserDefSetText(HWND WindowHandle, PANSI_STRING Text);
-
-BOOL
-STDCALL
-NtUserDeleteMenu(
-  HMENU hMenu,
-  UINT uPosition,
-  UINT uFlags);
-
-BOOL
-STDCALL
+BOOL NTAPI
+NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText);
+
+BOOLEAN
+NTAPI
 NtUserDestroyAcceleratorTable(
   HACCEL Table);
 
 BOOL
-STDCALL
-NtUserDestroyCursor(
-  HCURSOR hCursor,
+NTAPI
+NtUserDestroyCursorIcon(
+  HANDLE Handle,
   DWORD Unknown);
 
-BOOL
-STDCALL
-NtUserDestroyMenu(
-  HMENU hMenu);
-
-BOOLEAN STDCALL
+BOOLEAN NTAPI
 NtUserDestroyWindow(HWND Wnd);
 
+typedef struct tagNTUSERDISPATCHMESSAGEINFO
+{
+  BOOL HandledByKernel;
+  BOOL Ansi;
+  WNDPROC Proc;
+  MSG Msg;
+} NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO;
+
 LRESULT
-STDCALL
-NtUserDispatchMessage(CONST MSG* lpmsg);
+NTAPI
+NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo);
 
 BOOL
-STDCALL
+NTAPI
 NtUserDragDetect(
   HWND hWnd,
   LONG x,
   LONG y);
 
 DWORD
-STDCALL
+NTAPI
 NtUserDragObject(
           HWND    hwnd1,
           HWND    hwnd2,
@@ -411,7 +621,7 @@ NtUserDragObject(
           );
 
 DWORD
-STDCALL
+NTAPI
 NtUserDrawAnimatedRects(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -419,7 +629,7 @@ NtUserDrawAnimatedRects(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserDrawCaption(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -427,7 +637,7 @@ NtUserDrawCaption(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserDrawCaptionTemp(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -438,7 +648,7 @@ NtUserDrawCaptionTemp(
   DWORD Unknown6);
 
 BOOL
-STDCALL
+NTAPI
 NtUserDrawIconEx(
   HDC hdc,
   int xLeft,
@@ -453,72 +663,53 @@ NtUserDrawIconEx(
   DWORD Unknown1);
 
 DWORD
-STDCALL
-NtUserDrawMenuBarTemp(
-  HWND hWnd,
-  HDC hDC,
-  PRECT hRect,
-  HMENU hMenu,
-  HFONT hFont);
-
-DWORD
-STDCALL
+NTAPI
 NtUserEmptyClipboard(VOID);
 
-UINT
-STDCALL
-NtUserEnableMenuItem(
-  HMENU hMenu,
-  UINT uIDEnableItem,
-  UINT uEnable);
-  
-DWORD
-STDCALL
-NtUserInsertMenuItem(
-  HMENU hMenu,
-  UINT uItem,
-  WINBOOL fByPosition,
-  LPCMENUITEMINFOW lpmii);
-
-
 BOOL
-STDCALL
+NTAPI
 NtUserEnableScrollBar(
   HWND hWnd,
   UINT wSBflags,
   UINT wArrows);
 
 DWORD
-STDCALL
+NTAPI
 NtUserEndDeferWindowPosEx(
   DWORD Unknown0,
   DWORD Unknown1);
 
-BOOL
-STDCALL
-NtUserEndMenu(VOID);
-
-BOOL STDCALL
+BOOL NTAPI
 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
 
-WINBOOL
-STDCALL
+BOOL
+NTAPI
 NtUserEnumDisplayDevices (
   PUNICODE_STRING lpDevice, /* device name */
   DWORD iDevNum, /* display device */
   PDISPLAY_DEVICE lpDisplayDevice, /* device information */
   DWORD dwFlags ); /* reserved */
 
-WINBOOL
-STDCALL
+/*BOOL
+NTAPI
 NtUserEnumDisplayMonitors (
   HDC hdc,
   LPCRECT lprcClip,
   MONITORENUMPROC lpfnEnum,
-  LPARAM dwData );
+  LPARAM dwData );*/
 
-WINBOOL
-STDCALL
+INT
+NTAPI
+NtUserEnumDisplayMonitors(
+  OPTIONAL IN HDC hDC,
+  OPTIONAL IN LPCRECT pRect,
+  OPTIONAL OUT HMONITOR *hMonitorList,
+  OPTIONAL OUT LPRECT monitorRectList,
+  OPTIONAL IN DWORD listSize );
+
+
+BOOL
+NTAPI
 NtUserEnumDisplaySettings(
   PUNICODE_STRING lpszDeviceName,
   DWORD iModeNum,
@@ -526,18 +717,18 @@ NtUserEnumDisplaySettings(
   DWORD dwFlags );
 
 DWORD
-STDCALL
+NTAPI
 NtUserEvent(
   DWORD Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 NtUserExcludeUpdateRgn(
   DWORD Unknown0,
   DWORD Unknown1);
 
 DWORD
-STDCALL
+NTAPI
 NtUserFillWindow(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -545,13 +736,15 @@ NtUserFillWindow(
   DWORD Unknown3);
 
 HICON
-STDCALL
+NTAPI
 NtUserFindExistingCursorIcon(
   HMODULE hModule,
-  HRSRC hRsrc);
+  HRSRC hRsrc,
+  LONG cx,
+  LONG cy);
 
 HWND
-STDCALL
+NTAPI
 NtUserFindWindowEx(
   HWND  hwndParent,
   HWND  hwndChildAfter,
@@ -560,12 +753,12 @@ NtUserFindWindowEx(
   );
 
 DWORD
-STDCALL
+NTAPI
 NtUserFlashWindowEx(
   DWORD Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetAltTabInfo(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -574,25 +767,25 @@ NtUserGetAltTabInfo(
   DWORD Unknown4,
   DWORD Unknown5);
 
-HWND STDCALL
+HWND NTAPI
 NtUserGetAncestor(HWND hWnd, UINT Flags);
 
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetAsyncKeyState(
   DWORD Unknown0);
 
 UINT
-STDCALL
+NTAPI
 NtUserGetCaretBlinkTime(VOID);
 
 BOOL
-STDCALL
+NTAPI
 NtUserGetCaretPos(
   LPPOINT lpPoint);
 
-DWORD STDCALL
+DWORD NTAPI
 NtUserGetClassInfo(HINSTANCE hInst,
                   LPCWSTR str,
                   LPWNDCLASSEXW wcex,
@@ -600,56 +793,56 @@ NtUserGetClassInfo(HINSTANCE hInst,
                   DWORD unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetClassName(HWND hWnd,
                   LPWSTR lpClassName,
                   ULONG nMaxCount);
 
-DWORD
-STDCALL
+HANDLE
+NTAPI
 NtUserGetClipboardData(
-  DWORD Unknown0,
+  UINT uFormat,
   DWORD Unknown1);
 
-DWORD
-STDCALL
+INT
+NTAPI
 NtUserGetClipboardFormatName(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+  UINT format,
+  PUNICODE_STRING FormatName,
+  INT cchMaxCount);
 
-DWORD
-STDCALL
+HWND
+NTAPI
 NtUserGetClipboardOwner(VOID);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetClipboardSequenceNumber(VOID);
 
-DWORD
-STDCALL
+HWND
+NTAPI
 NtUserGetClipboardViewer(VOID);
 
 BOOL
-STDCALL
+NTAPI
 NtUserGetClipCursor(
   RECT *lpRect);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetComboBoxInfo(
   DWORD Unknown0,
   DWORD Unknown1);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetControlBrush(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetControlColor(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -657,14 +850,14 @@ NtUserGetControlColor(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetCPD(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetCursorFrameInfo(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -672,56 +865,57 @@ NtUserGetCursorFrameInfo(
   DWORD Unknown3);
 
 BOOL
-STDCALL
+NTAPI
 NtUserGetCursorInfo(
   PCURSORINFO pci);
 
-UINT STDCALL
-NtUserGetMenuDefaultItem(
-  HMENU hMenu,
-  UINT fByPos,
-  UINT gmdiFlags);
-
-HDC STDCALL
-NtUserGetDC(HWND hWnd);
+HDC
+NTAPI
+NtUserGetDC(
+  HWND hWnd);
 
-HDC STDCALL NtUserGetDCEx(HWND hWnd, HANDLE hRegion, ULONG Flags);
+HDC
+NTAPI
+NtUserGetDCEx(
+  HWND hWnd,
+  HANDLE hRegion,
+  ULONG Flags);
 
 UINT
-STDCALL
+NTAPI
 NtUserGetDoubleClickTime(VOID);
 
-DWORD
-STDCALL
+HWND
+NTAPI
 NtUserGetForegroundWindow(VOID);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetGuiResources(
   HANDLE hProcess,
   DWORD uiFlags);
 
 BOOL
-STDCALL
+NTAPI
 NtUserGetGUIThreadInfo(
   DWORD idThread,
   LPGUITHREADINFO lpgui);
 
 BOOL
-STDCALL
-NtUserGetIconInfo(
-  HICON hIcon,
+NTAPI
+NtUserGetCursorIconInfo(
+  HANDLE Handle,
   PICONINFO IconInfo);
 
 BOOL
-STDCALL
-NtUserGetIconSize(
-  HICON hIcon,
+NTAPI
+NtUserGetCursorIconSize(
+  HANDLE Handle,
   BOOL *fIcon,
   SIZE *Size);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetImeHotKey(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -729,83 +923,83 @@ NtUserGetImeHotKey(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetInternalWindowPos(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
+HKL
+NTAPI 
+NtUserGetKeyboardLayout(
+  DWORD dwThreadid);
+
 DWORD
-STDCALL
+NTAPI
 NtUserGetKeyboardLayoutList(
   DWORD Unknown0,
   DWORD Unknown1);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserGetKeyboardLayoutName(
-  DWORD Unknown0);
+  LPWSTR lpszName);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetKeyboardState(
   LPBYTE Unknown0);
 
 DWORD
-STDCALL
-NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
+NTAPI
+NtUserGetKeyboardType(
+  DWORD TypeFlag);
 
 DWORD
-STDCALL
+NTAPI
+NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
+  
+DWORD
+NTAPI
 NtUserGetKeyState(
   DWORD Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 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
+NTAPI
 NtUserGetMessage(
-  LPMSG lpMsg,
+  PNTUSERGETMESSAGEINFO MsgInfo,
   HWND hWnd,
   UINT wMsgFilterMin,
   UINT wMsgFilterMax);
 
+BOOL
+NTAPI
+NtUserGetMonitorInfo(
+  IN HMONITOR hMonitor,
+  OUT LPMONITORINFO pMonitorInfo);
+
 DWORD
-STDCALL
+NTAPI
 NtUserGetMouseMovePointsEx(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2,
-  DWORD Unknown3,
-  DWORD Unknown4);
+  UINT cbSize,
+  LPMOUSEMOVEPOINT lppt,
+  LPMOUSEMOVEPOINT lpptBuf,
+  int nBufPoints,
+  DWORD resolution);
 
 BOOL
-STDCALL
+NTAPI
 NtUserGetObjectInformation(
   HANDLE hObject,
   DWORD nIndex,
@@ -813,105 +1007,88 @@ NtUserGetObjectInformation(
   DWORD nLength,
   PDWORD nLengthNeeded);
 
-DWORD
-STDCALL
+HWND
+NTAPI
 NtUserGetOpenClipboardWindow(VOID);
 
-DWORD
-STDCALL
+INT
+NTAPI
 NtUserGetPriorityClipboardFormat(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  UINT *paFormatPriorityList,
+  INT cFormats);
 
 HWINSTA
-STDCALL
+NTAPI
 NtUserGetProcessWindowStation(VOID);
 
 BOOL
-STDCALL
+NTAPI
 NtUserGetScrollBarInfo(
   HWND hWnd, 
   LONG idObject, 
   PSCROLLBARINFO psbi);
 
 BOOL
-STDCALL
+NTAPI
 NtUserGetScrollInfo(
   HWND hwnd, 
   int fnBar, 
   LPSCROLLINFO lpsi);
 
-HMENU
-STDCALL
-NtUserGetSystemMenu(
-  HWND hWnd,
-  BOOL bRevert);
-
 HDESK
-STDCALL
+NTAPI
 NtUserGetThreadDesktop(
   DWORD dwThreadId,
   DWORD Unknown1);
 
+#define THREADSTATE_FOCUSWINDOW (1)
+#define THREADSTATE_INSENDMESSAGE       (2)
 DWORD
-STDCALL
+NTAPI
 NtUserGetThreadState(
-  DWORD Unknown0);
+  DWORD Routine);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetTitleBarInfo(
   DWORD Unknown0,
   DWORD Unknown1);
 
-BOOL STDCALL
+BOOL NTAPI
 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
 
 int
-STDCALL
+NTAPI
 NtUserGetUpdateRgn(
   HWND hWnd,
   HRGN hRgn,
-  WINBOOL bErase);
+  BOOL bErase);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetWindowDC(
   HWND hWnd);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserGetWindowPlacement(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWnd,
+  WINDOWPLACEMENT *lpwndpl);
 
 DWORD
-STDCALL
+NTAPI
 NtUserGetWOWClass(
   DWORD Unknown0,
   DWORD Unknown1);
 
-BOOL
-STDCALL
-NtUserHideCaret(
-  HWND hWnd);
-
-BOOL
-STDCALL
-NtUserHiliteMenuItem(
-  HWND hwnd,
-  HMENU hmenu,
-  UINT uItemHilite,
-  UINT uHilite);
-
 DWORD
-STDCALL
+NTAPI
 NtUserImpersonateDdeClientWindow(
   DWORD Unknown0,
   DWORD Unknown1);
 
 DWORD
-STDCALL
+NTAPI
 NtUserInitializeClientPfnArrays(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -919,7 +1096,7 @@ NtUserInitializeClientPfnArrays(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserInitTask(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -933,35 +1110,21 @@ NtUserInitTask(
   DWORD Unknown9,
   DWORD Unknown10);
 
-DWORD
-STDCALL
+INT
+NTAPI
 NtUserInternalGetWindowText(
   HWND hWnd,
   LPWSTR lpString,
-  int nMaxCount);
-
-DWORD
-STDCALL
-NtUserInvalidateRect(
-HWND hWnd,
-CONST RECT *lpRect,
-WINBOOL bErase);
-
-DWORD
-STDCALL
-  NtUserInvalidateRgn(
-  HWND hWnd,
-  HRGN hRgn,
-  WINBOOL bErase);
+  INT nMaxCount);
 
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserIsClipboardFormatAvailable(
-  DWORD Unknown0);
+  UINT format);
 
 BOOL
-STDCALL
+NTAPI
 NtUserKillSystemTimer
 (
  HWND hWnd,
@@ -969,7 +1132,7 @@ NtUserKillSystemTimer
 );
 
 BOOL
-STDCALL
+NTAPI
 NtUserKillTimer
 (
  HWND hWnd,
@@ -977,7 +1140,7 @@ NtUserKillTimer
 );
 
 DWORD
-STDCALL
+NTAPI
 NtUserLoadKeyboardLayoutEx(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -987,54 +1150,28 @@ NtUserLoadKeyboardLayoutEx(
   DWORD Unknown5);
 
 BOOL
-STDCALL
+NTAPI
 NtUserLockWindowStation(
   HWINSTA hWindowStation);
 
 DWORD
-STDCALL
+NTAPI
 NtUserLockWindowUpdate(
   DWORD Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 NtUserLockWorkStation(VOID);
 
 UINT
-STDCALL
+NTAPI
 NtUserMapVirtualKeyEx( UINT keyCode,
                       UINT transType,
                       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
+NTAPI
 NtUserMessageCall(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1044,31 +1181,50 @@ NtUserMessageCall(
   DWORD Unknown5,
   DWORD Unknown6);
 
-DWORD
-STDCALL
-NtUserMinMaximize(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+BOOL
+NTAPI
+NtUserGetMinMaxInfo(
+  HWND hwnd,
+  MINMAXINFO *MinMaxInfo,
+  BOOL SendMessage);
 
 DWORD
-STDCALL
+NTAPI
 NtUserMNDragLeave(VOID);
 
 DWORD
-STDCALL
+NTAPI
 NtUserMNDragOver(
   DWORD Unknown0,
   DWORD Unknown1);
 
 DWORD
-STDCALL
+NTAPI
 NtUserModifyUserStartupInfoFlags(
   DWORD Unknown0,
   DWORD Unknown1);
 
+HMONITOR
+NTAPI
+NtUserMonitorFromPoint(
+  IN POINT point,
+  IN DWORD dwFlags);
+
+HMONITOR
+NTAPI
+NtUserMonitorFromRect(
+  IN LPCRECT pRect,
+  IN DWORD dwFlags);
+
+HMONITOR
+NTAPI
+NtUserMonitorFromWindow(
+  IN HWND hWnd,
+  IN DWORD dwFlags);
+
+
 BOOL
-STDCALL
+NTAPI
 NtUserMoveWindow(      
     HWND hWnd,
     int X,
@@ -1079,62 +1235,62 @@ NtUserMoveWindow(
 );
 
 DWORD
-STDCALL
+NTAPI
 NtUserNotifyIMEStatus(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserNotifyWinEvent(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2,
   DWORD Unknown3);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserOpenClipboard(
-  DWORD Unknown0,
+  HWND hWnd,
   DWORD Unknown1);
 
 HDESK
-STDCALL
+NTAPI
 NtUserOpenDesktop(
   PUNICODE_STRING lpszDesktopName,
   DWORD dwFlags,
   ACCESS_MASK dwDesiredAccess);
 
 HDESK
-STDCALL
+NTAPI
 NtUserOpenInputDesktop(
   DWORD dwFlags,
   BOOL fInherit,
   ACCESS_MASK dwDesiredAccess);
 
 HWINSTA
-STDCALL
+NTAPI
 NtUserOpenWindowStation(
   PUNICODE_STRING lpszWindowStationName,
   ACCESS_MASK dwDesiredAccess);
 
 BOOL
-STDCALL
+NTAPI
 NtUserPaintDesktop(
   HDC hDC);
 
 BOOL
-STDCALL
+NTAPI
 NtUserPeekMessage(
-  LPMSG lpMsg,
+  PNTUSERGETMESSAGEINFO MsgInfo,
   HWND hWnd,
   UINT wMsgFilterMin,
   UINT wMsgFilterMax,
   UINT wRemoveMsg);
 
 BOOL
-STDCALL
+NTAPI
 NtUserPostMessage(
   HWND hWnd,
   UINT Msg,
@@ -1142,7 +1298,7 @@ NtUserPostMessage(
   LPARAM lParam);
 
 BOOL
-STDCALL
+NTAPI
 NtUserPostThreadMessage(
   DWORD idThread,
   UINT Msg,
@@ -1150,12 +1306,12 @@ NtUserPostThreadMessage(
   LPARAM lParam);
 
 DWORD
-STDCALL
+NTAPI
 NtUserQuerySendMessage(
   DWORD Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 NtUserQueryUserCounters(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1163,21 +1319,28 @@ 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
+NTAPI
 NtUserQueryWindow(
   HWND hWnd,
   DWORD Index);
 
+UINT
+NTAPI
+NtUserRealizePalette(HDC hDC);
+
 DWORD
-STDCALL
+NTAPI
 NtUserRealChildWindowFromPoint(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 BOOL
-STDCALL
+NTAPI
 NtUserRedrawWindow
 (
  HWND hWnd,
@@ -1186,46 +1349,47 @@ 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 NTAPI
+NtUserRegisterClassExWOW(
+   CONST WNDCLASSEXW* lpwcx,
+   PUNICODE_STRING ClassName,
+   PUNICODE_STRING ClassNameCopy,
+   PUNICODE_STRING MenuName,
+   WNDPROC wpExtra,
+   DWORD Flags,
+   DWORD Unknown7,
+   HMENU hMenu);
 
 BOOL
-STDCALL
+NTAPI
 NtUserRegisterHotKey(HWND hWnd,
                     int id,
                     UINT fsModifiers,
                     UINT vk);
 
 DWORD
-STDCALL
+NTAPI
 NtUserRegisterTasklist(
   DWORD Unknown0);
 
-UINT STDCALL
+UINT NTAPI
 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
 
-BOOL
-STDCALL
-NtUserRemoveMenu(
-  HMENU hMenu,
-  UINT uPosition,
-  UINT uFlags);
-
-HANDLE STDCALL
+HANDLE NTAPI
 NtUserRemoveProp(HWND hWnd, ATOM Atom);
 
 DWORD
-STDCALL
+NTAPI
 NtUserResolveDesktopForWOW(
   DWORD Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSBGetParms(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1233,7 +1397,7 @@ NtUserSBGetParms(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserScrollDC(
   HDC hDC,
   int dx,
@@ -1243,33 +1407,33 @@ 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 NTAPI
+NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
+   const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
 
-DWORD
-STDCALL
+UINT
+NTAPI
 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
+LRESULT NTAPI
 NtUserSendMessage(HWND hWnd,
                  UINT Msg,
                  WPARAM wParam,
-                 LPARAM lParam);
+                 LPARAM lParam,
+                  PNTUSERSENDMESSAGEINFO Info);
 
 BOOL
-STDCALL
+NTAPI
 NtUserSendMessageCallback(
   HWND hWnd,
   UINT Msg,
@@ -1278,25 +1442,35 @@ NtUserSendMessageCallback(
   SENDASYNCPROC lpCallBack,
   ULONG_PTR dwData);
 
+LRESULT NTAPI
+NtUserSendMessageTimeout(HWND hWnd,
+                        UINT Msg,
+                        WPARAM wParam,
+                        LPARAM lParam,
+                        UINT uFlags,
+                        UINT uTimeout,
+                        ULONG_PTR *uResult,
+                        PNTUSERSENDMESSAGEINFO Info);
+
 BOOL
-STDCALL
+NTAPI
 NtUserSendNotifyMessage(
   HWND hWnd,
   UINT Msg,
   WPARAM wParam,
   LPARAM lParam);
 
-HWND STDCALL
+HWND NTAPI
 NtUserSetActiveWindow(HWND Wnd);
-HWND STDCALL
+HWND NTAPI
 NtUserGetActiveWindow(VOID);
 
-HWND STDCALL
+HWND NTAPI
 NtUserSetCapture(HWND Wnd);
-HWND STDCALL
+HWND NTAPI
 NtUserGetCapture(VOID);
 
-DWORD STDCALL
+DWORD NTAPI
 NtUserSetClassLong(
   HWND  hWnd,
   DWORD Offset,
@@ -1305,45 +1479,53 @@ NtUserSetClassLong(
 
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetClassWord(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
-STDCALL
+HANDLE
+NTAPI
 NtUserSetClipboardData(
-  DWORD Unknown0,
-  DWORD Unknown1,
+  UINT uFormat,
+  HANDLE hMem,
   DWORD Unknown2);
 
-DWORD
-STDCALL
+HWND
+NTAPI
 NtUserSetClipboardViewer(
-  DWORD Unknown0);
+  HWND hWndNewViewer);
 
-DWORD
+HPALETTE
 STDCALL
+NtUserSelectPalette(
+    HDC hDC,
+    HPALETTE  hpal,
+    BOOL  ForceBackground
+);
+
+DWORD
+NTAPI
 NtUserSetConsoleReserveKeys(
   DWORD Unknown0,
   DWORD Unknown1);
 
 HCURSOR
-STDCALL
+NTAPI
 NtUserSetCursor(
   HCURSOR hCursor);
 
 BOOL
-STDCALL
+NTAPI
 NtUserSetCursorIconContents(
-  HCURSOR hCursor,
+  HANDLE Handle,
   PICONINFO IconInfo);
 
 BOOL
-STDCALL
+NTAPI
 NtUserSetCursorIconData(
-  HICON hIcon,
+  HANDLE Handle,
   PBOOL fIcon,
   POINT *Hotspot,
   HMODULE hModule,
@@ -1351,18 +1533,18 @@ NtUserSetCursorIconData(
   HRSRC hGroupRsrc);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetDbgTag(
   DWORD Unknown0,
   DWORD Unknown1);
 
 HWND
-STDCALL
+NTAPI
 NtUserSetFocus(
   HWND hWnd);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetImeHotKey(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1371,13 +1553,13 @@ NtUserSetImeHotKey(
   DWORD Unknown4);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetImeOwnerWindow(
   DWORD Unknown0,
   DWORD Unknown1);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetInternalWindowPos(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1385,12 +1567,12 @@ NtUserSetInternalWindowPos(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetKeyboardState(
   LPBYTE Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetLayeredWindowAttributes(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1398,37 +1580,12 @@ NtUserSetLayeredWindowAttributes(
   DWORD Unknown3);
 
 DWORD
-STDCALL
+NTAPI
 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
+NTAPI
 NtUserSetObjectInformation(
   HANDLE hObject,
   DWORD nIndex,
@@ -1436,45 +1593,45 @@ NtUserSetObjectInformation(
   DWORD nLength);
 
 HWND
-STDCALL
+NTAPI
 NtUserSetParent(
   HWND hWndChild,
   HWND hWndNewParent);
 
 BOOL
-STDCALL
+NTAPI
 NtUserSetProcessWindowStation(
   HWINSTA hWindowStation);
 
-BOOL STDCALL
+BOOL NTAPI
 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetRipFlags(
   DWORD Unknown0,
   DWORD Unknown1);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetScrollInfo(
   HWND hwnd, 
   int fnBar, 
-  LPSCROLLINFO lpsi, 
-  DWORD *Changed);
+  LPCSCROLLINFO lpsi, 
+  BOOL bRedraw);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserSetShellWindowEx(
   HWND hwndShell,
   HWND hwndShellListView);
 
 HWND
-STDCALL
+NTAPI
 NtUserGetShellWindow();
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetSysColors(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1482,30 +1639,24 @@ NtUserSetSysColors(
   DWORD Unknown3);
 
 BOOL
-STDCALL
+NTAPI
 NtUserSetSystemCursor(
   HCURSOR hcur,
   DWORD id);
 
 BOOL
-STDCALL
-NtUserSetSystemMenu(
-  HWND hWnd,
-  HMENU hMenu);
-
-BOOL
-STDCALL
+NTAPI
 NtUserSetThreadDesktop(
   HDESK hDesktop);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetThreadState(
   DWORD Unknown0,
   DWORD Unknown1);
 
 UINT_PTR
-STDCALL
+NTAPI
 NtUserSetSystemTimer
 (
  HWND hWnd,
@@ -1515,7 +1666,7 @@ NtUserSetSystemTimer
 );
 
 UINT_PTR
-STDCALL
+NTAPI
 NtUserSetTimer
 (
  HWND hWnd,
@@ -1525,27 +1676,27 @@ NtUserSetTimer
 );
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetWindowFNID(
   DWORD Unknown0,
   DWORD Unknown1);
 
 LONG
-STDCALL
+NTAPI
 NtUserSetWindowLong(
   HWND hWnd,
   DWORD Index,
   LONG NewValue,
   BOOL Ansi);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserSetWindowPlacement(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWnd,
+  WINDOWPLACEMENT *lpwndpl);
 
 BOOL 
-STDCALL NtUserSetWindowPos(      
+NTAPI NtUserSetWindowPos(      
     HWND hWnd,
     HWND hWndInsertAfter,
     int X,
@@ -1555,43 +1706,43 @@ STDCALL NtUserSetWindowPos(
     UINT uFlags
 );
 
-DWORD
-STDCALL
+INT
+NTAPI
 NtUserSetWindowRgn(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+  HWND hWnd,
+  HRGN hRgn,
+  BOOL bRedraw);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetWindowsHookAW(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
-DWORD
-STDCALL
+HHOOK
+NTAPI
 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
+NTAPI
 NtUserSetWindowStationUser(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2,
   DWORD Unknown3);
 
-WORD STDCALL
+WORD NTAPI
 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
 
 DWORD
-STDCALL
+NTAPI
 NtUserSetWinEventHook(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1603,57 +1754,42 @@ NtUserSetWinEventHook(
   DWORD Unknown7);
 
 BOOL
-STDCALL
+NTAPI
 NtUserShowCaret(
-  HWND hWnd);
+  HWND hWnd,
+  BOOL bShow);
 
 DWORD
-STDCALL
+NTAPI
 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
 
 BOOL
-STDCALL
+NTAPI
 NtUserShowWindow(
   HWND hWnd,
   LONG nCmdShow);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserShowWindowAsync(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  HWND hWnd,
+  LONG nCmdShow);
 
 BOOL
-STDCALL
+NTAPI
 NtUserSwitchDesktop(
   HDESK hDesktop);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserSystemParametersInfo(
   UINT uiAction,
   UINT uiParam,
   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
+NTAPI
 NtUserToUnicodeEx(
                  UINT wVirtKey,
                  UINT wScanCode,
@@ -1664,84 +1800,71 @@ NtUserToUnicodeEx(
                  HKL dwhkl );
 
 DWORD
-STDCALL
+NTAPI
 NtUserTrackMouseEvent(
   DWORD Unknown0);
 
-BOOL
-STDCALL
-NtUserTrackPopupMenuEx(
-  HMENU hmenu,
-  UINT fuFlags,
-  int x,
-  int y,
-  HWND hwnd,
-  LPTPMPARAMS lptpm);
-
 int
-STDCALL
+NTAPI
 NtUserTranslateAccelerator(
   HWND Window,
   HACCEL Table,
   LPMSG Message);
 
 BOOL
-STDCALL
+NTAPI
 NtUserTranslateMessage(
   LPMSG lpMsg,
   HKL dwhkl );
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserUnhookWindowsHookEx(
-  DWORD Unknown0);
+  HHOOK Hook);
 
 DWORD
-STDCALL
+NTAPI
 NtUserUnhookWinEvent(
   DWORD Unknown0);
 
 DWORD
-STDCALL
+NTAPI
 NtUserUnloadKeyboardLayout(
   DWORD Unknown0);
 
 BOOL
-STDCALL
+NTAPI
 NtUserUnlockWindowStation(
   HWINSTA hWindowStation);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserUnregisterClass(
-  DWORD Unknown0,
-  DWORD Unknown1,
-  DWORD Unknown2);
+  LPCWSTR ClassNameOrAtom,
+  HINSTANCE hInstance,
+  DWORD Unknown);
 
 BOOL
-STDCALL
+NTAPI
 NtUserUnregisterHotKey(HWND hWnd,
                       int id);
 
 DWORD
-STDCALL
+NTAPI
 NtUserUpdateInputContext(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserUpdateInstance(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
-BOOL STDCALL
-NtUserUpdateWindow( HWND hWnd );
-
 DWORD
-STDCALL
+NTAPI
 NtUserUpdateLayeredWindow(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1753,53 +1876,49 @@ NtUserUpdateLayeredWindow(
   DWORD Unknown7,
   DWORD Unknown8);
 
-DWORD
-STDCALL
+BOOL
+NTAPI
 NtUserUpdatePerUserSystemParameters(
-  DWORD Unknown0,
-  DWORD Unknown1);
+  DWORD dwReserved,
+  BOOL bEnable);
 
 DWORD
-STDCALL
+NTAPI
 NtUserUserHandleGrantAccess(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserValidateHandleSecure(
   DWORD Unknown0);
 
-VOID STDCALL
-NtUserValidateRect(HWND Wnd, const RECT* Rect);
-
-
 DWORD
-STDCALL
+NTAPI
 NtUserVkKeyScanEx(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserWaitForInputIdle(
   DWORD Unknown0,
   DWORD Unknown1,
   DWORD Unknown2);
 
 DWORD
-STDCALL
+NTAPI
 NtUserWaitForMsgAndEvent(
   DWORD Unknown0);
 
 BOOL
-STDCALL
+NTAPI
 NtUserWaitMessage(VOID);
 
 DWORD
-STDCALL
+NTAPI
 NtUserWin32PoolAllocationStats(
   DWORD Unknown0,
   DWORD Unknown1,
@@ -1809,28 +1928,28 @@ NtUserWin32PoolAllocationStats(
   DWORD Unknown5);
 
 HWND
-STDCALL
+NTAPI
 NtUserWindowFromPoint(
   LONG X,
   LONG Y);
 
 DWORD
-STDCALL
+NTAPI
 NtUserYieldTask(VOID);
 
-DWORD STDCALL
+DWORD NTAPI
 NtUserGetWindowThreadProcessId(HWND hWnd, LPDWORD UnsafePid);
 
-DWORD STDCALL
+DWORD NTAPI
 NtUserGetQueueStatus(BOOL ClearChanges);
 
-HWND STDCALL
+HWND NTAPI
 NtUserGetParent(HWND hWnd);
 
-HWND STDCALL
+HWND NTAPI
 NtUserGetWindow(HWND hWnd, UINT Relationship);
 
-HWND STDCALL
+HWND NTAPI
 NtUserGetLastActivePopup(HWND hWnd);
 typedef struct _WndProcHandle
 {
@@ -1839,8 +1958,60 @@ typedef struct _WndProcHandle
   HANDLE ProcessID;
 } WndProcHandle;
                                     
-DWORD STDCALL
+DWORD NTAPI
 NtUserDereferenceWndProcHandle(WNDPROC wpHandle, WndProcHandle *Data);
+
+VOID NTAPI
+NtUserManualGuiCheck(LONG Check);
+
+#define NtUserGetDCBrushColor(hbr) \
+  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
+
+#define NtUserGetDCPenColor(hbr) \
+  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)
+
+#define NtUserSetDCBrushColor(hbr, crColor) \
+  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)
+
+#define NtUserSetDCPenColor(hbr, crColor) \
+  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
+
+typedef struct _SETSCROLLBARINFO
+{
+  int nTrackPos; 
+  int reserved;
+  DWORD rgstate[CCHILDREN_SCROLLBAR+1];
+} SETSCROLLBARINFO, *PSETSCROLLBARINFO;
+
+BOOL
+NTAPI
+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;
+
 #endif /* __WIN32K_NTUSER_H */
 
 /* EOF */