#ifndef __WIN32K_NTUSER_H
#define __WIN32K_NTUSER_H
+
ULONG STDCALL
NtUserGetSystemMetrics(ULONG Index);
DWORD Unknown6,
DWORD Unknown7);
-DWORD
+BOOL
STDCALL
NtUserBlockInput(
- DWORD Unknown0);
+ BOOL BlockIt);
ULONG
STDCALL
HWND* pWnd,
ULONG nBufSize);
-DWORD
-STDCALL
-NtUserBuildMenuItemList(
- HMENU hMenu,
- PVOID Buffer,
- ULONG nBufSize,
- DWORD Reserved);
-
NTSTATUS STDCALL
NtUserBuildNameList(
HWINSTA hWinSta,
DWORD BufferSize,
DWORD *Count);
+enum {
+ HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
+ HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
+};
+
DWORD
STDCALL
NtUserCallHwnd(
DWORD Unknown1,
DWORD Unknown2);
-DWORD
+BOOL
STDCALL
NtUserCallMsgFilter(
- DWORD Unknown0,
- DWORD Unknown1);
-
+ LPMSG msg,
+ INT code);
+
LRESULT
STDCALL
NtUserCallNextHookEx(
WPARAM wParam,
LPARAM lParam);
-#define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */
-#define NOPARAM_ROUTINE_DESTROY_CARET 0xffff0002
-#define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003
-#define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0xffff0004
-#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
+#define NOPARAM_ROUTINE_MSQCLEARWAKEMASK 0x3
+#define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */
+#define NOPARAM_ROUTINE_DESTROY_CARET 0xffff0002
+#define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003
+#define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0xffff0004
+#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
+#define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
+#define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
DWORD
STDCALL
NtUserCallNoParam(
#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0x08
#define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09
#define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x0a
+#define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x0b
+#define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0x0c
+#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d
+#define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0x10
+#define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0x27
+#define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28
+#define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29
DWORD
STDCALL
NtUserCallOneParam(
DWORD Param,
DWORD Routine);
+#define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45
+#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46
+#define TWOPARAM_ROUTINE_GETDCCOLOR 0x47
+#define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0x48
+#define TWOPARAM_ROUTINE_GETWINDOWRGN 0x49
#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0x50
#define TWOPARAM_ROUTINE_SETMENUITEMRECT 0x51
#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0x52
- #define TPR_SGTH_ACTIVE 0x01
- #define TPR_SGTH_FOCUS 0x02
- #define TPR_SGTH_CAPTURE 0x03
- #define TPR_SGTH_MENUOWNER 0x04
- #define TPR_SGTH_MOVESIZE 0x05
- #define TPR_SGTH_CARET 0x06
+ #define MSQ_STATE_CAPTURE 0x1
+ #define MSQ_STATE_ACTIVE 0x2
+ #define MSQ_STATE_FOCUS 0x3
+ #define MSQ_STATE_MENUOWNER 0x4
+ #define MSQ_STATE_MOVESIZE 0x5
+ #define MSQ_STATE_CARET 0x6
#define TWOPARAM_ROUTINE_ENABLEWINDOW 0x53
#define TWOPARAM_ROUTINE_UNKNOWN 0x54
#define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x55
#define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x56
-#define TWOPARAM_ROUTINE_VALIDATERGN 0x57
#define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0x58
-#define TWOPARAM_ROUTINE_CURSORPOSITION 0x59
#define TWOPARAM_ROUTINE_SETCARETPOS 0x60
+#define TWOPARAM_ROUTINE_GETWINDOWINFO 0x61
+#define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0x62
+#define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0x63
+#define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0x64
+#define TWOPARAM_ROUTINE_GETSYSCOLORS 0x65
+#define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66
+#define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000
DWORD
STDCALL
NtUserCallTwoParam(
DWORD dwflags,
LPVOID lParam);
-DWORD
-STDCALL
-NtUserCheckMenuItem(
- HMENU hmenu,
- UINT uIDCheckItem,
- UINT uCheck);
-
HWND STDCALL
NtUserChildWindowFromPointEx(HWND Parent,
LONG x,
DWORD Unknown2,
DWORD Unknown3);
-HMENU
-STDCALL
-NtUserCreateMenu(BOOL PopupMenu);
-
HWND
STDCALL
NtUserCreateWindowEx(
int cy,
UINT Flags);
BOOL STDCALL
-NtUserDefSetText(HWND WindowHandle, PANSI_STRING Text);
-
-BOOL
-STDCALL
-NtUserDeleteMenu(
- HMENU hMenu,
- UINT uPosition,
- UINT uFlags);
+NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText);
BOOLEAN
STDCALL
HANDLE Handle,
DWORD Unknown);
-BOOL
-STDCALL
-NtUserDestroyMenu(
- HMENU hMenu);
-
BOOLEAN STDCALL
NtUserDestroyWindow(HWND Wnd);
+typedef struct tagNTUSERDISPATCHMESSAGEINFO
+{
+ BOOL HandledByKernel;
+ BOOL Ansi;
+ WNDPROC Proc;
+ MSG Msg;
+} NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO;
+
LRESULT
STDCALL
-NtUserDispatchMessage(CONST MSG* lpmsg);
+NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo);
BOOL
STDCALL
DWORD Unknown0,
DWORD Unknown1);
-DWORD
-STDCALL
-NtUserDrawMenuBarTemp(
- HWND hWnd,
- HDC hDC,
- PRECT hRect,
- HMENU hMenu,
- HFONT hFont);
-
DWORD
STDCALL
NtUserEmptyClipboard(VOID);
-UINT
-STDCALL
-NtUserEnableMenuItem(
- HMENU hMenu,
- UINT uIDEnableItem,
- UINT uEnable);
-
-DWORD
-STDCALL
-NtUserInsertMenuItem(
- HMENU hMenu,
- UINT uItem,
- BOOL fByPosition,
- LPCMENUITEMINFOW lpmii);
-
-
BOOL
STDCALL
NtUserEnableScrollBar(
DWORD Unknown0,
DWORD Unknown1);
-BOOL
-STDCALL
-NtUserEndMenu(VOID);
-
BOOL STDCALL
NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
PDISPLAY_DEVICE lpDisplayDevice, /* device information */
DWORD dwFlags ); /* reserved */
-BOOL
+/*BOOL
STDCALL
NtUserEnumDisplayMonitors (
HDC hdc,
LPCRECT lprcClip,
MONITORENUMPROC lpfnEnum,
- LPARAM dwData );
+ LPARAM dwData );*/
+
+#define MONITORINFOF_PRIMARY 1
+#define MONITOR_DEFAULTTONULL 0
+#define MONITOR_DEFAULTTOPRIMARY 1
+#define MONITOR_DEFAULTTONEAREST 2
+INT
+STDCALL
+NtUserEnumDisplayMonitors(
+ OPTIONAL IN HDC hDC,
+ OPTIONAL IN LPCRECT pRect,
+ OPTIONAL OUT HMONITOR *hMonitorList,
+ OPTIONAL OUT LPRECT monitorRectList,
+ OPTIONAL IN DWORD listSize );
+
BOOL
STDCALL
NtUserGetCursorInfo(
PCURSORINFO pci);
-UINT STDCALL
-NtUserGetMenuDefaultItem(
- HMENU hMenu,
- UINT fByPos,
- UINT gmdiFlags);
-
-HDC STDCALL
-NtUserGetDC(HWND hWnd);
+HDC
+STDCALL
+NtUserGetDC(
+ HWND hWnd);
-HDC STDCALL NtUserGetDCEx(HWND hWnd, HANDLE hRegion, ULONG Flags);
+HDC
+STDCALL
+NtUserGetDCEx(
+ HWND hWnd,
+ HANDLE hRegion,
+ ULONG Flags);
UINT
STDCALL
DWORD Unknown1,
DWORD Unknown2);
+HKL
+STDCALL
+NtUserGetKeyboardLayout(
+ DWORD dwThreadid);
+
DWORD
STDCALL
NtUserGetKeyboardLayoutList(
DWORD
STDCALL
-NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
+NtUserGetKeyboardType(
+ DWORD TypeFlag);
+DWORD
+STDCALL
+NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
+
DWORD
STDCALL
NtUserGetKeyState(
NtUserGetListBoxInfo(
DWORD Unknown0);
-BOOL
-STDCALL
-NtUserGetMenuBarInfo(
- HWND hwnd,
- LONG idObject,
- LONG idItem,
- PMENUBARINFO pmbi);
-
-UINT
-STDCALL
-NtUserGetMenuIndex(
- HMENU hMenu,
- UINT wID);
-
-BOOL
-STDCALL
-NtUserGetMenuItemRect(
- HWND hWnd,
- HMENU hMenu,
- UINT uItem,
- LPRECT lprcItem);
+typedef struct tagNTUSERGETMESSAGEINFO
+{
+ MSG Msg;
+ ULONG LParamSize;
+} NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO;
BOOL
STDCALL
NtUserGetMessage(
- LPMSG lpMsg,
+ PNTUSERGETMESSAGEINFO MsgInfo,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax);
+BOOL
+STDCALL
+NtUserGetMonitorInfo(
+ IN HMONITOR hMonitor,
+ OUT LPMONITORINFO pMonitorInfo);
+
DWORD
STDCALL
NtUserGetMouseMovePointsEx(
int fnBar,
LPSCROLLINFO lpsi);
-HMENU
-STDCALL
-NtUserGetSystemMenu(
- HWND hWnd,
- BOOL bRevert);
-
HDESK
STDCALL
NtUserGetThreadDesktop(
DWORD dwThreadId,
DWORD Unknown1);
+#define THREADSTATE_FOCUSWINDOW (1)
+#define THREADSTATE_INSENDMESSAGE (2)
DWORD
STDCALL
NtUserGetThreadState(
- DWORD Unknown0);
+ DWORD Routine);
DWORD
STDCALL
DWORD Unknown0,
DWORD Unknown1);
-BOOL
-STDCALL
-NtUserHideCaret(
- HWND hWnd);
-
-BOOL
-STDCALL
-NtUserHiliteMenuItem(
- HWND hwnd,
- HMENU hmenu,
- UINT uItemHilite,
- UINT uHilite);
-
DWORD
STDCALL
NtUserImpersonateDdeClientWindow(
DWORD Unknown9,
DWORD Unknown10);
-DWORD
+INT
STDCALL
NtUserInternalGetWindowText(
HWND hWnd,
LPWSTR lpString,
- int nMaxCount);
-
-DWORD
-STDCALL
-NtUserInvalidateRect(
-HWND hWnd,
-CONST RECT *lpRect,
-BOOL bErase);
-
-DWORD
-STDCALL
- NtUserInvalidateRgn(
- HWND hWnd,
- HRGN hRgn,
- BOOL bErase);
+ INT nMaxCount);
BOOL
DWORD keyboardId,
HKL dwhkl );
-BOOL
-STDCALL
-NtUserMenuInfo(
- HMENU hmenu,
- LPMENUINFO lpmi,
- BOOL fsog
-);
-
-int
-STDCALL
-NtUserMenuItemFromPoint(
- HWND hWnd,
- HMENU hMenu,
- DWORD X,
- DWORD Y);
-
-BOOL
-STDCALL
-NtUserMenuItemInfo(
- HMENU hMenu,
- UINT uItem,
- BOOL fByPosition,
- LPMENUITEMINFOW lpmii,
- BOOL fsog
-);
-
DWORD
STDCALL
NtUserMessageCall(
DWORD Unknown0,
DWORD Unknown1);
+HMONITOR
+STDCALL
+NtUserMonitorFromPoint(
+ IN POINT point,
+ IN DWORD dwFlags);
+
+HMONITOR
+STDCALL
+NtUserMonitorFromRect(
+ IN LPCRECT pRect,
+ IN DWORD dwFlags);
+
+HMONITOR
+STDCALL
+NtUserMonitorFromWindow(
+ IN HWND hWnd,
+ IN DWORD dwFlags);
+
+
BOOL
STDCALL
NtUserMoveWindow(
BOOL
STDCALL
NtUserPeekMessage(
- LPMSG lpMsg,
+ PNTUSERGETMESSAGEINFO MsgInfo,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax,
DWORD Unknown3,
DWORD Unknown4);
+#define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
+#define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
+#define QUERY_WINDOW_ISHUNG 0x04
DWORD
STDCALL
NtUserQueryWindow(
UINT flags
);
-RTL_ATOM
-STDCALL
-NtUserRegisterClassExWOW(CONST WNDCLASSEXW* lpwcx,
- BOOL bUnicodeClass,
- WNDPROC wpExtra,
- DWORD Unknown4,
- DWORD Unknown5);
+/* FIXME: These flag constans aren't what Windows uses. */
+#define REGISTERCLASS_ANSI 2
+#define REGISTERCLASS_SYSTEM 4
+#define REGISTERCLASS_ALL (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM)
+
+RTL_ATOM STDCALL
+NtUserRegisterClassExWOW(
+ CONST WNDCLASSEXW* lpwcx,
+ PUNICODE_STRING ClassName,
+ PUNICODE_STRING ClassNameCopy,
+ PUNICODE_STRING MenuName,
+ WNDPROC wpExtra,
+ DWORD Flags,
+ DWORD Unknown7,
+ HMENU hMenu);
BOOL
STDCALL
UINT STDCALL
NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
-BOOL
-STDCALL
-NtUserRemoveMenu(
- HMENU hMenu,
- UINT uPosition,
- UINT uFlags);
-
HANDLE STDCALL
NtUserRemoveProp(HWND hWnd, ATOM Atom);
NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
-DWORD
+UINT
STDCALL
NtUserSendInput(
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2);
+ UINT nInputs,
+ LPINPUT pInput,
+ INT cbSize);
typedef struct tagNTUSERSENDMESSAGEINFO
{
SENDASYNCPROC lpCallBack,
ULONG_PTR dwData);
+LRESULT STDCALL
+NtUserSendMessageTimeout(HWND hWnd,
+ UINT Msg,
+ WPARAM wParam,
+ LPARAM lParam,
+ UINT uFlags,
+ UINT uTimeout,
+ ULONG_PTR *uResult,
+ PNTUSERSENDMESSAGEINFO Info);
+
BOOL
STDCALL
NtUserSendNotifyMessage(
NtUserSetLogonNotifyWindow(
DWORD Unknown0);
-BOOL
-STDCALL
-NtUserSetMenu(
- HWND hWnd,
- HMENU hMenu,
- BOOL bRepaint);
-
-BOOL
-STDCALL
-NtUserSetMenuContextHelpId(
- HMENU hmenu,
- DWORD dwContextHelpId);
-
-BOOL
-STDCALL
-NtUserSetMenuDefaultItem(
- HMENU hMenu,
- UINT uItem,
- UINT fByPos);
-
-BOOL
-STDCALL
-NtUserSetMenuFlagRtoL(
- HMENU hMenu);
-
BOOL
STDCALL
NtUserSetObjectInformation(
HCURSOR hcur,
DWORD id);
-BOOL
-STDCALL
-NtUserSetSystemMenu(
- HWND hWnd,
- HMENU hMenu);
-
BOOL
STDCALL
NtUserSetThreadDesktop(
UINT uFlags
);
-DWORD
+INT
STDCALL
NtUserSetWindowRgn(
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2);
+ HWND hWnd,
+ HRGN hRgn,
+ BOOL bRedraw);
DWORD
STDCALL
BOOL
STDCALL
NtUserShowCaret(
- HWND hWnd);
+ HWND hWnd,
+ BOOL bShow);
DWORD
STDCALL
HWND hWnd,
LONG nCmdShow);
-DWORD
+BOOL
STDCALL
NtUserShowWindowAsync(
- DWORD Unknown0,
- DWORD Unknown1);
+ HWND hWnd,
+ LONG nCmdShow);
BOOL
STDCALL
NtUserSwitchDesktop(
HDESK hDesktop);
-DWORD
+BOOL
STDCALL
NtUserSystemParametersInfo(
UINT uiAction,
PVOID pvParam,
UINT fWinIni);
-DWORD
-STDCALL
-NtUserThunkedMenuInfo(
- HMENU hMenu,
- LPCMENUINFO lpcmi);
-
-DWORD
-STDCALL
-NtUserThunkedMenuItemInfo(
- HMENU hMenu,
- UINT uItem,
- BOOL fByPosition,
- BOOL bInsert,
- LPMENUITEMINFOW lpmii,
- PUNICODE_STRING lpszCaption);
-
int
STDCALL
NtUserToUnicodeEx(
NtUserTrackMouseEvent(
DWORD Unknown0);
-BOOL
-STDCALL
-NtUserTrackPopupMenuEx(
- HMENU hmenu,
- UINT fuFlags,
- int x,
- int y,
- HWND hwnd,
- LPTPMPARAMS lptpm);
-
int
STDCALL
NtUserTranslateAccelerator(
DWORD Unknown1,
DWORD Unknown2);
-BOOL STDCALL
-NtUserUpdateWindow( HWND hWnd );
-
DWORD
STDCALL
NtUserUpdateLayeredWindow(
DWORD Unknown7,
DWORD Unknown8);
-DWORD
+BOOL
STDCALL
NtUserUpdatePerUserSystemParameters(
- DWORD Unknown0,
- DWORD Unknown1);
+ DWORD dwReserved,
+ BOOL bEnable);
DWORD
STDCALL
NtUserValidateHandleSecure(
DWORD Unknown0);
-VOID STDCALL
-NtUserValidateRect(HWND Wnd, const RECT* Rect);
-
-
DWORD
STDCALL
NtUserVkKeyScanEx(
LONG idObject,
SETSCROLLBARINFO *info);
-typedef struct _SETMENUITEMRECT
+/* lParam of DDE messages */
+typedef struct tagKMDDEEXECUTEDATA
+{
+ HWND Sender;
+ HGLOBAL ClientMem;
+ /* BYTE Data[DataSize] */
+} KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
+
+typedef struct tagKMDDELPARAM
+{
+ BOOL Packed;
+ union
+ {
+ struct
+ {
+ UINT uiLo;
+ UINT uiHi;
+ } Packed;
+ LPARAM Unpacked;
+ } Value;
+} KMDDELPARAM, *PKMDDELPARAM;
+
+typedef struct _GDI_TABLE_ENTRY
{
- UINT uItem;
- BOOL fByPosition;
- RECT rcRect;
-} SETMENUITEMRECT, *PSETMENUITEMRECT;
+ PVOID KernelData; /* Points to the kernel mode structure */
+ HANDLE ProcessId; /* process id that created the object, 0 for stock objects */
+ LONG Type; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */
+ PVOID UserData; /* Points to the user mode structure, usually NULL though */
+} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
#endif /* __WIN32K_NTUSER_H */