Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / win32ss / include / ntuser.h
diff --git a/reactos/win32ss/include/ntuser.h b/reactos/win32ss/include/ntuser.h
deleted file mode 100644 (file)
index 5482ac6..0000000
+++ /dev/null
@@ -1,3580 +0,0 @@
-#ifndef __WIN32K_NTUSER_H
-#define __WIN32K_NTUSER_H
-
-struct _PROCESSINFO;
-struct _THREADINFO;
-struct _DESKTOP;
-struct _WND;
-struct tagPOPUPMENU;
-#ifndef HIMC
-typedef HANDLE HIMC;
-#endif
-
-#define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
-#define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
-
-#define HANDLEENTRY_DESTROY 1
-#define HANDLEENTRY_INDESTROY 2
-
-typedef struct _USER_HANDLE_ENTRY
-{
-    void *ptr; /* pointer to object */
-    union
-    {
-        PVOID pi;
-        struct _THREADINFO *pti; /* pointer to Win32ThreadInfo */
-        struct _PROCESSINFO *ppi; /* pointer to W32ProcessInfo */
-    };
-    unsigned char type; /* object type (0 if free) */
-    unsigned char flags;
-    unsigned short generation; /* generation counter */
-} USER_HANDLE_ENTRY, *PUSER_HANDLE_ENTRY;
-
-typedef struct _USER_HANDLE_TABLE
-{
-    PUSER_HANDLE_ENTRY handles;
-    PUSER_HANDLE_ENTRY freelist;
-    int nb_handles;
-    int allocated_handles;
-} USER_HANDLE_TABLE, *PUSER_HANDLE_TABLE;
-
-typedef enum _HANDLE_TYPE
-{
-    TYPE_FREE = 0,
-    TYPE_WINDOW = 1,
-    TYPE_MENU = 2,
-    TYPE_CURSOR = 3,
-    TYPE_SETWINDOWPOS = 4,
-    TYPE_HOOK = 5,
-    TYPE_CLIPDATA = 6,
-    TYPE_CALLPROC = 7,
-    TYPE_ACCELTABLE = 8,
-    TYPE_DDEACCESS = 9,
-    TYPE_DDECONV = 10,
-    TYPE_DDEXACT = 11,
-    TYPE_MONITOR = 12,
-    TYPE_KBDLAYOUT = 13,
-    TYPE_KBDFILE = 14,
-    TYPE_WINEVENTHOOK = 15,
-    TYPE_TIMER = 16,
-    TYPE_INPUTCONTEXT = 17,
-    TYPE_HIDDATA = 18,
-    TYPE_DEVICEINFO = 19,
-    TYPE_TOUCHINPUTINFO = 20,
-    TYPE_GESTUREINFOOBJ = 21,
-    TYPE_CTYPES,
-    TYPE_GENERIC = 255
-} HANDLE_TYPE, *PHANDLE_TYPE;
-
-typedef enum _USERTHREADINFOCLASS
-{
-    UserThreadShutdownInformation,
-    UserThreadFlags,
-    UserThreadTaskName,
-    UserThreadWOWInformation,
-    UserThreadHungStatus,
-    UserThreadInitiateShutdown,
-    UserThreadEndShutdown,
-    UserThreadUseActiveDesktop,
-    UserThreadUseDesktop,
-    UserThreadRestoreDesktop,
-    UserThreadCsrApiPort,
-} USERTHREADINFOCLASS;
-
-typedef struct _LARGE_UNICODE_STRING
-{
-    ULONG Length;
-    ULONG MaximumLength:31;
-    ULONG bAnsi:1;
-    PWSTR Buffer;
-} LARGE_UNICODE_STRING, *PLARGE_UNICODE_STRING;
-
-typedef struct _LARGE_STRING
-{
-    ULONG Length;
-    ULONG MaximumLength:31;
-    ULONG bAnsi:1;
-    PVOID Buffer;
-} LARGE_STRING, *PLARGE_STRING;
-
-
-/* Based on ANSI_STRING */
-typedef struct _LARGE_ANSI_STRING
-{
-    ULONG Length;
-    ULONG MaximumLength:31;
-    ULONG bAnsi:1;
-    PCHAR Buffer;
-} LARGE_ANSI_STRING, *PLARGE_ANSI_STRING;
-
-VOID
-NTAPI
-RtlInitLargeAnsiString(
-    IN OUT PLARGE_ANSI_STRING,
-    IN PCSZ,
-    IN INT);
-
-VOID
-NTAPI
-RtlInitLargeUnicodeString(
-    IN OUT PLARGE_UNICODE_STRING,
-    IN PCWSTR,
-    IN INT);
-
-BOOL
-NTAPI
-RtlLargeStringToUnicodeString(
-    PUNICODE_STRING,
-    PLARGE_STRING);
-
-#define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1)
-
-typedef struct _DESKTOPINFO
-{
-    PVOID pvDesktopBase;
-    PVOID pvDesktopLimit;
-    struct _WND *spwnd;
-    DWORD fsHooks;
-    LIST_ENTRY aphkStart[NB_HOOKS];
-
-    HWND hTaskManWindow;
-    HWND hProgmanWindow;
-    HWND hShellWindow;
-    struct _WND *spwndShell;
-    struct _WND *spwndBkGnd;
-
-    struct _PROCESSINFO *ppiShellProcess;
-
-    union
-    {
-        UINT Dummy;
-        struct
-        {
-            UINT LastInputWasKbd:1;
-        };
-    };
-
-    WCHAR szDesktopName[1];
-} DESKTOPINFO, *PDESKTOPINFO;
-
-#define CTI_THREADSYSLOCK 0x0001
-#define CTI_INSENDMESSAGE 0x0002
-
-typedef struct _CLIENTTHREADINFO
-{
-    DWORD CTI_flags;
-    WORD fsChangeBits;
-    WORD fsWakeBits;
-    WORD fsWakeBitsJournal;
-    WORD fsWakeMask;
-    ULONG tickLastMsgChecked;
-    DWORD dwcPumpHook;
-} CLIENTTHREADINFO, *PCLIENTTHREADINFO;
-
-typedef struct _HEAD
-{
-    HANDLE h;
-    DWORD cLockObj;
-} HEAD, *PHEAD;
-
-typedef struct _THROBJHEAD
-{
-    HEAD;
-    struct _THREADINFO *pti;
-} THROBJHEAD, *PTHROBJHEAD;
-
-typedef struct _THRDESKHEAD
-{
-    THROBJHEAD;
-    struct _DESKTOP *rpdesk;
-    PVOID pSelf;
-} THRDESKHEAD, *PTHRDESKHEAD;
-
-typedef struct _PROCDESKHEAD
-{
-    HEAD;
-    DWORD_PTR hTaskWow;
-    struct _DESKTOP *rpdesk;
-    PVOID pSelf;
-} PROCDESKHEAD, *PPROCDESKHEAD;
-
-typedef struct _PROCMARKHEAD
-{
-    HEAD;
-    ULONG hTaskWow;
-    struct _PROCESSINFO *ppi;
-} PROCMARKHEAD, *PPROCMARKHEAD;
-
-#define UserHMGetHandle(obj) ((obj)->head.h)
-
-/* Window Client Information structure */
-struct _ETHREAD;
-
-#define WEF_SETBYWNDPTI 0x0001
-
-typedef struct tagHOOK
-{
-    THRDESKHEAD head;
-    struct tagHOOK *phkNext; /* This is for user space. */
-    int HookId; /* Hook table index */
-    ULONG_PTR offPfn;
-    ULONG flags; /* Some internal flags */
-    INT ihmod;
-    struct _THREADINFO *ptiHooked;
-    struct _DESKTOP *rpdesk;
-    /* ReactOS */
-    LIST_ENTRY Chain; /* Hook chain entry */
-    HOOKPROC Proc; /* Hook function */
-    BOOLEAN Ansi; /* Is it an Ansi hook? */
-    UNICODE_STRING ModuleName; /* Module name for global hooks */
-} HOOK, *PHOOK;
-
-typedef struct tagCLIPBOARDDATA
-{
-    HEAD head;
-    DWORD cbData;
-    BYTE Data[0];
-} CLIPBOARDDATA, *PCLIPBOARDDATA;
-
-/* THREADINFO Flags */
-#define TIF_INCLEANUP               0x00000001
-#define TIF_16BIT                   0x00000002
-#define TIF_SYSTEMTHREAD            0x00000004
-#define TIF_CSRSSTHREAD             0x00000008
-#define TIF_TRACKRECTVISIBLE        0x00000010
-#define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
-#define TIF_DONTATTACHQUEUE         0x00000040
-#define TIF_DONTJOURNALATTACH       0x00000080
-#define TIF_WOW64                   0x00000100
-#define TIF_INACTIVATEAPPMSG        0x00000200
-#define TIF_SPINNING                0x00000400
-#define TIF_PALETTEAWARE            0x00000800
-#define TIF_SHAREDWOW               0x00001000
-#define TIF_FIRSTIDLE               0x00002000
-#define TIF_WAITFORINPUTIDLE        0x00004000
-#define TIF_MOVESIZETRACKING        0x00008000
-#define TIF_VDMAPP                  0x00010000
-#define TIF_DOSEMULATOR             0x00020000
-#define TIF_GLOBALHOOKER            0x00040000
-#define TIF_DELAYEDEVENT            0x00080000
-#define TIF_MSGPOSCHANGED           0x00100000
-#define TIF_SHUTDOWNCOMPLETE        0x00200000
-#define TIF_IGNOREPLAYBACKDELAY     0x00400000
-#define TIF_ALLOWOTHERACCOUNTHOOK   0x00800000
-#define TIF_GUITHREADINITIALIZED    0x02000000
-#define TIF_DISABLEIME              0x04000000
-#define TIF_INGETTEXTLENGTH         0x08000000
-#define TIF_ANSILENGTH              0x10000000
-#define TIF_DISABLEHOOKS            0x20000000
-
-typedef struct _CALLBACKWND
-{
-    HWND hWnd;
-    struct _WND *pWnd;
-    PVOID pActCtx;
-} CALLBACKWND, *PCALLBACKWND;
-
-#define CI_TRANSACTION       0x00000001
-#define CI_QUEUEMSG          0x00000002
-#define CI_WOW               0x00000004
-#define CI_INITTHREAD        0x00000008
-#define CI_CURTHPRHOOK       0x00000010
-#define CI_CLASSESREGISTERED 0x00000020
-#define CI_IMMACTIVATE       0x00000040
-
-typedef struct _CLIENTINFO
-{
-    ULONG_PTR CI_flags;
-    ULONG_PTR cSpins;
-    DWORD dwExpWinVer;
-    DWORD dwCompatFlags;
-    DWORD dwCompatFlags2;
-    DWORD dwTIFlags; /* ThreadInfo TIF_Xxx flags for User space. */
-    PDESKTOPINFO pDeskInfo;
-    ULONG_PTR ulClientDelta;
-    PHOOK phkCurrent;
-    ULONG fsHooks;
-    CALLBACKWND CallbackWnd;
-    DWORD dwHookCurrent;
-    INT cInDDEMLCallback;
-    PCLIENTTHREADINFO pClientThreadInfo;
-    ULONG_PTR dwHookData;
-    DWORD dwKeyCache;
-    BYTE afKeyState[8];
-    DWORD dwAsyncKeyCache;
-    BYTE afAsyncKeyState[8];
-    BYTE afAsyncKeyStateRecentDow[8];
-    HKL hKL;
-    USHORT CodePage;
-    UCHAR achDbcsCF[2];
-    MSG msgDbcsCB;
-    LPDWORD lpdwRegisteredClasses;
-    ULONG Win32ClientInfo3[26];
-/* It's just a pointer reference not to be used w the structure in user space. */
-    struct _PROCESSINFO *ppi;
-} CLIENTINFO, *PCLIENTINFO;
-
-/* Make sure it fits into the TEB */
-C_ASSERT(sizeof(CLIENTINFO) <= sizeof(((PTEB)0)->Win32ClientInfo));
-
-#define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
-
-typedef struct tagDDEPACK
-{
-    UINT_PTR uiLo;
-    UINT_PTR uiHi;
-} DDEPACK, *PDDEPACK;
-
-#define HRGN_NULL    ((HRGN)0) /* NULL empty region */
-#define HRGN_WINDOW  ((HRGN)1) /* region from window rcWindow */
-#define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */
-
-/* Menu Item fType. */
-#define MFT_RTOL 0x6000
-
-/* Menu Item fState. */
-#define MFS_HBMMENUBMP 0x20000000
-
-typedef struct tagITEM
-{
-    UINT fType;
-    UINT fState;
-    UINT wID;
-    struct tagMENU *spSubMenu; /* Pop-up menu. */
-    HANDLE hbmpChecked;
-    HANDLE hbmpUnchecked;
-    USHORT *Xlpstr; /* Item text pointer. */
-    ULONG cch;
-    DWORD_PTR dwItemData;
-    ULONG xItem; /* Item position. left */
-    ULONG yItem; /*     "          top */
-    ULONG cxItem; /* Item Size Width */
-    ULONG cyItem; /*     "     Height */
-    ULONG dxTab; /* X position of text after Tab */
-    ULONG ulX; /* underline.. start position */
-    ULONG ulWidth; /* underline.. width */
-    HBITMAP hbmp; /* bitmap */
-    INT cxBmp; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
-    INT cyBmp; /* Height " */
-    /* ReactOS */
-    UNICODE_STRING lpstr;
-} ITEM, *PITEM;
-
-typedef struct tagMENULIST
-{
-    struct tagMENULIST *pNext;
-    struct tagMENU *pMenu;
-} MENULIST, *PMENULIST;
-
-/* Menu fFlags, upper byte is MNS_X style flags. */
-#define MNF_POPUP      0x0001
-#define MNF_UNDERLINE  0x0004
-#define MNF_INACTIVE   0x0010
-#define MNF_RTOL       0x0020
-#define MNF_DESKTOPMN  0x0040
-#define MNF_SYSDESKMN  0x0080
-#define MNF_SYSSUBMENU 0x0100
-/* Hack */
-#define MNF_SYSMENU    0x0200
-
-/* (other FocusedItem values give the position of the focused item) */
-#define NO_SELECTED_ITEM 0xffff
-
-typedef struct tagMENU
-{
-    PROCDESKHEAD head;
-    ULONG fFlags; /* [Style flags | Menu flags] */
-    INT iItem; /* nPos of selected item, if -1 not selected. AKA focused item */
-    UINT cAlloced; /* Number of allocated items. Inc's of 8 */
-    UINT cItems; /* Number of items in the menu */
-    ULONG cxMenu; /* Width of the whole menu */
-    ULONG cyMenu; /* Height of the whole menu */
-    ULONG cxTextAlign; /* Offset of text when items have both bitmaps and text */
-    struct _WND *spwndNotify; /* window receiving the messages for ownerdraw */
-    PITEM rgItems; /* Array of menu items */
-    struct tagMENULIST *pParentMenus; /* If this is SubMenu, list of parents. */
-    DWORD dwContextHelpId;
-    ULONG cyMax; /* max height of the whole menu, 0 is screen height */
-    DWORD_PTR dwMenuData; /* application defined value */
-    HBRUSH hbrBack; /* brush for menu background */
-    INT iTop; /* Current scroll position Top */
-    INT iMaxTop; /* Current scroll position Max Top */
-    DWORD dwArrowsOn:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
-    /* ReactOS */
-    LIST_ENTRY ListEntry;
-    HWND hWnd; /* Window containing the menu, use POPUPMENU */
-    BOOL TimeToHide;
-} MENU, *PMENU;
-
-typedef struct tagPOPUPMENU
-{
-    ULONG fIsMenuBar:1;
-    ULONG fHasMenuBar:1;
-    ULONG fIsSysMenu:1;
-    ULONG fIsTrackPopup:1;
-    ULONG fDroppedLeft:1;
-    ULONG fHierarchyDropped:1;
-    ULONG fRightButton:1;
-    ULONG fToggle:1;
-    ULONG fSynchronous:1;
-    ULONG fFirstClick:1;
-    ULONG fDropNextPopup:1;
-    ULONG fNoNotify:1;
-    ULONG fAboutToHide:1;
-    ULONG fShowTimer:1;
-    ULONG fHideTimer:1;
-    ULONG fDestroyed:1;
-    ULONG fDelayedFree:1;
-    ULONG fFlushDelayedFree:1;
-    ULONG fFreed:1;
-    ULONG fInCancel:1;
-    ULONG fTrackMouseEvent:1;
-    ULONG fSendUninit:1;
-    ULONG fRtoL:1;
-    // ULONG fDesktopMenu:1;
-    ULONG iDropDir:5;
-    ULONG fUseMonitorRect:1;
-    struct _WND *spwndNotify;
-    struct _WND *spwndPopupMenu;
-    struct _WND *spwndNextPopup;
-    struct _WND *spwndPrevPopup;
-    PMENU spmenu;
-    PMENU spmenuAlternate;
-    struct _WND *spwndActivePopup;
-    struct tagPOPUPMENU *ppopupmenuRoot;
-    struct tagPOPUPMENU *ppmDelayedFree;
-    UINT posSelectedItem;
-    UINT posDropped;
-} POPUPMENU, *PPOPUPMENU;
-
-typedef struct _REGISTER_SYSCLASS
-{
-    /* This is a reactos specific class used to initialize the
-       system window classes during user32 initialization */
-    PWSTR ClassName;
-    UINT Style;
-    WNDPROC ProcW;
-    UINT ExtraBytes;
-    HICON hCursor;
-    HBRUSH hBrush;
-    WORD fiId;
-    WORD iCls;
-} REGISTER_SYSCLASS, *PREGISTER_SYSCLASS;
-
-typedef struct _CLSMENUNAME
-{
-    LPSTR pszClientAnsiMenuName;
-    LPWSTR pwszClientUnicodeMenuName;
-    PUNICODE_STRING pusMenuName;
-} CLSMENUNAME, *PCLSMENUNAME;
-
-typedef struct tagSBDATA
-{
-    INT posMin;
-    INT posMax;
-    INT page;
-    INT pos;
-} SBDATA, *PSBDATA;
-
-typedef struct tagSBINFO
-{
-    INT WSBflags;
-    SBDATA Horz;
-    SBDATA Vert;
-} SBINFO, *PSBINFO;
-
-typedef struct tagSBCALC
-{
-    INT posMin;
-    INT posMax;
-    INT page;
-    INT pos;
-    INT pxTop;
-    INT pxBottom;
-    INT pxLeft;
-    INT pxRight;
-    INT cpxThumb;
-    INT pxUpArrow;
-    INT pxDownArrow;
-    INT pxStart;
-    INT pxThumbBottom;
-    INT pxThumbTop;
-    INT cpx;
-    INT pxMin;
-} SBCALC, *PSBCALC;
-
-typedef enum _GETCPD
-{
-    UserGetCPDA2U = 0x01, /* " Unicode " */
-    UserGetCPDU2A = 0X02, /* " Ansi " */
-    UserGetCPDClass = 0X10,
-    UserGetCPDWindow = 0X20,
-    UserGetCPDDialog = 0X40,
-    UserGetCPDWndtoCls = 0X80
-} GETCPD, *PGETCPD;
-
-typedef struct _CALLPROCDATA
-{
-    PROCDESKHEAD head;
-    struct _CALLPROCDATA *spcpdNext;
-    WNDPROC pfnClientPrevious;
-    GETCPD wType;
-} CALLPROCDATA, *PCALLPROCDATA;
-
-#define CSF_SERVERSIDEPROC  0x0001
-#define CSF_ANSIPROC        0x0002
-#define CSF_WOWDEFERDESTROY 0x0004
-#define CSF_SYSTEMCLASS     0x0008
-#define CSF_WOWCLASS        0x0010
-#define CSF_WOWEXTRA        0x0020
-#define CSF_CACHEDSMICON    0x0040
-#define CSF_WIN40COMPAT     0x0080
-
-typedef struct _CLS
-{
-    struct _CLS *pclsNext;
-    RTL_ATOM atomClassName;
-    ATOM atomNVClassName;
-    DWORD fnid;
-    struct _DESKTOP *rpdeskParent;
-    PVOID pdce;
-    DWORD CSF_flags;
-    PSTR  lpszClientAnsiMenuName; /* For client use */
-    PWSTR lpszClientUnicodeMenuName; /* "   "      " */
-    PCALLPROCDATA spcpdFirst;
-    struct _CLS *pclsBase;
-    struct _CLS *pclsClone;
-    ULONG cWndReferenceCount;
-    UINT style;
-    WNDPROC lpfnWndProc;
-    INT cbclsExtra;
-    INT cbwndExtra;
-    HINSTANCE hModule;
-    struct _CURICON_OBJECT *spicn;
-    struct _CURICON_OBJECT *spcur;
-    HBRUSH hbrBackground;
-    PWSTR lpszMenuName; /* kernel use */
-    PSTR lpszAnsiClassName; /* " */
-    struct _CURICON_OBJECT *spicnSm;
-    ////
-    UINT Unicode:1; // !CSF_ANSIPROC
-    UINT Global:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
-    UINT MenuNameIsString:1;
-    UINT NotUsed:29;
-} CLS, *PCLS;
-
-typedef struct _SBINFOEX
-{
-    SCROLLBARINFO ScrollBarInfo;
-    SCROLLINFO ScrollInfo;
-} SBINFOEX, *PSBINFOEX;
-
-/* State Flags !Not Implemented! */
-#define WNDS_HASMENU                 0X00000001
-#define WNDS_HASVERTICALSCROOLLBAR   0X00000002
-#define WNDS_HASHORIZONTALSCROLLBAR  0X00000004
-#define WNDS_HASCAPTION              0X00000008
-#define WNDS_SENDSIZEMOVEMSGS        0X00000010
-#define WNDS_MSGBOX                  0X00000020
-#define WNDS_ACTIVEFRAME             0X00000040
-#define WNDS_HASSPB                  0X00000080
-#define WNDS_NONCPAINT               0X00000100
-#define WNDS_SENDERASEBACKGROUND     0X00000200
-#define WNDS_ERASEBACKGROUND         0X00000400
-#define WNDS_SENDNCPAINT             0X00000800
-#define WNDS_INTERNALPAINT           0X00001000
-#define WNDS_UPDATEDIRTY             0X00002000
-#define WNDS_HIDDENPOPUP             0X00004000
-#define WNDS_FORCEMENUDRAW           0X00008000
-#define WNDS_DIALOGWINDOW            0X00010000
-#define WNDS_HASCREATESTRUCTNAME     0X00020000
-#define WNDS_SERVERSIDEWINDOWPROC    0x00040000 /* Call proc inside win32k. */
-#define WNDS_ANSIWINDOWPROC          0x00080000
-#define WNDS_BEINGACTIVATED          0x00100000
-#define WNDS_HASPALETTE              0x00200000
-#define WNDS_PAINTNOTPROCESSED       0x00400000
-#define WNDS_SYNCPAINTPENDING        0x00800000
-#define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
-#define WNDS_RECEIVEDSUSPENDMSG      0x02000000
-#define WNDS_TOGGLETOPMOST           0x04000000
-#define WNDS_REDRAWIFHUNG            0x08000000
-#define WNDS_REDRAWFRAMEIFHUNG       0x10000000
-#define WNDS_ANSICREATOR             0x20000000
-#define WNDS_MAXIMIZESTOMONITOR      0x40000000
-#define WNDS_DESTROYED               0x80000000
-
-#define WNDSACTIVEFRAME              0x00000006
-
-/* State2 Flags !Not Implemented! */
-#define WNDS2_WMPAINTSENT               0X00000001
-#define WNDS2_ENDPAINTINVALIDATE        0X00000002
-#define WNDS2_STARTPAINT                0X00000004
-#define WNDS2_OLDUI                     0X00000008
-#define WNDS2_HASCLIENTEDGE             0X00000010
-#define WNDS2_BOTTOMMOST                0X00000020
-#define WNDS2_FULLSCREEN                0X00000040
-#define WNDS2_INDESTROY                 0X00000080
-#define WNDS2_WIN31COMPAT               0X00000100
-#define WNDS2_WIN40COMPAT               0X00000200
-#define WNDS2_WIN50COMPAT               0X00000400
-#define WNDS2_MAXIMIZEDMONITORREGION    0X00000800
-#define WNDS2_CLOSEBUTTONDOWN           0X00001000
-#define WNDS2_MAXIMIZEBUTTONDOWN        0X00002000
-#define WNDS2_MINIMIZEBUTTONDOWN        0X00004000
-#define WNDS2_HELPBUTTONDOWN            0X00008000
-#define WNDS2_SCROLLBARLINEUPBTNDOWN    0X00010000
-#define WNDS2_SCROLLBARPAGEUPBTNDOWN    0X00020000
-#define WNDS2_SCROLLBARPAGEDOWNBTNDOWN  0X00040000
-#define WNDS2_SCROLLBARLINEDOWNBTNDOWN  0X00080000
-#define WNDS2_ANYSCROLLBUTTONDOWN       0X00100000
-#define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
-#define WNDS2_FORCENCPAINT              0X00400000
-#define WNDS2_FORCEFULLNCPAINTCLIPRGN   0X00800000
-#define WNDS2_FULLSCREENMODE            0X01000000
-#define WNDS2_CAPTIONTEXTTRUNCATED      0X08000000
-#define WNDS2_NOMINMAXANIMATERECTS      0X10000000
-#define WNDS2_SMALLICONFROMWMQUERYDRAG  0X20000000
-#define WNDS2_SHELLHOOKREGISTERED       0X40000000
-#define WNDS2_WMCREATEMSGPROCESSED      0X80000000
-
-/* ExStyles2 */
-#define WS_EX2_CLIPBOARDLISTENER        0X00000001
-#define WS_EX2_LAYEREDINVALIDATE        0X00000002
-#define WS_EX2_REDIRECTEDFORPRINT       0X00000004
-#define WS_EX2_LINKED                   0X00000008
-#define WS_EX2_LAYEREDFORDWM            0X00000010
-#define WS_EX2_LAYEREDLIMBO             0X00000020
-#define WS_EX2_HIGHTDPI_UNAWAR          0X00000040
-#define WS_EX2_VERTICALLYMAXIMIZEDLEFT  0X00000080
-#define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
-#define WS_EX2_HASOVERLAY               0X00000200
-#define WS_EX2_CONSOLEWINDOW            0X00000400
-#define WS_EX2_CHILDNOACTIVATE          0X00000800
-
-#define WPF_MININIT 0x0008
-#define WPF_MAXINIT 0x0010
-
-typedef struct _WND
-{
-    THRDESKHEAD head;
-    DWORD state;
-    DWORD state2;
-    /* Extended style. */
-    DWORD ExStyle;
-    /* Style. */
-    DWORD style;
-    /* Handle of the module that created the window. */
-    HINSTANCE hModule;
-    DWORD fnid;
-    struct _WND *spwndNext;
-    struct _WND *spwndPrev;
-    struct _WND *spwndParent;
-    struct _WND *spwndChild;
-    struct _WND *spwndOwner;
-    RECT rcWindow;
-    RECT rcClient;
-    WNDPROC lpfnWndProc;
-    /* Pointer to the window class. */
-    PCLS pcls;
-    HRGN hrgnUpdate;
-    /* Property list head.*/
-    LIST_ENTRY PropListHead;
-    ULONG PropListItems;
-    /* Scrollbar info */
-    PSBINFO pSBInfo;
-    /* system menu handle. */
-    HMENU SystemMenu;
-    //PMENU spmenuSys;
-    /* Window menu handle or window id */
-    UINT IDMenu; // Use spmenu
-    //PMENU spmenu;
-    HRGN hrgnClip;
-    HRGN hrgnNewFrame;
-    /* Window name. */
-    LARGE_UNICODE_STRING strName;
-    /* Size of the extra data associated with the window. */
-    ULONG cbwndExtra;
-    struct _WND *spwndLastActive;
-    HIMC hImc; // Input context associated with this window.
-    LONG dwUserData;
-    PVOID pActCtx;
-    //PD3DMATRIX pTransForm;
-    struct _WND *spwndClipboardListener;
-    DWORD ExStyle2;
-
-    /* ReactOS */
-    struct
-    {
-        RECT NormalRect;
-        POINT IconPos;
-        POINT MaxPos;
-        UINT flags; /* WPF_ flags. */
-    } InternalPos;
-
-    UINT Unicode:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
-    UINT InternalPosInitialized:1;
-    UINT HideFocus:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
-    UINT HideAccel:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
-
-    /* Scrollbar info */
-    PSBINFOEX pSBInfoex; // convert to PSBINFO
-    /* Entry in the list of thread windows. */
-    LIST_ENTRY ThreadListEntry;
-} WND, *PWND;
-
-#define PWND_BOTTOM ((PWND)1)
-
-typedef struct _SBWND
-{
-    WND wnd;
-    BOOL fVert;
-    UINT wDisableFlags;
-    SBCALC SBCalc;
-} SBWND, *PSBWND;
-
-typedef struct _MDIWND
-{
-  WND wnd;
-  DWORD dwReserved;
-  PVOID pmdi;
-} MDIWND, *PMDIWND;
-
-#define GWLP_MDIWND 4
-
-typedef struct _MENUWND
-{
-    WND wnd;
-    PPOPUPMENU ppopupmenu;
-} MENUWND, *PMENUWND;
-
-typedef struct _PFNCLIENT
-{
-    WNDPROC pfnScrollBarWndProc;
-    WNDPROC pfnTitleWndProc;
-    WNDPROC pfnMenuWndProc;
-    WNDPROC pfnDesktopWndProc;
-    WNDPROC pfnDefWindowProc;
-    WNDPROC pfnMessageWindowProc;
-    WNDPROC pfnSwitchWindowProc;
-    WNDPROC pfnButtonWndProc;
-    WNDPROC pfnComboBoxWndProc;
-    WNDPROC pfnComboListBoxProc;
-    WNDPROC pfnDialogWndProc;
-    WNDPROC pfnEditWndProc;
-    WNDPROC pfnListBoxWndProc;
-    WNDPROC pfnMDIClientWndProc;
-    WNDPROC pfnStaticWndProc;
-    WNDPROC pfnImeWndProc;
-    WNDPROC pfnGhostWndProc;
-    WNDPROC pfnHkINLPCWPSTRUCT;
-    WNDPROC pfnHkINLPCWPRETSTRUCT;
-    WNDPROC pfnDispatchHook;
-    WNDPROC pfnDispatchDefWindowProc;
-    WNDPROC pfnDispatchMessage;
-    WNDPROC pfnMDIActivateDlgProc;
-} PFNCLIENT, *PPFNCLIENT;
-
-/*
-  Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
-  Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
- */
-
-typedef LRESULT
-(CALLBACK *WNDPROC_EX)(
-    HWND,
-    UINT,
-    WPARAM,
-    LPARAM,
-    BOOL);
-
-typedef struct _PFNCLIENTWORKER
-{
-    WNDPROC_EX pfnButtonWndProc;
-    WNDPROC_EX pfnComboBoxWndProc;
-    WNDPROC_EX pfnComboListBoxProc;
-    WNDPROC_EX pfnDialogWndProc;
-    WNDPROC_EX pfnEditWndProc;
-    WNDPROC_EX pfnListBoxWndProc;
-    WNDPROC_EX pfnMDIClientWndProc;
-    WNDPROC_EX pfnStaticWndProc;
-    WNDPROC_EX pfnImeWndProc;
-    WNDPROC_EX pfnGhostWndProc;
-    WNDPROC_EX pfnCtfHookProc;
-} PFNCLIENTWORKER, *PPFNCLIENTWORKER;
-
-typedef LONG_PTR
-(NTAPI *PFN_FNID)(
-    PWND,
-    UINT,
-    WPARAM,
-    LPARAM,
-    ULONG_PTR);
-
-/* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
-#define FNID_FIRST                  0x029A
-#define FNID_SCROLLBAR              0x029A
-#define FNID_ICONTITLE              0x029B
-#define FNID_MENU                   0x029C
-#define FNID_DESKTOP                0x029D
-#define FNID_DEFWINDOWPROC          0x029E
-#define FNID_MESSAGEWND             0x029F
-#define FNID_SWITCH                 0x02A0
-#define FNID_BUTTON                 0x02A1
-#define FNID_COMBOBOX               0x02A2
-#define FNID_COMBOLBOX              0x02A3
-#define FNID_DIALOG                 0x02A4
-#define FNID_EDIT                   0x02A5
-#define FNID_LISTBOX                0x02A6
-#define FNID_MDICLIENT              0x02A7
-#define FNID_STATIC                 0x02A8
-#define FNID_IME                    0x02A9
-#define FNID_GHOST                  0x02AA
-#define FNID_CALLWNDPROC            0x02AB
-#define FNID_CALLWNDPROCRET         0x02AC
-#define FNID_HKINLPCWPEXSTRUCT      0x02AD
-#define FNID_HKINLPCWPRETEXSTRUCT   0x02AE
-#define FNID_MB_DLGPROC             0x02AF
-#define FNID_MDIACTIVATEDLGPROC     0x02B0
-#define FNID_SENDMESSAGE            0x02B1
-#define FNID_SENDMESSAGEFF          0x02B2
-/* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
-#define FNID_SENDMESSAGEWTOOPTION   0x02B3
-#define FNID_SENDMESSAGECALLPROC    0x02B4
-#define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
-#define FNID_TOOLTIPS               0x02B6
-#define FNID_SENDNOTIFYMESSAGE      0x02B7
-#define FNID_SENDMESSAGECALLBACK    0x02B8
-#define FNID_LAST                   0x02B9
-
-#define FNID_NUM FNID_LAST - FNID_FIRST + 1
-#define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
-
-#define FNID_DDEML   0x2000 /* Registers DDEML */
-#define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
-                            /* Seen during WM_CREATE on error exit too. */
-#define FNID_FREED   0x8000 /* Window being Freed... */
-
-#define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
-
-#define GETPFNCLIENTA(fnid) \
- (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
-#define GETPFNCLIENTW(fnid) \
- (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
-
-#define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
-
-/* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
-#define ICLS_BUTTON       0
-#define ICLS_EDIT         1
-#define ICLS_STATIC       2
-#define ICLS_LISTBOX      3
-#define ICLS_SCROLLBAR    4
-#define ICLS_COMBOBOX     5
-#define ICLS_MDICLIENT    6
-#define ICLS_COMBOLBOX    7
-#define ICLS_DDEMLEVENT   8
-#define ICLS_DDEMLMOTHER  9
-#define ICLS_DDEML16BIT   10
-#define ICLS_DDEMLCLIENTA 11
-#define ICLS_DDEMLCLIENTW 12
-#define ICLS_DDEMLSERVERA 13
-#define ICLS_DDEMLSERVERW 14
-#define ICLS_IME          15
-#define ICLS_GHOST        16
-#define ICLS_DESKTOP      17
-#define ICLS_DIALOG       18
-#define ICLS_MENU         19
-#define ICLS_SWITCH       20
-#define ICLS_ICONTITLE    21
-#define ICLS_TOOLTIPS     22
-#if (_WIN32_WINNT <= 0x0501)
-#define ICLS_UNKNOWN      22
-#define ICLS_NOTUSED      23
-#else
-#define ICLS_SYSSHADOW    23
-#define ICLS_HWNDMESSAGE  24
-#define ICLS_NOTUSED      25
-#endif
-#define ICLS_END          31
-
-#define COLOR_LAST COLOR_MENUBAR
-#define MAX_MB_STRINGS 11
-
-#define SRVINFO_DBCSENABLED 0x0002
-#define SRVINFO_IMM32       0x0004
-#define SRVINFO_APIHOOK     0x0010
-#define SRVINFO_METRICS     0x0020
-#define SRVINFO_KBDPREF     0x0080
-
-#define NUM_SYSCOLORS 31
-
-typedef struct tagOEMBITMAPINFO
-{
-    INT x;
-    INT y;
-    INT cx;
-    INT cy;
-} OEMBITMAPINFO, *POEMBITMAPINFO;
-
-typedef enum _OBI_TYPES
-{
-    OBI_CLOSE = 0,
-    OBI_UPARROW = 46,
-    OBI_UPARROWI = 49,
-    OBI_DNARROW = 50,
-    OBI_DNARROWI = 53,
-    OBI_MNARROW = 62,
-    OBI_CTYPES = 93
-} OBI_TYPES;
-
-typedef struct tagMBSTRING
-{
-    WCHAR szName[16];
-    UINT uID;
-    UINT uStr;
-} MBSTRING, *PMBSTRING;
-
-typedef struct tagDPISERVERINFO
-{
-    INT gclBorder;      /* 000 */
-    HFONT hCaptionFont; /* 004 */
-    HFONT hMsgFont;     /* 008 */
-    INT cxMsgFontChar;  /* 00C */
-    INT cyMsgFontChar;  /* 010 */
-    UINT wMaxBtnSize;   /* 014 */
-} DPISERVERINFO, *PDPISERVERINFO;
-
-/* PUSIFlags: */
-#define PUSIF_PALETTEDISPLAY         0x01
-#define PUSIF_SNAPTO                 0x02
-#define PUSIF_COMBOBOXANIMATION      0x04
-#define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
-#define PUSIF_KEYBOARDCUES           0x20
-
-typedef struct _PERUSERSERVERINFO
-{
-    INT aiSysMet[SM_CMETRICS];
-    ULONG argbSystemUnmatched[NUM_SYSCOLORS];
-    COLORREF argbSystem[NUM_SYSCOLORS];
-    HBRUSH ahbrSystem[NUM_SYSCOLORS];
-    HBRUSH hbrGray;
-    POINT ptCursor;
-    POINT ptCursorReal;
-    DWORD dwLastRITEventTickCount;
-    INT nEvents;
-    UINT dtScroll;
-    UINT dtLBSearch;
-    UINT dtCaretBlink;
-    UINT ucWheelScrollLines;
-    UINT ucWheelScrollChars;
-    INT wMaxLeftOverlapChars;
-    INT wMaxRightOverlapChars;
-    INT cxSysFontChar;
-    INT cySysFontChar;
-    TEXTMETRICW tmSysFont;
-    DPISERVERINFO dpiSystem;
-    HICON hIconSmWindows;
-    HICON hIconWindows;
-    DWORD dwKeyCache;
-    DWORD dwAsyncKeyCache;
-    ULONG cCaptures;
-    OEMBITMAPINFO oembmi[OBI_CTYPES];
-    RECT rcScreenReal;
-    USHORT BitCount;
-    USHORT dmLogPixels;
-    BYTE Planes;
-    BYTE BitsPixel;
-    ULONG PUSIFlags;
-    UINT uCaretWidth;
-    USHORT UILangID;
-    DWORD dwLastSystemRITEventTickCountUpdate;
-    ULONG adwDBGTAGFlags[35];
-    DWORD dwTagCount;
-    DWORD dwRIPFlags;
-} PERUSERSERVERINFO, *PPERUSERSERVERINFO;
-
-typedef struct tagSERVERINFO
-{
-    DWORD dwSRVIFlags;
-    ULONG_PTR cHandleEntries;
-    PFN_FNID mpFnidPfn[FNID_NUM];
-    WNDPROC aStoCidPfn[FNID_NUMSERVERPROC];
-    USHORT mpFnid_serverCBWndProc[FNID_NUM];
-    PFNCLIENT apfnClientA;
-    PFNCLIENT apfnClientW;
-    PFNCLIENTWORKER apfnClientWorker;
-    ULONG cbHandleTable;
-    ATOM atomSysClass[ICLS_NOTUSED+1];
-    DWORD dwDefaultHeapBase;
-    DWORD dwDefaultHeapSize;
-    UINT uiShellMsg;
-    MBSTRING MBStrings[MAX_MB_STRINGS];
-    ATOM atomIconSmProp;
-    ATOM atomIconProp;
-    ATOM atomContextHelpIdProp;
-    ATOM atomFrostedWindowProp;
-    CHAR acOemToAnsi[256];
-    CHAR acAnsiToOem[256];
-    DWORD dwInstalledEventHooks;
-    PERUSERSERVERINFO;
-} SERVERINFO, *PSERVERINFO;
-
-#ifdef _M_IX86
-C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
-#endif
-
-
-/* Server event activity bits. */
-#define SRV_EVENT_MENU            0x0001
-#define SRV_EVENT_END_APPLICATION 0x0002
-#define SRV_EVENT_RUNNING         0x0004
-#define SRV_EVENT_NAMECHANGE      0x0008
-#define SRV_EVENT_VALUECHANGE     0x0010
-#define SRV_EVENT_STATECHANGE     0x0020
-#define SRV_EVENT_LOCATIONCHANGE  0x0040
-#define SRV_EVENT_CREATE          0x8000
-
-typedef struct _PROPLISTITEM
-{
-    ATOM Atom;
-    HANDLE Data;
-} PROPLISTITEM, *PPROPLISTITEM;
-
-#define PROPERTY_FLAG_SYSTEM 1
-
-typedef struct _PROPERTY
-{
-    LIST_ENTRY PropListEntry;
-    HANDLE Data;
-    ATOM Atom;
-    WORD fs;
-} PROPERTY, *PPROPERTY;
-
-typedef struct _BROADCASTPARM
-{
-    DWORD flags;
-    DWORD recipients;
-    HDESK hDesk;
-    HWND hWnd;
-    LUID luid;
-} BROADCASTPARM, *PBROADCASTPARM;
-
-struct _THREADINFO *GetW32ThreadInfo(VOID);
-struct _PROCESSINFO *GetW32ProcessInfo(VOID);
-
-typedef struct _WNDMSG
-{
-    DWORD maxMsgs;
-    PINT abMsgs;
-} WNDMSG, *PWNDMSG;
-
-typedef struct _SHAREDINFO
-{
-    PSERVERINFO psi; /* global Server Info */
-    PVOID aheList; /* Handle Entry List */
-    PVOID pDispInfo; /* global PDISPLAYINFO pointer */
-    ULONG_PTR ulSharedDelta; /* Heap delta */
-    WNDMSG awmControl[FNID_LAST - FNID_FIRST];
-    WNDMSG DefWindowMsgs;
-    WNDMSG DefWindowSpecMsgs;
-} SHAREDINFO, *PSHAREDINFO;
-
-/* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
-typedef struct _USERCONNECT
-{
-    ULONG ulVersion;
-    ULONG ulCurrentVersion;
-    DWORD dwDispatchCount;
-    SHAREDINFO siClient;
-} USERCONNECT, *PUSERCONNECT;
-
-/* WinNT 5.0 compatible user32 / win32k */
-#define USER_VERSION MAKELONG(0x0000, 0x0005)
-
-#if defined(_M_IX86)
-C_ASSERT(sizeof(USERCONNECT) == 0x124);
-#endif
-
-typedef struct tagGETCLIPBDATA
-{
-    UINT uFmtRet;
-    BOOL fGlobalHandle;
-    union
-    {
-        HANDLE hLocale;
-        HANDLE hPalette;
-    };
-} GETCLIPBDATA, *PGETCLIPBDATA;
-
-typedef struct tagSETCLIPBDATA
-{
-    BOOL fGlobalHandle;
-    BOOL fIncSerialNumber;
-} SETCLIPBDATA, *PSETCLIPBDATA;
-
-/* Used with NtUserSetCursorIconData, last parameter. */
-typedef struct tagCURSORDATA
-{
-    LPWSTR lpName;
-    LPWSTR lpModName;
-    USHORT rt;
-    USHORT dummy;
-    ULONG CURSORF_flags;
-    SHORT xHotspot;
-    SHORT yHotspot;
-    HBITMAP hbmMask;
-    HBITMAP hbmColor;
-    HBITMAP hbmAlpha;
-    RECT rcBounds;
-    HBITMAP hbmUserAlpha; /* Could be in W7U, not in W2k */
-    ULONG bpp;
-    ULONG cx;
-    ULONG cy;
-    UINT cpcur;
-    UINT cicur;
-    struct tagCURSORDATA *aspcur;
-    DWORD *aicur;
-    INT *ajifRate;
-    UINT iicur;
-} CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
-
-/* CURSORF_flags: */
-#define CURSORF_FROMRESOURCE 0x0001
-#define CURSORF_GLOBAL       0x0002
-#define CURSORF_LRSHARED     0x0004
-#define CURSORF_ACON         0x0008
-#define CURSORF_WOWCLEANUP   0x0010
-#define CURSORF_ACONFRAME    0x0040
-#define CURSORF_SECRET       0x0080
-#define CURSORF_LINKED       0x0100
-#define CURSORF_CURRENT      0x0200
-
-typedef struct tagIMEINFOEX
-{
-    HKL hkl;
-    IMEINFO ImeInfo;
-    WCHAR wszUIClass[16];
-    ULONG fdwInitConvMode;
-    INT fInitOpen;
-    INT fLoadFlag;
-    DWORD dwProdVersion;
-    DWORD dwImeWinVersion;
-    WCHAR wszImeDescription[50];
-    WCHAR wszImeFile[80];
-    struct
-    {
-        INT fSysWow64Only:1;
-        INT fCUASLayer:1;
-    };
-} IMEINFOEX, *PIMEINFOEX;
-
-typedef struct tagIMEUI
-{
-    PWND spwnd;
-    HIMC hIMC;
-    HWND hwndIMC;
-    HKL hKL;
-    HWND hwndUI;
-    INT nCntInIMEProc;
-    struct {
-        UINT fShowStatus:1;
-        UINT fActivate:1;
-        UINT fDestroy:1;
-        UINT fDefault:1;
-        UINT fChildThreadDef:1;
-        UINT fCtrlShowStatus:1;
-        UINT fFreeActiveEvent:1;
-    };
-} IMEUI, *PIMEUI;
-
-/* Window Extra data container. */
-typedef struct _IMEWND
-{
-    WND;
-    PIMEUI pimeui;
-} IMEWND, *PIMEWND;
-
-DWORD
-NTAPI
-NtUserAssociateInputContext(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2,
-    DWORD dwUnknown3);
-
-DWORD
-NTAPI
-NtUserBuildHimcList(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2,
-    DWORD dwUnknown3,
-    DWORD dwUnknown4);
-
-DWORD
-NTAPI
-NtUserCalcMenuBar(
-    HWND   hwnd,
-    DWORD  x,
-    DWORD  width,
-    DWORD  y,
-    LPRECT prc);
-
-DWORD
-NTAPI
-NtUserCheckMenuItem(
-    HMENU hmenu,
-    UINT uIDCheckItem,
-    UINT uCheck);
-
-DWORD
-NTAPI
-NtUserCtxDisplayIOCtl(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2,
-    DWORD dwUnknown3);
-    
-DWORD
-APIENTRY
-NtUserDbgWin32HeapFail(
-    DWORD Unknown0,
-    DWORD Unknown1);
-
-DWORD
-APIENTRY
-NtUserDbgWin32HeapStat(
-    DWORD Unknown0,
-    DWORD Unknown1);
-
-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);
-
-BOOL
-NTAPI
-NtUserEndMenu(VOID);
-
-BOOL
-NTAPI
-NtUserGetMenuBarInfo(
-    HWND hwnd,
-    LONG idObject,
-    LONG idItem,
-    PMENUBARINFO pmbi);
-
-UINT
-NTAPI
-NtUserGetMenuIndex(
-    HMENU hMenu,
-    HMENU hSubMenu);
-
-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);
-
-int
-NTAPI
-NtUserMenuItemFromPoint(
-    HWND hWnd,
-    HMENU hMenu,
-    DWORD X,
-    DWORD Y);
-
-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);
-
-BOOL
-NTAPI
-NtUserThunkedMenuInfo(
-    HMENU hMenu,
-    LPCMENUINFO lpcmi);
-
-BOOL
-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);
-
-HKL
-NTAPI
-NtUserActivateKeyboardLayout(
-    HKL hKl,
-    ULONG Flags);
-
-DWORD
-NTAPI
-NtUserAlterWindowStyle(
-    HWND hWnd,
-    DWORD Index,
-    LONG NewValue);
-
-BOOL
-NTAPI
-NtUserAttachThreadInput(
-    IN DWORD idAttach,
-    IN DWORD idAttachTo,
-    IN BOOL fAttach);
-
-HDC NTAPI
-NtUserBeginPaint(
-    HWND hWnd,
-    PAINTSTRUCT *lPs);
-
-BOOL
-NTAPI
-NtUserBitBltSysBmp(
-    HDC hdc,
-    INT nXDest,
-    INT nYDest,
-    INT nWidth,
-    INT nHeight,
-    INT nXSrc,
-    INT nYSrc,
-    DWORD dwRop);
-
-BOOL
-NTAPI
-NtUserBlockInput(
-    BOOL BlockIt);
-
-NTSTATUS
-NTAPI
-NtUserBuildHwndList(
-    HDESK hDesktop,
-    HWND hwndParent,
-    BOOLEAN bChildren,
-    ULONG dwThreadId,
-    ULONG lParam,
-    HWND *pWnd,
-    ULONG *pBufSize);
-
-NTSTATUS
-NTAPI
-NtUserBuildNameList(
-    HWINSTA hWinSta,
-    ULONG dwSize,
-    PVOID lpBuffer,
-    PULONG pRequiredSize);
-
-NTSTATUS
-NTAPI
-NtUserBuildPropList(
-    HWND hWnd,
-    LPVOID Buffer,
-    DWORD BufferSize,
-    DWORD *Count);
-
-/* apfnSimpleCall indices from Windows XP SP 2 */
-/* TODO: Check for differences in Windows 2000, 2003 and 2008 */
-#define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
-
-enum SimpleCallRoutines
-{
-    NOPARAM_ROUTINE_CREATEMENU,
-    NOPARAM_ROUTINE_CREATEMENUPOPUP,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
-    NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
-    NOPARAM_ROUTINE_CREATESYSTEMTHREADS,
-    NOPARAM_ROUTINE_DESTROY_CARET,
-#endif
-    NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
-    NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
-    NOPARAM_ROUTINE_DESTROY_CARET,
-#endif
-    NOPARAM_ROUTINE_GETDEVICECHANGEINFO,
-    NOPARAM_ROUTINE_GETIMESHOWSTATUS,
-    NOPARAM_ROUTINE_GETINPUTDESKTOP,
-    NOPARAM_ROUTINE_GETMSESSAGEPOS,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
-#else
-    NOPARAM_ROUTINE_GETREMOTEPROCESSID,
-#endif
-    NOPARAM_ROUTINE_HIDECURSORNOCAPTURE,
-    NOPARAM_ROUTINE_LOADCURSANDICOS,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    NOPARAM_ROUTINE_LOADUSERAPIHOOK,
-    NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */
-#endif
-    NOPARAM_ROUTINE_RELEASECAPTURE,
-    NOPARAM_ROUTINE_RESETDBLCLICK,
-    NOPARAM_ROUTINE_ZAPACTIVEANDFOUS,
-    NOPARAM_ROUTINE_REMOTECONSHDWSTOP,
-    NOPARAM_ROUTINE_REMOTEDISCONNECT,
-    NOPARAM_ROUTINE_REMOTELOGOFF,
-    NOPARAM_ROUTINE_REMOTENTSECURITY,
-    NOPARAM_ROUTINE_REMOTESHDWSETUP,
-    NOPARAM_ROUTINE_REMOTESHDWSTOP,
-    NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE,
-    NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE,
-    NOPARAM_ROUTINE_REMOTECONNECTSTATE,
-    NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING,
-    NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    NOPARAM_ROUTINE_WAKERITFORSHTDWN,
-#endif
-    NOPARAM_ROUTINE_INIT_MESSAGE_PUMP,
-    NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    NOPARAM_ROUTINE_LOADUSERAPIHOOK,
-#endif
-    ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    ONEPARAM_ROUTINE_GETSENDMSGRECVR,
-#endif
-    ONEPARAM_ROUTINE_WINDOWFROMDC,
-    ONEPARAM_ROUTINE_ALLOWSETFOREGND,
-    ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
-#endif
-    ONEPARAM_ROUTINE_CSDDEUNINITIALIZE,
-    ONEPARAM_ROUTINE_DIRECTEDYIELD,
-    ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    ONEPARAM_ROUTINE_GETCURSORPOS,
-#endif
-    ONEPARAM_ROUTINE_GETINPUTEVENT,
-    ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT,
-    ONEPARAM_ROUTINE_GETKEYBOARDTYPE,
-    ONEPARAM_ROUTINE_GETPROCDEFLAYOUT,
-    ONEPARAM_ROUTINE_GETQUEUESTATUS,
-    ONEPARAM_ROUTINE_GETWINSTAINFO,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
-#endif
-    ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW,
-    ONEPARAM_ROUTINE_LOADFONTS,
-    ONEPARAM_ROUTINE_MAPDEKTOPOBJECT,
-    ONEPARAM_ROUTINE_MESSAGEBEEP,
-    ONEPARAM_ROUTINE_PLAYEVENTSOUND,
-    ONEPARAM_ROUTINE_POSTQUITMESSAGE,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
-#endif
-    ONEPARAM_ROUTINE_REALIZEPALETTE,
-    ONEPARAM_ROUTINE_REGISTERLPK,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
-#endif
-    ONEPARAM_ROUTINE_REMOTERECONNECT,
-    ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS,
-    ONEPARAM_ROUTINE_RELEASEDC,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    ONEPARAM_ROUTINE_REMOTENOTIFY,
-#endif
-    ONEPARAM_ROUTINE_REPLYMESSAGE,
-    ONEPARAM_ROUTINE_SETCARETBLINKTIME,
-    ONEPARAM_ROUTINE_SETDBLCLICKTIME,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
-#endif
-    ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO,
-    ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,
-#endif
-    ONEPARAM_ROUTINE_SHOWCURSOR,
-    ONEPARAM_ROUTINE_SHOWSTARTGLASS,
-    ONEPARAM_ROUTINE_SWAPMOUSEBUTTON,
-    X_ROUTINE_WOWMODULEUNLOAD,
-#if (WIN32K_VERSION < NTDDI_VISTA)
-    X_ROUTINE_REMOTENOTIFY,
-#endif
-    HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW,
-    HWND_ROUTINE_DWP_GETENABLEDPOPUP,
-    HWND_ROUTINE_GETWNDCONTEXTHLPID,
-    HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
-    HWND_ROUTINE_SETMSGBOX,
-    HWNDOPT_ROUTINE_SETPROGMANWINDOW,
-    HWNDOPT_ROUTINE_SETTASKMANWINDOW,
-    HWNDPARAM_ROUTINE_GETCLASSICOCUR,
-    HWNDPARAM_ROUTINE_CLEARWINDOWSTATE,
-    HWNDPARAM_ROUTINE_KILLSYSTEMTIMER,
-    HWNDPARAM_ROUTINE_SETDIALOGPOINTER,
-    HWNDPARAM_ROUTINE_SETVISIBLE,
-    HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID,
-    HWNDPARAM_ROUTINE_SETWINDOWSTATE,
-    HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
-    HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS,
-    HWNDLOCK_ROUTINE_DRAWMENUBAR,
-    HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD,
-    HWNDLOCK_ROUTINE_GETSYSMENUHANDLE,
-    HWNDLOCK_ROUTINE_REDRAWFRAME,
-    HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK,
-    HWNDLOCK_ROUTINE_SETDLGSYSMENU,
-    HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW,
-    HWNDLOCK_ROUTINE_SETSYSMENU,
-    HWNDLOCK_ROUTINE_UPDATECKIENTRECT,
-    HWNDLOCK_ROUTINE_UPDATEWINDOW,
-    X_ROUTINE_IMESHOWSTATUSCHANGE,
-    TWOPARAM_ROUTINE_ENABLEWINDOW,
-    TWOPARAM_ROUTINE_REDRAWTITLE,
-    TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS,
-    TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW,
-    TWOPARAM_ROUTINE_UPDATEWINDOWS,
-    TWOPARAM_ROUTINE_VALIDATERGN,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER,
-    TWOPARAM_ROUTINE_GETCURSORPOS,
-#endif
-    TWOPARAM_ROUTINE_GETHDEVNAME,
-    TWOPARAM_ROUTINE_INITANSIOEM,
-    TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    TWOPARAM_ROUTINE_REGISTERGHSTWND,
-#endif
-    TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,
-#else
-    TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
-#endif
-    TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS,
-    TWOPARAM_ROUTINE_SHADOWCLEANUP,
-    TWOPARAM_ROUTINE_REMOTESHADOWSTART,
-    TWOPARAM_ROUTINE_SETCARETPOS,
-    TWOPARAM_ROUTINE_SETCURSORPOS,
-#if (WIN32K_VERSION >= NTDDI_VISTA)
-    TWOPARAM_ROUTINE_SETPHYSCURSORPOS,
-#endif
-    TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK,
-    TWOPARAM_ROUTINE_WOWCLEANUP
-};
-
-DWORD
-NTAPI
-NtUserCallHwnd(
-    HWND hWnd,
-    DWORD Routine);
-
-BOOL
-NTAPI
-NtUserCallHwndLock(
-    HWND hWnd,
-    DWORD Routine);
-
-HWND
-NTAPI
-NtUserCallHwndOpt(
-    HWND hWnd,
-    DWORD Routine);
-
-DWORD
-NTAPI
-NtUserCallHwndParam(
-    HWND hWnd,
-    DWORD Param,
-    DWORD Routine);
-
-DWORD
-NTAPI
-NtUserCallHwndParamLock(
-    HWND hWnd,
-    DWORD Param,
-    DWORD Routine);
-
-BOOL
-NTAPI
-NtUserCallMsgFilter(
-    LPMSG msg,
-    INT code);
-
-LRESULT
-NTAPI
-NtUserCallNextHookEx(
-    int Code,
-    WPARAM wParam,
-    LPARAM lParam,
-    BOOL Ansi);
-
-DWORD_PTR
-NTAPI
-NtUserCallNoParam(
-    DWORD Routine);
-
-DWORD_PTR
-NTAPI
-NtUserCallOneParam(
-    DWORD_PTR Param,
-    DWORD Routine);
-
-DWORD_PTR
-NTAPI
-NtUserCallTwoParam(
-    DWORD_PTR Param1,
-    DWORD_PTR Param2,
-    DWORD Routine);
-
-BOOL
-NTAPI
-NtUserChangeClipboardChain(
-    HWND hWndRemove,
-    HWND hWndNewNext);
-
-LONG
-NTAPI
-NtUserChangeDisplaySettings(
-    PUNICODE_STRING lpszDeviceName,
-    LPDEVMODEW lpDevMode,
-    DWORD dwflags,
-    LPVOID lParam);
-
-BOOL
-NTAPI
-NtUserCheckDesktopByThreadId(
-    DWORD dwThreadId);
-
-BOOL
-NTAPI
-NtUserCheckWindowThreadDesktop(
-    HWND hwnd,
-    DWORD dwThreadId,
-    ULONG ReturnValue);
-
-DWORD
-NTAPI
-NtUserCheckImeHotKey(
-    DWORD dwUnknown1,
-    LPARAM dwUnknown2);
-
-HWND NTAPI
-NtUserChildWindowFromPointEx(
-    HWND Parent,
-    LONG x,
-    LONG y,
-    UINT Flags);
-
-BOOL
-NTAPI
-NtUserClipCursor(
-    RECT *lpRect);
-
-BOOL
-NTAPI
-NtUserCloseClipboard(VOID);
-
-BOOL
-NTAPI
-NtUserCloseDesktop(
-    HDESK hDesktop);
-
-BOOL
-NTAPI
-NtUserCloseWindowStation(
-    HWINSTA hWinSta);
-
-/* Console commands for NtUserConsoleControl */
-typedef enum _CONSOLECONTROL
-{
-    ConsoleCtrlDesktopConsoleThread = 0,
-    GuiConsoleWndClassAtom = 1,
-    ConsoleMakePalettePublic = 5,
-    ConsoleAcquireDisplayOwnership,
-} CONSOLECONTROL, *PCONSOLECONTROL;
-
-typedef struct _DESKTOP_CONSOLE_THREAD
-{
-    HDESK DesktopHandle;
-    ULONG_PTR ThreadId;
-} DESKTOP_CONSOLE_THREAD, *PDESKTOP_CONSOLE_THREAD;
-
-NTSTATUS
-APIENTRY
-NtUserConsoleControl(
-    IN CONSOLECONTROL ConsoleCtrl,
-    IN PVOID ConsoleCtrlInfo,
-    IN ULONG ConsoleCtrlInfoLength);
-
-HANDLE
-NTAPI
-NtUserConvertMemHandle(
-    PVOID pData,
-    DWORD cbData);
-
-ULONG
-NTAPI
-NtUserCopyAcceleratorTable(
-    HACCEL Table,
-    LPACCEL Entries,
-    ULONG EntriesCount);
-
-DWORD
-NTAPI
-NtUserCountClipboardFormats(VOID);
-
-HACCEL
-NTAPI
-NtUserCreateAcceleratorTable(
-    LPACCEL Entries,
-    ULONG EntriesCount);
-
-BOOL
-NTAPI
-NtUserCreateCaret(
-    HWND hWnd,
-    HBITMAP hBitmap,
-    int nWidth,
-    int nHeight);
-
-HDESK
-NTAPI
-NtUserCreateDesktop(
-    POBJECT_ATTRIBUTES poa,
-    PUNICODE_STRING lpszDesktopDevice,
-    LPDEVMODEW lpdmw,
-    DWORD dwFlags,
-    ACCESS_MASK dwDesiredAccess);
-
-DWORD
-NTAPI
-NtUserCreateInputContext(
-    DWORD dwUnknown1);
-
-NTSTATUS
-NTAPI
-NtUserCreateLocalMemHandle(
-    HANDLE hMem,
-    PVOID pData,
-    DWORD cbData,
-    DWORD *pcbData);
-
-HWND
-NTAPI
-NtUserCreateWindowEx(
-    DWORD dwExStyle,
-    PLARGE_STRING plstrClassName,
-    PLARGE_STRING plstrClsVersion,
-    PLARGE_STRING plstrWindowName,
-    DWORD dwStyle,
-    int x,
-    int y,
-    int nWidth,
-    int nHeight,
-    HWND hWndParent,
-    HMENU hMenu,
-    HINSTANCE hInstance,
-    LPVOID lpParam,
-    DWORD dwFlags,
-    PVOID acbiBuffer);
-
-HWINSTA
-NTAPI
-NtUserCreateWindowStation(
-    POBJECT_ATTRIBUTES ObjectAttributes,
-    ACCESS_MASK dwDesiredAccess,
-    DWORD Unknown2,
-    DWORD Unknown3,
-    DWORD Unknown4,
-    DWORD Unknown5,
-    DWORD Unknown6);
-
-BOOL
-NTAPI
-NtUserDdeGetQualityOfService(
-    IN HWND hwndClient,
-    IN HWND hWndServer,
-    OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
-
-DWORD
-NTAPI
-NtUserDdeInitialize(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2,
-    DWORD Unknown3,
-    DWORD Unknown4);
-
-BOOL
-NTAPI
-NtUserDdeSetQualityOfService(
-    IN HWND hwndClient,
-    IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
-    OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
-
-HDWP
-NTAPI
-NtUserDeferWindowPos(
-    HDWP WinPosInfo,
-    HWND Wnd,
-    HWND WndInsertAfter,
-    int x,
-    int y,
-    int cx,
-    int cy,
-    UINT Flags);
-
-BOOL
-NTAPI
-NtUserDefSetText(
-    HWND WindowHandle,
-    PLARGE_STRING WindowText);
-
-BOOLEAN
-NTAPI
-NtUserDestroyAcceleratorTable(
-    HACCEL Table);
-
-BOOL
-NTAPI
-NtUserDestroyCursor(
-  _In_ HANDLE Handle,
-  _In_ BOOL bForce);
-
-DWORD
-NTAPI
-NtUserDestroyInputContext(
-    DWORD dwUnknown1);
-
-BOOLEAN
-NTAPI
-NtUserDestroyWindow(
-    HWND Wnd);
-
-DWORD
-NTAPI
-NtUserDisableThreadIme(
-    DWORD dwUnknown1);
-
-LRESULT
-NTAPI
-NtUserDispatchMessage(
-    PMSG pMsg);
-
-BOOL
-NTAPI
-NtUserDragDetect(
-    HWND hWnd,
-    POINT pt);
-
-DWORD
-NTAPI
-NtUserDragObject(
-    HWND hwnd1,
-    HWND hwnd2,
-    UINT u1,
-    DWORD dw1,
-    HCURSOR hc1);
-
-BOOL
-NTAPI
-NtUserDrawAnimatedRects(
-    HWND hwnd,
-    INT idAni,
-    RECT *lprcFrom,
-    RECT *lprcTo);
-
-BOOL
-NTAPI
-NtUserDrawCaption(
-    HWND hWnd,
-    HDC hDc,
-    LPCRECT lpRc,
-    UINT uFlags);
-
-BOOL
-NTAPI
-NtUserDrawCaptionTemp(
-    HWND hWnd,
-    HDC hDC,
-    LPCRECT lpRc,
-    HFONT hFont,
-    HICON hIcon,
-    const PUNICODE_STRING str,
-    UINT uFlags);
-
-/* Used with NtUserDrawIconEx, last parameter. */
-typedef struct _DRAWICONEXDATA
-{
-    HBITMAP hbmMask;
-    HBITMAP hbmColor;
-    int cx;
-    int cy;
-} DRAWICONEXDATA, *PDRAWICONEXDATA;
-
-BOOL
-NTAPI
-NtUserDrawIconEx(
-    HDC hdc,
-    int xLeft,
-    int yTop,
-    HICON hIcon,
-    int cxWidth,
-    int cyWidth,
-    UINT istepIfAniCur,
-    HBRUSH hbrFlickerFreeDraw,
-    UINT diFlags,
-    BOOL bMetaHDC,
-    PVOID pDIXData);
-
-BOOL
-NTAPI
-NtUserEmptyClipboard(VOID);
-
-BOOL
-NTAPI
-NtUserEnableScrollBar(
-    HWND hWnd,
-    UINT wSBflags,
-    UINT wArrows);
-
-BOOL
-NTAPI
-NtUserEndDeferWindowPosEx(
-    HDWP WinPosInfo,
-    DWORD Unknown1);
-
-BOOL
-NTAPI
-NtUserEndPaint(
-    HWND hWnd,
-    CONST PAINTSTRUCT *lPs);
-
-BOOL
-NTAPI
-NtUserEnumDisplayDevices(
-    PUNICODE_STRING lpDevice, /* device name */
-    DWORD iDevNum, /* display device */
-    PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
-    DWORD dwFlags); /* reserved */
-
-/*
-BOOL
-NTAPI
-NtUserEnumDisplayMonitors(
-    HDC hdc,
-    LPCRECT lprcClip,
-    MONITORENUMPROC lpfnEnum,
-    LPARAM dwData);
-*/
-/* FIXME:  The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
-INT
-NTAPI
-NtUserEnumDisplayMonitors(
-    OPTIONAL IN HDC hDC,
-    OPTIONAL IN LPCRECT pRect,
-    OPTIONAL OUT HMONITOR *hMonitorList,
-    OPTIONAL OUT LPRECT monitorRectList,
-    OPTIONAL IN DWORD listSize);
-
-
-NTSTATUS
-NTAPI
-NtUserEnumDisplaySettings(
-    PUNICODE_STRING lpszDeviceName,
-    DWORD iModeNum,
-    LPDEVMODEW lpDevMode, /* FIXME is this correct? */
-    DWORD dwFlags);
-
-DWORD
-NTAPI
-NtUserEvent(
-    DWORD Unknown0);
-
-INT
-NTAPI
-NtUserExcludeUpdateRgn(
-    HDC hDC,
-    HWND hWnd);
-
-BOOL
-NTAPI
-NtUserFillWindow(
-    HWND hWndPaint,
-    HWND hWndPaint1,
-    HDC hDC,
-    HBRUSH hBrush);
-
-HWND
-NTAPI
-NtUserFindWindowEx(
-    HWND hwndParent,
-    HWND hwndChildAfter,
-    PUNICODE_STRING ucClassName,
-    PUNICODE_STRING ucWindowName,
-    DWORD dwUnknown);
-
-BOOL
-NTAPI
-NtUserFlashWindowEx(
-    IN PFLASHWINFO pfwi);
-
-BOOL
-NTAPI
-NtUserGetAltTabInfo(
-    HWND hwnd,
-    INT iItem,
-    PALTTABINFO pati,
-    LPWSTR pszItemText,
-    UINT cchItemText,
-    BOOL Ansi);
-
-HWND
-NTAPI
-NtUserGetAncestor(
-    HWND hWnd,
-    UINT Flags);
-
-DWORD
-NTAPI
-NtUserGetAppImeLevel(
-    DWORD dwUnknown1);
-
-SHORT
-NTAPI
-NtUserGetAsyncKeyState(
-    INT Key);
-
-_Success_(return != 0)
-_At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2))
-ULONG
-APIENTRY
-NtUserGetAtomName(
-    _In_ ATOM atom,
-    _Inout_ PUNICODE_STRING pustrName);
-
-UINT
-NTAPI
-NtUserGetCaretBlinkTime(VOID);
-
-BOOL
-NTAPI
-NtUserGetCaretPos(
-    LPPOINT lpPoint);
-
-BOOL
-NTAPI
-NtUserGetClassInfo(
-    HINSTANCE hInstance,
-    PUNICODE_STRING ClassName,
-    LPWNDCLASSEXW wcex,
-    LPWSTR *ppszMenuName,
-    BOOL Ansi);
-
-INT
-NTAPI
-NtUserGetClassName(
-    HWND hWnd,
-    BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
-    PUNICODE_STRING ClassName);
-
-HANDLE
-NTAPI
-NtUserGetClipboardData(
-    UINT fmt,
-    PGETCLIPBDATA pgcd);
-
-INT
-NTAPI
-NtUserGetClipboardFormatName(
-    UINT uFormat,
-    LPWSTR lpszFormatName,
-    INT cchMaxCount);
-
-HWND
-NTAPI
-NtUserGetClipboardOwner(VOID);
-
-DWORD
-NTAPI
-NtUserGetClipboardSequenceNumber(VOID);
-
-HWND
-NTAPI
-NtUserGetClipboardViewer(VOID);
-
-BOOL
-NTAPI
-NtUserGetClipCursor(
-    RECT *lpRect);
-
-BOOL
-NTAPI
-NtUserGetComboBoxInfo(
-    HWND hWnd,
-    PCOMBOBOXINFO pcbi);
-
-HBRUSH
-NTAPI
-NtUserGetControlBrush(
-    HWND hwnd,
-    HDC  hdc,
-    UINT ctlType);
-
-HBRUSH
-NTAPI
-NtUserGetControlColor(
-    HWND hwndParent,
-    HWND hwnd,
-    HDC hdc,
-    UINT CtlMsg);
-
-ULONG_PTR
-NTAPI
-NtUserGetCPD(
-    HWND hWnd,
-    GETCPD Flags,
-    ULONG_PTR Proc);
-
-HCURSOR
-NTAPI
-NtUserGetCursorFrameInfo(
-    HCURSOR hCursor,
-    DWORD istep,
-    INT *rate_jiffies,
-    DWORD *num_steps);
-
-BOOL
-NTAPI
-NtUserGetCursorInfo(
-    PCURSORINFO pci);
-
-HDC
-NTAPI
-NtUserGetDC(
-    HWND hWnd);
-
-HDC
-NTAPI
-NtUserGetDCEx(
-    HWND hWnd,
-    HANDLE hRegion,
-    ULONG Flags);
-
-UINT
-NTAPI
-NtUserGetDoubleClickTime(VOID);
-
-HWND
-NTAPI
-NtUserGetForegroundWindow(VOID);
-
-DWORD
-NTAPI
-NtUserGetGuiResources(
-    HANDLE hProcess,
-    DWORD uiFlags);
-
-BOOL
-NTAPI
-NtUserGetGUIThreadInfo(
-    DWORD idThread,
-    LPGUITHREADINFO lpgui);
-
-_Success_(return != FALSE)
-BOOL
-NTAPI
-NtUserGetIconInfo(
-    _In_ HANDLE hCurIcon,
-    _Out_opt_ PICONINFO IconInfo,
-    _Inout_opt_ PUNICODE_STRING lpInstName,
-    _Inout_opt_ PUNICODE_STRING lpResName,
-    _Out_opt_ LPDWORD pbpp,
-    _In_ BOOL bInternal);
-
-BOOL
-NTAPI
-NtUserGetIconSize(
-    HANDLE Handle,
-    UINT istepIfAniCur,
-    LONG *plcx,
-    LONG *plcy);
-
-DWORD
-NTAPI
-NtUserGetImeHotKey(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2,
-    DWORD Unknown3);
-
-DWORD
-NTAPI
-NtUserGetImeInfoEx(
-    PIMEINFOEX pImeInfoEx,
-    DWORD dwUnknown2);
-
-DWORD
-NTAPI
-NtUserGetInternalWindowPos(
-    HWND hwnd,
-    LPRECT rectWnd,
-    LPPOINT ptIcon);
-
-HKL
-NTAPI
-NtUserGetKeyboardLayout(
-    DWORD dwThreadid);
-
-UINT
-NTAPI
-NtUserGetKeyboardLayoutList(
-    ULONG nItems,
-    HKL *pHklBuff);
-
-BOOL
-NTAPI
-NtUserGetKeyboardLayoutName(
-    LPWSTR lpszName);
-
-DWORD
-NTAPI
-NtUserGetKeyboardState(
-    LPBYTE Unknown0);
-
-DWORD
-NTAPI
-NtUserGetKeyboardType(
-    DWORD TypeFlag);
-
-DWORD
-NTAPI
-NtUserGetKeyNameText(
-    LONG lParam,
-    LPWSTR lpString,
-    int nSize);
-
-SHORT
-NTAPI
-NtUserGetKeyState(
-    INT VirtKey);
-
-BOOL
-NTAPI
-NtUserGetLayeredWindowAttributes(
-    HWND hwnd,
-    COLORREF *pcrKey,
-    BYTE *pbAlpha,
-    DWORD *pdwFlags);
-
-DWORD
-NTAPI
-NtUserGetListBoxInfo(
-    HWND hWnd);
-
-BOOL
-APIENTRY
-NtUserGetMessage(
-    PMSG pMsg,
-    HWND hWnd,
-    UINT MsgFilterMin,
-    UINT MsgFilterMax);
-
-DWORD
-NTAPI
-NtUserGetMouseMovePointsEx(
-    UINT cbSize,
-    LPMOUSEMOVEPOINT lppt,
-    LPMOUSEMOVEPOINT lpptBuf,
-    int nBufPoints,
-    DWORD resolution);
-
-BOOL
-NTAPI
-NtUserGetObjectInformation(
-    HANDLE hObject,
-    DWORD nIndex,
-    PVOID pvInformation,
-    DWORD nLength,
-    PDWORD nLengthNeeded);
-
-HWND
-NTAPI
-NtUserGetOpenClipboardWindow(VOID);
-
-INT
-NTAPI
-NtUserGetPriorityClipboardFormat(
-    UINT *paFormatPriorityList,
-    INT cFormats);
-
-HWINSTA
-NTAPI
-NtUserGetProcessWindowStation(VOID);
-
-DWORD
-NTAPI
-NtUserGetRawInputBuffer(
-    PRAWINPUT pData,
-    PUINT pcbSize,
-    UINT cbSizeHeader);
-
-DWORD
-NTAPI
-NtUserGetRawInputData(
-    HRAWINPUT hRawInput,
-    UINT uiCommand,
-    LPVOID pData,
-    PUINT pcbSize,
-    UINT cbSizeHeader);
-
-DWORD
-NTAPI
-NtUserGetRawInputDeviceInfo(
-    HANDLE hDevice,
-    UINT uiCommand,
-    LPVOID pData,
-    PUINT pcbSize);
-
-DWORD
-NTAPI
-NtUserGetRawInputDeviceList(
-    PRAWINPUTDEVICELIST pRawInputDeviceList,
-    PUINT puiNumDevices,
-    UINT cbSize);
-
-DWORD
-NTAPI
-NtUserGetRegisteredRawInputDevices(
-    PRAWINPUTDEVICE pRawInputDevices,
-    PUINT puiNumDevices,
-    UINT cbSize);
-
-BOOL
-NTAPI
-NtUserGetScrollBarInfo(
-    HWND hWnd,
-    LONG idObject,
-    PSCROLLBARINFO psbi);
-
-HDESK
-NTAPI
-NtUserGetThreadDesktop(
-    DWORD dwThreadId,
-    DWORD Unknown1);
-
-enum ThreadStateRoutines
-{
-    THREADSTATE_GETTHREADINFO,
-    THREADSTATE_INSENDMESSAGE,
-    THREADSTATE_FOCUSWINDOW,
-    THREADSTATE_ACTIVEWINDOW,
-    THREADSTATE_CAPTUREWINDOW,
-    THREADSTATE_PROGMANWINDOW,
-    THREADSTATE_TASKMANWINDOW,
-    THREADSTATE_GETMESSAGETIME,
-    THREADSTATE_GETINPUTSTATE,
-    THREADSTATE_UPTIMELASTREAD,
-    THREADSTATE_FOREGROUNDTHREAD,
-    THREADSTATE_GETCURSOR,
-    THREADSTATE_GETMESSAGEEXTRAINFO
-};
-
-DWORD_PTR
-NTAPI
-NtUserGetThreadState(
-    DWORD Routine);
-
-BOOLEAN
-NTAPI
-NtUserGetTitleBarInfo(
-    HWND hwnd,
-    PTITLEBARINFO pti);
-
-BOOL
-NTAPI
-NtUserGetUpdateRect(
-    HWND hWnd,
-    LPRECT lpRect,
-    BOOL fErase);
-
-INT
-NTAPI
-NtUserGetUpdateRgn(
-    HWND hWnd,
-    HRGN hRgn,
-    BOOL bErase);
-
-HDC
-NTAPI
-NtUserGetWindowDC(
-    HWND hWnd);
-
-BOOL
-NTAPI
-NtUserGetWindowPlacement(
-    HWND hWnd,
-    WINDOWPLACEMENT *lpwndpl);
-
-PCLS
-NTAPI
-NtUserGetWOWClass(
-    HINSTANCE hInstance,
-    PUNICODE_STRING ClassName);
-
-DWORD
-NTAPI
-NtUserHardErrorControl(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2,
-    DWORD dwUnknown3);
-
-BOOL
-NTAPI
-NtUserImpersonateDdeClientWindow(
-    HWND hWndClient,
-    HWND hWndServer);
-
-NTSTATUS
-NTAPI
-NtUserInitialize(
-    DWORD dwWinVersion,
-    HANDLE hPowerRequestEvent,
-    HANDLE hMediaRequestEvent);
-
-NTSTATUS
-NTAPI
-NtUserInitializeClientPfnArrays(
-    PPFNCLIENT pfnClientA,
-    PPFNCLIENT pfnClientW,
-    PPFNCLIENTWORKER pfnClientWorker,
-    HINSTANCE hmodUser);
-
-DWORD
-NTAPI
-NtUserInitTask(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2,
-    DWORD Unknown3,
-    DWORD Unknown4,
-    DWORD Unknown5,
-    DWORD Unknown6,
-    DWORD Unknown7,
-    DWORD Unknown8,
-    DWORD Unknown9,
-    DWORD Unknown10,
-    DWORD Unknown11);
-
-INT
-NTAPI
-NtUserInternalGetWindowText(
-    HWND hWnd,
-    LPWSTR lpString,
-    INT nMaxCount);
-
-BOOL
-NTAPI
-NtUserInvalidateRect(
-    HWND hWnd,
-    CONST RECT *lpRect,
-    BOOL bErase);
-
-BOOL
-NTAPI
-NtUserInvalidateRgn(
-    HWND hWnd,
-    HRGN hRgn,
-    BOOL bErase);
-
-BOOL
-NTAPI
-NtUserIsClipboardFormatAvailable(
-    UINT format);
-
-BOOL
-NTAPI
-NtUserKillTimer(
-    HWND hWnd,
-    UINT_PTR uIDEvent);
-
-HKL
-NTAPI
-NtUserLoadKeyboardLayoutEx(
-    IN HANDLE Handle,
-    IN DWORD offTable,
-    IN PUNICODE_STRING puszKeyboardName,
-    IN HKL hKL,
-    IN PUNICODE_STRING puszKLID,
-    IN DWORD dwKLID,
-    IN UINT Flags);
-
-BOOL
-NTAPI
-NtUserLockWindowStation(
-    HWINSTA hWindowStation);
-
-BOOL
-NTAPI
-NtUserLockWindowUpdate(
-    HWND hWnd);
-
-BOOL
-NTAPI
-NtUserLockWorkStation(VOID);
-
-UINT
-NTAPI
-NtUserMapVirtualKeyEx(
-    UINT keyCode,
-    UINT transType,
-    DWORD keyboardId,
-    HKL dwhkl);
-
-typedef struct tagDOSENDMESSAGE
-{
-    UINT uFlags;
-    UINT uTimeout;
-    ULONG_PTR Result;
-}
-DOSENDMESSAGE, *PDOSENDMESSAGE;
-
-BOOL
-NTAPI
-NtUserMessageCall(
-    HWND hWnd,
-    UINT Msg,
-    WPARAM wParam,
-    LPARAM lParam,
-    ULONG_PTR ResultInfo,
-    DWORD dwType, /* FNID_XX types */
-    BOOL Ansi);
-
-DWORD
-NTAPI
-NtUserMinMaximize(
-    HWND hWnd,
-    UINT cmd, /* Wine SW_ commands */
-    BOOL Hide);
-
-DWORD
-NTAPI
-NtUserMNDragLeave(VOID);
-
-DWORD
-NTAPI
-NtUserMNDragOver(
-    DWORD Unknown0,
-    DWORD Unknown1);
-
-DWORD
-NTAPI
-NtUserModifyUserStartupInfoFlags(
-    DWORD Unknown0,
-    DWORD Unknown1);
-
-BOOL
-NTAPI
-NtUserMoveWindow(
-    HWND hWnd,
-    int X,
-    int Y,
-    int nWidth,
-    int nHeight,
-    BOOL bRepaint
-);
-
-DWORD
-NTAPI
-NtUserNotifyIMEStatus(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2);
-
-BOOL
-NTAPI
-NtUserNotifyProcessCreate(
-    HANDLE NewProcessId,
-    HANDLE ParentThreadId,
-    ULONG dwUnknown,
-    ULONG CreateFlags);
-
-VOID
-NTAPI
-NtUserNotifyWinEvent(
-    DWORD Event,
-    HWND hWnd,
-    LONG idObject,
-    LONG idChild);
-
-BOOL
-NTAPI
-NtUserOpenClipboard(
-    HWND hWnd,
-    DWORD Unknown1);
-
-HDESK
-NTAPI
-NtUserOpenDesktop(
-    POBJECT_ATTRIBUTES ObjectAttributes,
-    DWORD dwFlags,
-    ACCESS_MASK dwDesiredAccess);
-
-HDESK
-NTAPI
-NtUserOpenInputDesktop(
-    DWORD dwFlags,
-    BOOL fInherit,
-    ACCESS_MASK dwDesiredAccess);
-
-HWINSTA
-NTAPI
-NtUserOpenWindowStation(
-    POBJECT_ATTRIBUTES ObjectAttributes,
-    ACCESS_MASK dwDesiredAccess);
-
-BOOL
-NTAPI
-NtUserPaintDesktop(
-    HDC hDC);
-
-DWORD
-NTAPI
-NtUserPaintMenuBar(
-    HWND hWnd,
-    HDC hDC,
-    ULONG left,    // x,
-    ULONG right,   // width, // Scale the edge thickness, offset?
-    ULONG top,     // y, 
-    BOOL bActive); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground.
-
-BOOL
-APIENTRY
-NtUserPeekMessage(
-    PMSG pMsg,
-    HWND hWnd,
-    UINT MsgFilterMin,
-    UINT MsgFilterMax,
-    UINT RemoveMsg);
-
-BOOL
-NTAPI
-NtUserPostMessage(
-    HWND hWnd,
-    UINT Msg,
-    WPARAM wParam,
-    LPARAM lParam);
-
-BOOL
-NTAPI
-NtUserPostThreadMessage(
-    DWORD idThread,
-    UINT Msg,
-    WPARAM wParam,
-    LPARAM lParam);
-
-BOOL
-NTAPI
-NtUserPrintWindow(
-    HWND hwnd,
-    HDC hdcBlt,
-    UINT nFlags);
-
-NTSTATUS
-NTAPI
-NtUserProcessConnect(
-    IN HANDLE ProcessHandle,
-    OUT PUSERCONNECT pUserConnect,
-    IN ULONG Size); /* sizeof(USERCONNECT) */
-
-NTSTATUS
-NTAPI
-NtUserQueryInformationThread(
-    IN HANDLE ThreadHandle,
-    IN USERTHREADINFOCLASS ThreadInformationClass,
-    OUT PVOID ThreadInformation,
-    IN ULONG ThreadInformationLength);
-
-DWORD
-NTAPI
-NtUserQueryInputContext(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2);
-
-DWORD
-NTAPI
-NtUserQuerySendMessage(
-    DWORD Unknown0);
-
-DWORD
-NTAPI
-NtUserQueryUserCounters(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2,
-    DWORD Unknown3,
-    DWORD Unknown4);
-
-#define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
-#define QUERY_WINDOW_UNIQUE_THREAD_ID  0x01
-#define QUERY_WINDOW_ACTIVE            0x02
-#define QUERY_WINDOW_FOCUS             0x03
-#define QUERY_WINDOW_ISHUNG            0x04
-#define QUERY_WINDOW_REAL_ID           0x05
-#define QUERY_WINDOW_FOREGROUND        0x06
-
-DWORD
-NTAPI
-NtUserQueryWindow(
-    HWND hWnd,
-    DWORD Index);
-
-BOOL
-NTAPI
-NtUserRealInternalGetMessage(
-    LPMSG lpMsg,
-    HWND hWnd,
-    UINT wMsgFilterMin,
-    UINT wMsgFilterMax,
-    UINT wRemoveMsg,
-    BOOL bGMSG);
-
-HWND
-NTAPI
-NtUserRealChildWindowFromPoint(
-    HWND Parent,
-    LONG x,
-    LONG y);
-
-BOOL
-NTAPI
-NtUserRealWaitMessageEx(
-    DWORD dwWakeMask,
-    UINT uTimeout);
-
-BOOL
-NTAPI
-NtUserRedrawWindow(
-    HWND hWnd,
-    CONST RECT *lprcUpdate,
-    HRGN hrgnUpdate,
-    UINT flags);
-
-RTL_ATOM
-NTAPI
-NtUserRegisterClassExWOW(
-    WNDCLASSEXW* lpwcx,
-    PUNICODE_STRING pustrClassName,
-    PUNICODE_STRING pustrCVersion,
-    PCLSMENUNAME pClassMenuName,
-    DWORD fnID,
-    DWORD Flags,
-    LPDWORD pWow);
-
-BOOL
-NTAPI
-NtUserRegisterRawInputDevices(
-    IN PCRAWINPUTDEVICE pRawInputDevices,
-    IN UINT uiNumDevices,
-    IN UINT cbSize);
-
-BOOL
-NTAPI
-NtUserRegisterUserApiHook(
-    PUNICODE_STRING m_dllname1,
-    PUNICODE_STRING m_funname1,
-    DWORD dwUnknown3,
-    DWORD dwUnknown4);
-
-BOOL
-NTAPI
-NtUserRegisterHotKey(
-    HWND hWnd,
-    int id,
-    UINT fsModifiers,
-    UINT vk);
-
-DWORD
-NTAPI
-NtUserRegisterTasklist(
-    DWORD Unknown0);
-
-UINT
-NTAPI
-NtUserRegisterWindowMessage(
-    PUNICODE_STRING MessageName);
-
-DWORD
-NTAPI
-NtUserRemoteConnect(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2,
-    DWORD dwUnknown3);
-
-DWORD
-NTAPI
-NtUserRemoteRedrawRectangle(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2,
-    DWORD dwUnknown3,
-    DWORD dwUnknown4);
-
-DWORD
-NTAPI
-NtUserRemoteRedrawScreen(VOID);
-
-DWORD
-NTAPI
-NtUserRemoteStopScreenUpdates(VOID);
-
-HANDLE
-NTAPI
-NtUserRemoveProp(
-    HWND hWnd,
-    ATOM Atom);
-
-HDESK
-APIENTRY
-NtUserResolveDesktop(
-    IN HANDLE ProcessHandle,
-    IN PUNICODE_STRING DesktopPath,
-    DWORD dwUnknown,
-    OUT HWINSTA* phWinSta);
-
-DWORD
-NTAPI
-NtUserResolveDesktopForWOW(
-    DWORD Unknown0);
-
-BOOL
-NTAPI
-NtUserSBGetParms(
-    HWND hwnd,
-    int fnBar,
-    PSBDATA pSBData,
-    LPSCROLLINFO lpsi);
-
-BOOL
-NTAPI
-NtUserScrollDC(
-    HDC hDC,
-    int dx,
-    int dy,
-    CONST RECT *lprcScroll,
-    CONST RECT *lprcClip ,
-    HRGN hrgnUpdate,
-    LPRECT lprcUpdate);
-
-DWORD
-NTAPI
-NtUserScrollWindowEx(
-    HWND hWnd,
-    INT dx,
-    INT dy,
-    const RECT *rect,
-    const RECT *clipRect,
-    HRGN hrgnUpdate,
-    LPRECT rcUpdate,
-    UINT flags);
-
-UINT
-NTAPI
-NtUserSendInput(
-    UINT nInputs,
-    LPINPUT pInput,
-    INT cbSize);
-
-HWND
-NTAPI
-NtUserSetActiveWindow(
-    HWND Wnd);
-
-DWORD
-NTAPI
-NtUserSetAppImeLevel(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2);
-
-HWND
-NTAPI
-NtUserSetCapture(
-    HWND Wnd);
-
-ULONG_PTR
-NTAPI
-NtUserSetClassLong(
-    HWND hWnd,
-    INT Offset,
-    ULONG_PTR dwNewLong,
-    BOOL Ansi);
-
-WORD
-NTAPI
-NtUserSetClassWord(
-    HWND hWnd,
-    INT nIndex,
-    WORD wNewWord);
-
-HANDLE
-NTAPI
-NtUserSetClipboardData(
-    UINT fmt,
-    HANDLE hMem,
-    PSETCLIPBDATA scd);
-
-HWND
-NTAPI
-NtUserSetClipboardViewer(
-    HWND hWndNewViewer);
-
-HPALETTE
-NTAPI
-NtUserSelectPalette(
-    HDC hDC,
-    HPALETTE hpal,
-    BOOL ForceBackground);
-
-DWORD
-NTAPI
-NtUserSetConsoleReserveKeys(
-    DWORD Unknown0,
-    DWORD Unknown1);
-
-HCURSOR
-NTAPI
-NtUserSetCursor(
-    HCURSOR hCursor);
-
-BOOL
-NTAPI
-NtUserSetCursorContents(
-    HANDLE Handle,
-    PICONINFO IconInfo);
-
-BOOL
-NTAPI
-NtUserSetCursorIconData(
-    _In_ HCURSOR hCursor,
-    _In_opt_ PUNICODE_STRING pustrModule,
-    _In_opt_ PUNICODE_STRING puSrcName,
-    _In_ const CURSORDATA *pCursorData);
-
-typedef struct _tagFINDEXISTINGCURICONPARAM
-{
-    BOOL bIcon;
-    LONG cx;
-    LONG cy;
-} FINDEXISTINGCURICONPARAM;
-
-HICON
-NTAPI
-NtUserFindExistingCursorIcon(
-    _In_ PUNICODE_STRING pustrModule,
-    _In_ PUNICODE_STRING pustrRsrc,
-    _In_ FINDEXISTINGCURICONPARAM *param);
-
-DWORD
-NTAPI
-NtUserSetDbgTag(
-    DWORD Unknown0,
-    DWORD Unknown1);
-    
-DWORD
-APIENTRY
-NtUserSetDbgTagCount(
-    DWORD Unknown0);
-
-HWND
-NTAPI
-NtUserSetFocus(
-    HWND hWnd);
-
-DWORD
-NTAPI
-NtUserSetImeHotKey(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2,
-    DWORD Unknown3,
-    DWORD Unknown4);
-
-DWORD
-NTAPI
-NtUserSetImeInfoEx(
-    PIMEINFOEX pImeInfoEx);
-
-DWORD
-NTAPI
-NtUserSetImeOwnerWindow(
-    DWORD Unknown0,
-    DWORD Unknown1);
-
-DWORD
-NTAPI
-NtUserSetInformationProcess(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2,
-    DWORD dwUnknown3,
-    DWORD dwUnknown4);
-
-NTSTATUS
-NTAPI
-NtUserSetInformationThread(
-    IN HANDLE ThreadHandle,
-    IN USERTHREADINFOCLASS ThreadInformationClass,
-    IN PVOID ThreadInformation,
-    IN ULONG ThreadInformationLength);
-
-DWORD
-NTAPI
-NtUserSetInternalWindowPos(
-    HWND hwnd,
-    UINT showCmd,
-    LPRECT rect,
-    LPPOINT pt);
-
-BOOL
-NTAPI
-NtUserSetKeyboardState(
-    LPBYTE lpKeyState);
-
-BOOL
-NTAPI
-NtUserSetLayeredWindowAttributes(
-    HWND hwnd,
-    COLORREF crKey,
-    BYTE bAlpha,
-    DWORD dwFlags);
-
-BOOL
-NTAPI
-NtUserSetLogonNotifyWindow(
-    HWND hWnd);
-
-BOOL
-NTAPI
-NtUserSetObjectInformation(
-    HANDLE hObject,
-    DWORD nIndex,
-    PVOID pvInformation,
-    DWORD nLength);
-
-HWND
-NTAPI
-NtUserSetParent(
-    HWND hWndChild,
-    HWND hWndNewParent);
-
-BOOL
-NTAPI
-NtUserSetProcessWindowStation(
-    HWINSTA hWindowStation);
-
-BOOL
-NTAPI
-NtUserSetProp(
-    HWND hWnd,
-    ATOM Atom,
-    HANDLE Data);
-
-DWORD
-NTAPI
-NtUserSetRipFlags(
-    DWORD Unknown0);
-
-DWORD
-NTAPI
-NtUserSetScrollInfo(
-    HWND hwnd,
-    int fnBar,
-    LPCSCROLLINFO lpsi,
-    BOOL bRedraw);
-
-BOOL
-NTAPI
-NtUserSetShellWindowEx(
-    HWND hwndShell,
-    HWND hwndShellListView);
-
-BOOL
-NTAPI
-NtUserSetSysColors(
-    int cElements,
-    IN CONST INT *lpaElements,
-    IN CONST COLORREF *lpaRgbValues,
-    FLONG Flags);
-
-BOOL
-NTAPI
-NtUserSetSystemCursor(
-    HCURSOR hcur,
-    DWORD id);
-
-BOOL
-NTAPI
-NtUserSetThreadDesktop(
-    HDESK hDesktop);
-
-DWORD
-NTAPI
-NtUserSetThreadState(
-    DWORD Unknown0,
-    DWORD Unknown1);
-
-UINT_PTR
-NTAPI
-NtUserSetSystemTimer(
-    HWND hWnd,
-    UINT_PTR nIDEvent,
-    UINT uElapse,
-    TIMERPROC lpTimerFunc);
-
-DWORD
-NTAPI
-NtUserSetThreadLayoutHandles(
-    DWORD dwUnknown1,
-    DWORD dwUnknown2);
-
-UINT_PTR
-NTAPI
-NtUserSetTimer(
-    HWND hWnd,
-    UINT_PTR nIDEvent,
-    UINT uElapse,
-    TIMERPROC lpTimerFunc);
-
-BOOL
-NTAPI
-NtUserSetWindowFNID(
-    HWND hWnd,
-    WORD fnID);
-
-LONG
-NTAPI
-NtUserSetWindowLong(
-    HWND hWnd,
-    DWORD Index,
-    LONG NewValue,
-    BOOL Ansi);
-
-BOOL
-NTAPI
-NtUserSetWindowPlacement(
-    HWND hWnd,
-    WINDOWPLACEMENT *lpwndpl);
-
-BOOL
-NTAPI
-NtUserSetWindowPos(
-    HWND hWnd,
-    HWND hWndInsertAfter,
-    int X,
-    int Y,
-    int cx,
-    int cy,
-    UINT uFlags);
-
-INT
-NTAPI
-NtUserSetWindowRgn(
-    HWND hWnd,
-    HRGN hRgn,
-    BOOL bRedraw);
-
-HHOOK
-NTAPI
-NtUserSetWindowsHookAW(
-    int idHook,
-    HOOKPROC lpfn,
-    BOOL Ansi);
-
-HHOOK
-NTAPI
-NtUserSetWindowsHookEx(
-    HINSTANCE Mod,
-    PUNICODE_STRING ModuleName,
-    DWORD ThreadId,
-    int HookId,
-    HOOKPROC HookProc,
-    BOOL Ansi);
-
-BOOL
-NTAPI
-NtUserSetWindowStationUser(
-    HWINSTA hWindowStation,
-    PLUID pluid,
-    PSID psid,
-    DWORD size);
-
-WORD
-NTAPI
-NtUserSetWindowWord(
-    HWND hWnd,
-    INT Index,
-    WORD NewVal);
-
-HWINEVENTHOOK
-NTAPI
-NtUserSetWinEventHook(
-    UINT eventMin,
-    UINT eventMax,
-    HMODULE hmodWinEventProc,
-    PUNICODE_STRING puString,
-    WINEVENTPROC lpfnWinEventProc,
-    DWORD idProcess,
-    DWORD idThread,
-    UINT dwflags);
-
-BOOL
-NTAPI
-NtUserShowCaret(
-    HWND hWnd);
-
-BOOL
-NTAPI
-NtUserHideCaret(
-    HWND hWnd);
-
-DWORD
-NTAPI
-NtUserShowScrollBar(
-    HWND hWnd,
-    int wBar,
-    DWORD bShow);
-
-BOOL
-NTAPI
-NtUserShowWindow(
-    HWND hWnd,
-    LONG nCmdShow);
-
-BOOL
-NTAPI
-NtUserShowWindowAsync(
-    HWND hWnd,
-    LONG nCmdShow);
-
-BOOL
-NTAPI
-NtUserSoundSentry(VOID);
-
-BOOL
-NTAPI
-NtUserSwitchDesktop(
-    HDESK hDesktop);
-
-BOOL
-NTAPI
-NtUserSystemParametersInfo(
-    UINT uiAction,
-    UINT uiParam,
-    PVOID pvParam,
-    UINT fWinIni);
-
-DWORD
-NTAPI
-NtUserTestForInteractiveUser(
-    DWORD dwUnknown1);
-
-INT
-NTAPI
-NtUserToUnicodeEx(
-    UINT wVirtKey,
-    UINT wScanCode,
-    PBYTE lpKeyState,
-    LPWSTR pwszBuff,
-    int cchBuff,
-    UINT wFlags,
-    HKL dwhkl);
-
-BOOL
-NTAPI
-NtUserTrackMouseEvent(
-    LPTRACKMOUSEEVENT lpEventTrack);
-
-int
-NTAPI
-NtUserTranslateAccelerator(
-    HWND Window,
-    HACCEL Table,
-    LPMSG Message);
-
-BOOL
-NTAPI
-NtUserTranslateMessage(
-    LPMSG lpMsg,
-    UINT flags );
-
-BOOL
-NTAPI
-NtUserUnhookWindowsHookEx(
-    HHOOK Hook);
-
-BOOL
-NTAPI
-NtUserUnhookWinEvent(
-    HWINEVENTHOOK hWinEventHook);
-
-BOOL
-NTAPI
-NtUserUnloadKeyboardLayout(
-    HKL hKl);
-
-BOOL
-NTAPI
-NtUserUnlockWindowStation(
-    HWINSTA hWindowStation);
-
-BOOL
-NTAPI
-NtUserUnregisterClass(
-    PUNICODE_STRING ClassNameOrAtom,
-    HINSTANCE hInstance,
-    PCLSMENUNAME pClassMenuName);
-
-BOOL
-NTAPI
-NtUserUnregisterHotKey(
-    HWND hWnd,
-    int id);
-
-BOOL
-NTAPI
-NtUserUnregisterUserApiHook(VOID);
-
-DWORD
-NTAPI
-NtUserUpdateInputContext(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2);
-
-DWORD
-NTAPI
-NtUserUpdateInstance(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2);
-
-BOOL
-NTAPI
-NtUserUpdateLayeredWindow(
-    HWND hwnd,
-    HDC hdcDst,
-    POINT *pptDst,
-    SIZE *psize,
-    HDC hdcSrc,
-    POINT *pptSrc,
-    COLORREF crKey,
-    BLENDFUNCTION *pblend,
-    DWORD dwFlags,
-    RECT *prcDirty);
-
-BOOL
-NTAPI
-NtUserUpdatePerUserSystemParameters(
-    DWORD dwReserved,
-    BOOL bEnable);
-
-BOOL
-NTAPI
-NtUserUserHandleGrantAccess(
-    IN HANDLE hUserHandle,
-    IN HANDLE hJob,
-    IN BOOL bGrant);
-
-BOOL
-NTAPI
-NtUserValidateHandleSecure(
-    HANDLE hHdl);
-
-BOOL
-NTAPI
-NtUserValidateRect(
-    HWND hWnd,
-    CONST RECT *lpRect);
-
-BOOL
-APIENTRY
-NtUserValidateTimerCallback(
-    LPARAM lParam);
-
-DWORD
-NTAPI
-NtUserVkKeyScanEx(
-    WCHAR wChar,
-    HKL KeyboardLayout,
-    BOOL bUsehHK);
-
-DWORD
-NTAPI
-NtUserWaitForInputIdle(
-    IN HANDLE hProcess,
-    IN DWORD dwMilliseconds,
-    IN BOOL Unknown2); /* Always FALSE */
-
-DWORD
-NTAPI
-NtUserWaitForMsgAndEvent(
-    DWORD Unknown0);
-
-BOOL
-NTAPI
-NtUserWaitMessage(VOID);
-
-DWORD
-NTAPI
-NtUserWin32PoolAllocationStats(
-    DWORD Unknown0,
-    DWORD Unknown1,
-    DWORD Unknown2,
-    DWORD Unknown3,
-    DWORD Unknown4,
-    DWORD Unknown5);
-
-HWND
-NTAPI
-NtUserWindowFromPoint(
-    LONG X,
-    LONG Y);
-
-DWORD
-NTAPI
-NtUserYieldTask(VOID);
-
-/* NtUserBad
- * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
- */
-
-#define NOPARAM_ROUTINE_ISCONSOLEMODE             0xffff0001
-#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING     0xfffe000d
-#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING        0xfffe000e
-#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT         0xfffd0050
-#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE         0xfffd0051
-#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
-
-#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_ROS_UPDATEUISTATE   0x1004
-#define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
-
-BOOL
-NTAPI
-NtUserGetMonitorInfo(
-    IN HMONITOR hMonitor,
-    OUT LPMONITORINFO pMonitorInfo);
-
-/* Should be done in usermode */
-
-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);
-
-typedef struct _SETSCROLLBARINFO
-{
-    int nTrackPos;
-    int reserved;
-    DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
-} SETSCROLLBARINFO, *PSETSCROLLBARINFO;
-
-BOOL
-NTAPI
-NtUserSetScrollBarInfo(
-    HWND hwnd,
-    LONG idObject,
-    SETSCROLLBARINFO *info);
-
-#endif /* __WIN32K_NTUSER_H */
-
-/* EOF */