1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
6 #define WM_SYSTIMER 280
9 NtUserGetSystemMetrics(ULONG Index
);
12 NtUserGetClassLong(HWND hWnd
, DWORD Offset
, BOOL Ansi
);
15 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
18 NtUserReleaseDC(HWND hWnd
, HDC hDc
);
21 NtUserGetWindowRect(HWND hWnd
, LPRECT Rect
);
24 NtUserGetClientRect(HWND hWnd
, LPRECT Rect
);
27 NtUserGetProp(HWND hWnd
, ATOM Atom
);
30 NtUserGetClientOrigin(HWND hWnd
, LPPOINT Point
);
33 NtUserGetDesktopWindow();
37 NtUserAcquireOrReleaseInputOwnership(
42 NtUserActivateKeyboardLayout(
48 NtUserAlterWindowStyle(
55 NtUserAttachThreadInput(
61 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
96 PULONG pRequiredSize
);
112 #define HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS 0x54
113 #define HWNDLOCK_ROUTINE_DRAWMENUBAR 0x55
114 #define HWNDLOCK_ROUTINE_REDRAWFRAME 0x58
115 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B
116 #define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E
123 #define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A
124 #define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B
140 NtUserCallHwndParamLock(
153 NtUserCallNextHookEx(
159 #define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */
160 #define NOPARAM_ROUTINE_DESTROY_CARET 0xffff0002
161 #define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003
162 #define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0xffff0004
163 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
164 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
165 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
166 #define NOPARAM_ROUTINE_GDI_QUERY_TABLE 0xffff0008
172 #define ONEPARAM_ROUTINE_GETMENU 0x01
173 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0x02
174 #define ONEPARAM_ROUTINE_WINDOWFROMDC 0x03
175 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0x04
176 #define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON 0x05
177 #define ONEPARAM_ROUTINE_SETCARETBLINKTIME 0x06
178 #define ONEPARAM_ROUTINE_GETCARETINFO 0x07
179 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0x08
180 #define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09
181 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0x10
182 #define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x0a
183 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x0b
184 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0x0c
185 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d
192 #define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45
193 #define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46
194 #define TWOPARAM_ROUTINE_GETDCCOLOR 0x47
195 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0x48
196 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0x49
197 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0x50
198 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0x51
199 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0x52
200 #define MSQ_STATE_CAPTURE 0x1
201 #define MSQ_STATE_ACTIVE 0x2
202 #define MSQ_STATE_FOCUS 0x3
203 #define MSQ_STATE_MENUOWNER 0x4
204 #define MSQ_STATE_MOVESIZE 0x5
205 #define MSQ_STATE_CARET 0x6
206 #define TWOPARAM_ROUTINE_ENABLEWINDOW 0x53
207 #define TWOPARAM_ROUTINE_UNKNOWN 0x54
208 #define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x55
209 #define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x56
210 #define TWOPARAM_ROUTINE_VALIDATERGN 0x57
211 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0x58
212 #define TWOPARAM_ROUTINE_SETCARETPOS 0x60
213 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0x61
214 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0x62
224 NtUserChangeClipboardChain(
230 NtUserChangeDisplaySettings(
231 PUNICODE_STRING lpszDeviceName
,
232 LPDEVMODEW lpDevMode
,
238 NtUserChildWindowFromPointEx(HWND Parent
,
250 NtUserCloseClipboard(VOID
);
259 NtUserCloseWindowStation(
264 NtUserConvertMemHandle(
270 NtUserCopyAcceleratorTable(
277 NtUserCountClipboardFormats(VOID
);
281 NtUserCreateAcceleratorTable(
283 SIZE_T EntriesCount
);
295 NtUserCreateCursorIconHandle(
302 PUNICODE_STRING lpszDesktopName
,
304 ACCESS_MASK dwDesiredAccess
,
305 LPSECURITY_ATTRIBUTES lpSecurity
,
306 HWINSTA hWindowStation
);
310 NtUserCreateLocalMemHandle(
318 NtUserCreateWindowEx(
320 PUNICODE_STRING lpClassName
,
321 PUNICODE_STRING lpWindowName
,
332 BOOL bUnicodeWindow
);
336 NtUserCreateWindowStation(
337 PUNICODE_STRING lpszWindowStationName
,
338 ACCESS_MASK dwDesiredAccess
,
339 LPSECURITY_ATTRIBUTES lpSecurity
,
346 NtUserDdeGetQualityOfService(
362 NtUserDdeSetQualityOfService(
368 NtUserDeferWindowPos(HDWP WinPosInfo
,
377 NtUserDefSetText(HWND WindowHandle
, PUNICODE_STRING WindowText
);
381 NtUserDestroyAcceleratorTable(
386 NtUserDestroyCursorIcon(
391 NtUserDestroyWindow(HWND Wnd
);
393 typedef struct tagNTUSERDISPATCHMESSAGEINFO
395 BOOL HandledByKernel
;
399 } NTUSERDISPATCHMESSAGEINFO
, *PNTUSERDISPATCHMESSAGEINFO
;
403 NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo
);
424 NtUserDrawAnimatedRects(
440 NtUserDrawCaptionTemp(
459 HBRUSH hbrFlickerFreeDraw
,
466 NtUserEmptyClipboard(VOID
);
470 NtUserEnableScrollBar(
477 NtUserEndDeferWindowPosEx(
482 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
486 NtUserEnumDisplayDevices (
487 PUNICODE_STRING lpDevice
, /* device name */
488 DWORD iDevNum
, /* display device */
489 PDISPLAY_DEVICE lpDisplayDevice
, /* device information */
490 DWORD dwFlags
); /* reserved */
494 NtUserEnumDisplayMonitors (
497 MONITORENUMPROC lpfnEnum,
500 #define MONITORINFOF_PRIMARY 1
501 #define MONITOR_DEFAULTTONULL 0
502 #define MONITOR_DEFAULTTOPRIMARY 1
503 #define MONITOR_DEFAULTTONEAREST 2
506 NtUserEnumDisplayMonitors(
508 OPTIONAL IN LPCRECT pRect
,
509 OPTIONAL OUT HMONITOR
*hMonitorList
,
510 OPTIONAL OUT LPRECT monitorRectList
,
511 OPTIONAL IN DWORD listSize
);
516 NtUserEnumDisplaySettings(
517 PUNICODE_STRING lpszDeviceName
,
519 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
529 NtUserExcludeUpdateRgn(
543 NtUserFindExistingCursorIcon(
554 PUNICODE_STRING ucClassName
,
555 PUNICODE_STRING ucWindowName
574 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
579 NtUserGetAsyncKeyState(
584 NtUserGetCaretBlinkTime(VOID
);
592 NtUserGetClassInfo(HINSTANCE hInst
,
600 NtUserGetClassName(HWND hWnd
,
606 NtUserGetClipboardData(
612 NtUserGetClipboardFormatName(
614 PUNICODE_STRING FormatName
,
619 NtUserGetClipboardOwner(VOID
);
623 NtUserGetClipboardSequenceNumber(VOID
);
627 NtUserGetClipboardViewer(VOID
);
636 NtUserGetComboBoxInfo(
642 NtUserGetControlBrush(
649 NtUserGetControlColor(
664 NtUserGetCursorFrameInfo(
689 NtUserGetDoubleClickTime(VOID
);
693 NtUserGetForegroundWindow(VOID
);
697 NtUserGetGuiResources(
703 NtUserGetGUIThreadInfo(
705 LPGUITHREADINFO lpgui
);
709 NtUserGetCursorIconInfo(
715 NtUserGetCursorIconSize(
730 NtUserGetInternalWindowPos(
737 NtUserGetKeyboardLayoutList(
743 NtUserGetKeyboardLayoutName(
748 NtUserGetKeyboardState(
753 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
762 NtUserGetListBoxInfo(
765 typedef struct tagNTUSERGETMESSAGEINFO
769 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
774 PNTUSERGETMESSAGEINFO MsgInfo
,
781 NtUserGetMonitorInfo(
782 IN HMONITOR hMonitor
,
783 OUT LPMONITORINFO pMonitorInfo
);
787 NtUserGetMouseMovePointsEx(
796 NtUserGetObjectInformation(
801 PDWORD nLengthNeeded
);
805 NtUserGetOpenClipboardWindow(VOID
);
809 NtUserGetPriorityClipboardFormat(
810 UINT
*paFormatPriorityList
,
815 NtUserGetProcessWindowStation(VOID
);
819 NtUserGetScrollBarInfo(
822 PSCROLLBARINFO psbi
);
833 NtUserGetThreadDesktop(
837 #define THREADSTATE_FOCUSWINDOW (1)
838 #define THREADSTATE_INSENDMESSAGE (2)
841 NtUserGetThreadState(
846 NtUserGetTitleBarInfo(
851 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
867 NtUserGetWindowPlacement(
869 WINDOWPLACEMENT
*lpwndpl
);
884 NtUserImpersonateDdeClientWindow(
890 NtUserInitializeClientPfnArrays(
913 NtUserInternalGetWindowText(
920 NtUserInvalidateRect(
935 NtUserIsClipboardFormatAvailable(
940 NtUserKillSystemTimer
956 NtUserLoadKeyboardLayoutEx(
966 NtUserLockWindowStation(
967 HWINSTA hWindowStation
);
971 NtUserLockWindowUpdate(
976 NtUserLockWorkStation(VOID
);
980 NtUserMapVirtualKeyEx( UINT keyCode
,
1000 MINMAXINFO
*MinMaxInfo
,
1005 NtUserMNDragLeave(VOID
);
1015 NtUserModifyUserStartupInfoFlags(
1021 NtUserMonitorFromPoint(
1027 NtUserMonitorFromRect(
1033 NtUserMonitorFromWindow(
1051 NtUserNotifyIMEStatus(
1058 NtUserNotifyWinEvent(
1066 NtUserOpenClipboard(
1073 PUNICODE_STRING lpszDesktopName
,
1075 ACCESS_MASK dwDesiredAccess
);
1079 NtUserOpenInputDesktop(
1082 ACCESS_MASK dwDesiredAccess
);
1086 NtUserOpenWindowStation(
1087 PUNICODE_STRING lpszWindowStationName
,
1088 ACCESS_MASK dwDesiredAccess
);
1098 PNTUSERGETMESSAGEINFO MsgInfo
,
1114 NtUserPostThreadMessage(
1122 NtUserQuerySendMessage(
1127 NtUserQueryUserCounters(
1134 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
1135 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
1136 #define QUERY_WINDOW_ISHUNG 0x04
1145 NtUserRealChildWindowFromPoint(
1155 CONST RECT
*lprcUpdate
,
1160 /* FIXME: These flag constans aren't what Windows uses. */
1161 #define REGISTERCLASS_ANSI 2
1162 #define REGISTERCLASS_SYSTEM 4
1163 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM)
1166 NtUserRegisterClassExWOW(
1167 CONST WNDCLASSEXW
* lpwcx
,
1168 PUNICODE_STRING ClassName
,
1169 PUNICODE_STRING ClassNameCopy
,
1170 PUNICODE_STRING MenuName
,
1177 NtUserRegisterHotKey(HWND hWnd
,
1184 NtUserRegisterTasklist(
1188 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
1191 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
1195 NtUserResolveDesktopForWOW(
1212 CONST RECT
*lprcScroll
,
1213 CONST RECT
*lprcClip
,
1218 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
1219 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
1228 typedef struct tagNTUSERSENDMESSAGEINFO
1230 BOOL HandledByKernel
;
1233 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
1236 NtUserSendMessage(HWND hWnd
,
1240 PNTUSERSENDMESSAGEINFO Info
);
1244 NtUserSendMessageCallback(
1249 SENDASYNCPROC lpCallBack
,
1253 NtUserSendMessageTimeout(HWND hWnd
,
1260 PNTUSERSENDMESSAGEINFO Info
);
1264 NtUserSendNotifyMessage(
1271 NtUserSetActiveWindow(HWND Wnd
);
1273 NtUserGetActiveWindow(VOID
);
1276 NtUserSetCapture(HWND Wnd
);
1278 NtUserGetCapture(VOID
);
1297 NtUserSetClipboardData(
1304 NtUserSetClipboardViewer(
1305 HWND hWndNewViewer
);
1309 NtUserSetConsoleReserveKeys(
1320 NtUserSetCursorIconContents(
1322 PICONINFO IconInfo
);
1326 NtUserSetCursorIconData(
1356 NtUserSetImeOwnerWindow(
1362 NtUserSetInternalWindowPos(
1370 NtUserSetKeyboardState(
1375 NtUserSetLayeredWindowAttributes(
1383 NtUserSetLogonNotifyWindow(
1388 NtUserSetObjectInformation(
1391 PVOID pvInformation
,
1398 HWND hWndNewParent
);
1402 NtUserSetProcessWindowStation(
1403 HWINSTA hWindowStation
);
1406 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
1416 NtUserSetScrollInfo(
1424 NtUserSetShellWindowEx(
1426 HWND hwndShellListView
);
1430 NtUserGetShellWindow();
1442 NtUserSetSystemCursor(
1448 NtUserSetThreadDesktop(
1453 NtUserSetThreadState(
1459 NtUserSetSystemTimer
1464 TIMERPROC lpTimerFunc
1474 TIMERPROC lpTimerFunc
1479 NtUserSetWindowFNID(
1485 NtUserSetWindowLong(
1493 NtUserSetWindowPlacement(
1495 WINDOWPLACEMENT
*lpwndpl
);
1498 STDCALL
NtUserSetWindowPos(
1500 HWND hWndInsertAfter
,
1517 NtUserSetWindowsHookAW(
1524 NtUserSetWindowsHookEx(
1526 PUNICODE_STRING ModuleName
,
1534 NtUserSetWindowStationUser(
1541 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
1545 NtUserSetWinEventHook(
1562 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
1572 NtUserShowWindowAsync(
1578 NtUserSwitchDesktop(
1583 NtUserSystemParametersInfo(
1602 NtUserTrackMouseEvent(
1607 NtUserTranslateAccelerator(
1614 NtUserTranslateMessage(
1620 NtUserUnhookWindowsHookEx(
1625 NtUserUnhookWinEvent(
1630 NtUserUnloadKeyboardLayout(
1635 NtUserUnlockWindowStation(
1636 HWINSTA hWindowStation
);
1640 NtUserUnregisterClass(
1641 LPCWSTR ClassNameOrAtom
,
1642 HINSTANCE hInstance
,
1647 NtUserUnregisterHotKey(HWND hWnd
,
1652 NtUserUpdateInputContext(
1659 NtUserUpdateInstance(
1665 NtUserUpdateWindow( HWND hWnd
);
1669 NtUserUpdateLayeredWindow(
1682 NtUserUpdatePerUserSystemParameters(
1688 NtUserUserHandleGrantAccess(
1695 NtUserValidateHandleSecure(
1699 NtUserValidateRect(HWND Wnd
, const RECT
* Rect
);
1711 NtUserWaitForInputIdle(
1718 NtUserWaitForMsgAndEvent(
1723 NtUserWaitMessage(VOID
);
1727 NtUserWin32PoolAllocationStats(
1737 NtUserWindowFromPoint(
1743 NtUserYieldTask(VOID
);
1746 NtUserGetWindowThreadProcessId(HWND hWnd
, LPDWORD UnsafePid
);
1749 NtUserGetQueueStatus(BOOL ClearChanges
);
1752 NtUserGetParent(HWND hWnd
);
1755 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
1758 NtUserGetLastActivePopup(HWND hWnd
);
1759 typedef struct _WndProcHandle
1767 NtUserDereferenceWndProcHandle(WNDPROC wpHandle
, WndProcHandle
*Data
);
1770 NtUserManualGuiCheck(LONG Check
);
1772 typedef struct _SETSCROLLBARINFO
1776 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
1777 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
1781 NtUserSetScrollBarInfo(
1784 SETSCROLLBARINFO
*info
);
1786 /* lParam of DDE messages */
1787 typedef struct tagKMDDEEXECUTEDATA
1791 /* BYTE Data[DataSize] */
1792 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
1794 typedef struct tagKMDDELPARAM
1806 } KMDDELPARAM
, *PKMDDELPARAM
;
1808 #include <pshpack1.h>
1809 typedef struct _GDI_TABLE_ENTRY
1811 PVOID KernelData
; /* Points to the kernel mode structure */
1812 unsigned short ProcessId
; /* process id that created the object, 0 for stock objects */
1813 unsigned short Count
; /* we don't use this field, only NT4 uses it */
1814 unsigned short Upper
; /* copy of the upper 16 bit of the handle, contains the object type */
1815 unsigned short nType
; /* object type */
1816 PVOID UserData
; /* Points to the user mode structure, usually NULL though */
1817 } GDI_TABLE_ENTRY
, *PGDI_TABLE_ENTRY
;
1818 #include <poppack.h>
1820 #endif /* __WIN32K_NTUSER_H */