1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
6 NtUserGetSystemMetrics(ULONG Index
);
9 NtUserGetClassLong(HWND hWnd
, DWORD Offset
, BOOL Ansi
);
12 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
15 NtUserReleaseDC(HWND hWnd
, HDC hDc
);
18 NtUserGetWindowRect(HWND hWnd
, LPRECT Rect
);
21 NtUserGetClientRect(HWND hWnd
, LPRECT Rect
);
24 NtUserGetProp(HWND hWnd
, ATOM Atom
);
27 NtUserGetClientOrigin(HWND hWnd
, LPPOINT Point
);
30 NtUserGetDesktopWindow();
34 NtUserAcquireOrReleaseInputOwnership(
39 NtUserActivateKeyboardLayout(
45 NtUserAlterWindowStyle(
52 NtUserAttachThreadInput(
58 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
93 PULONG pRequiredSize
);
104 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
105 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
114 #define HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS 0x54
115 #define HWNDLOCK_ROUTINE_DRAWMENUBAR 0x55
116 #define HWNDLOCK_ROUTINE_REDRAWFRAME 0x58
117 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B
118 #define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E
125 #define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A
126 #define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B
142 NtUserCallHwndParamLock(
155 NtUserCallNextHookEx(
161 #define NOPARAM_ROUTINE_MSQCLEARWAKEMASK 0x3
162 #define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */
163 #define NOPARAM_ROUTINE_DESTROY_CARET 0xffff0002
164 #define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003
165 #define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0xffff0004
166 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
167 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
168 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
174 #define ONEPARAM_ROUTINE_GETMENU 0x01
175 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0x02
176 #define ONEPARAM_ROUTINE_WINDOWFROMDC 0x03
177 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0x04
178 #define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON 0x05
179 #define ONEPARAM_ROUTINE_SETCARETBLINKTIME 0x06
180 #define ONEPARAM_ROUTINE_GETCARETINFO 0x07
181 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0x08
182 #define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09
183 #define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x0a
184 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x0b
185 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0x0c
186 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d
187 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0x10
188 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0x27
189 #define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28
190 #define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29
197 #define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45
198 #define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46
199 #define TWOPARAM_ROUTINE_GETDCCOLOR 0x47
200 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0x48
201 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0x49
202 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0x50
203 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0x51
204 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0x52
205 #define MSQ_STATE_CAPTURE 0x1
206 #define MSQ_STATE_ACTIVE 0x2
207 #define MSQ_STATE_FOCUS 0x3
208 #define MSQ_STATE_MENUOWNER 0x4
209 #define MSQ_STATE_MOVESIZE 0x5
210 #define MSQ_STATE_CARET 0x6
211 #define TWOPARAM_ROUTINE_ENABLEWINDOW 0x53
212 #define TWOPARAM_ROUTINE_UNKNOWN 0x54
213 #define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x55
214 #define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x56
215 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0x58
216 #define TWOPARAM_ROUTINE_SETCARETPOS 0x60
217 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0x61
218 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0x62
219 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0x63
220 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0x64
221 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0x65
222 #define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66
223 #define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000
233 NtUserChangeClipboardChain(
239 NtUserChangeDisplaySettings(
240 PUNICODE_STRING lpszDeviceName
,
241 LPDEVMODEW lpDevMode
,
247 NtUserChildWindowFromPointEx(HWND Parent
,
259 NtUserCloseClipboard(VOID
);
268 NtUserCloseWindowStation(
273 NtUserConvertMemHandle(
279 NtUserCopyAcceleratorTable(
286 NtUserCountClipboardFormats(VOID
);
290 NtUserCreateAcceleratorTable(
292 SIZE_T EntriesCount
);
304 NtUserCreateCursorIconHandle(
311 PUNICODE_STRING lpszDesktopName
,
313 ACCESS_MASK dwDesiredAccess
,
314 LPSECURITY_ATTRIBUTES lpSecurity
,
315 HWINSTA hWindowStation
);
319 NtUserCreateLocalMemHandle(
327 NtUserCreateWindowEx(
329 PUNICODE_STRING lpClassName
,
330 PUNICODE_STRING lpWindowName
,
341 BOOL bUnicodeWindow
);
345 NtUserCreateWindowStation(
346 PUNICODE_STRING lpszWindowStationName
,
347 ACCESS_MASK dwDesiredAccess
,
348 LPSECURITY_ATTRIBUTES lpSecurity
,
355 NtUserDdeGetQualityOfService(
371 NtUserDdeSetQualityOfService(
377 NtUserDeferWindowPos(HDWP WinPosInfo
,
386 NtUserDefSetText(HWND WindowHandle
, PUNICODE_STRING WindowText
);
390 NtUserDestroyAcceleratorTable(
395 NtUserDestroyCursorIcon(
400 NtUserDestroyWindow(HWND Wnd
);
402 typedef struct tagNTUSERDISPATCHMESSAGEINFO
404 BOOL HandledByKernel
;
408 } NTUSERDISPATCHMESSAGEINFO
, *PNTUSERDISPATCHMESSAGEINFO
;
412 NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo
);
433 NtUserDrawAnimatedRects(
449 NtUserDrawCaptionTemp(
468 HBRUSH hbrFlickerFreeDraw
,
475 NtUserEmptyClipboard(VOID
);
479 NtUserEnableScrollBar(
486 NtUserEndDeferWindowPosEx(
491 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
495 NtUserEnumDisplayDevices (
496 PUNICODE_STRING lpDevice
, /* device name */
497 DWORD iDevNum
, /* display device */
498 PDISPLAY_DEVICE lpDisplayDevice
, /* device information */
499 DWORD dwFlags
); /* reserved */
503 NtUserEnumDisplayMonitors (
506 MONITORENUMPROC lpfnEnum,
509 #define MONITORINFOF_PRIMARY 1
510 #define MONITOR_DEFAULTTONULL 0
511 #define MONITOR_DEFAULTTOPRIMARY 1
512 #define MONITOR_DEFAULTTONEAREST 2
515 NtUserEnumDisplayMonitors(
517 OPTIONAL IN LPCRECT pRect
,
518 OPTIONAL OUT HMONITOR
*hMonitorList
,
519 OPTIONAL OUT LPRECT monitorRectList
,
520 OPTIONAL IN DWORD listSize
);
525 NtUserEnumDisplaySettings(
526 PUNICODE_STRING lpszDeviceName
,
528 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
538 NtUserExcludeUpdateRgn(
552 NtUserFindExistingCursorIcon(
563 PUNICODE_STRING ucClassName
,
564 PUNICODE_STRING ucWindowName
583 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
588 NtUserGetAsyncKeyState(
593 NtUserGetCaretBlinkTime(VOID
);
601 NtUserGetClassInfo(HINSTANCE hInst
,
609 NtUserGetClassName(HWND hWnd
,
615 NtUserGetClipboardData(
621 NtUserGetClipboardFormatName(
623 PUNICODE_STRING FormatName
,
628 NtUserGetClipboardOwner(VOID
);
632 NtUserGetClipboardSequenceNumber(VOID
);
636 NtUserGetClipboardViewer(VOID
);
645 NtUserGetComboBoxInfo(
651 NtUserGetControlBrush(
658 NtUserGetControlColor(
673 NtUserGetCursorFrameInfo(
698 NtUserGetDoubleClickTime(VOID
);
702 NtUserGetForegroundWindow(VOID
);
706 NtUserGetGuiResources(
712 NtUserGetGUIThreadInfo(
714 LPGUITHREADINFO lpgui
);
718 NtUserGetCursorIconInfo(
724 NtUserGetCursorIconSize(
739 NtUserGetInternalWindowPos(
746 NtUserGetKeyboardLayout(
751 NtUserGetKeyboardLayoutList(
757 NtUserGetKeyboardLayoutName(
762 NtUserGetKeyboardState(
767 NtUserGetKeyboardType(
772 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
781 NtUserGetListBoxInfo(
784 typedef struct tagNTUSERGETMESSAGEINFO
788 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
793 PNTUSERGETMESSAGEINFO MsgInfo
,
800 NtUserGetMonitorInfo(
801 IN HMONITOR hMonitor
,
802 OUT LPMONITORINFO pMonitorInfo
);
806 NtUserGetMouseMovePointsEx(
815 NtUserGetObjectInformation(
820 PDWORD nLengthNeeded
);
824 NtUserGetOpenClipboardWindow(VOID
);
828 NtUserGetPriorityClipboardFormat(
829 UINT
*paFormatPriorityList
,
834 NtUserGetProcessWindowStation(VOID
);
838 NtUserGetScrollBarInfo(
841 PSCROLLBARINFO psbi
);
852 NtUserGetThreadDesktop(
856 #define THREADSTATE_FOCUSWINDOW (1)
857 #define THREADSTATE_INSENDMESSAGE (2)
860 NtUserGetThreadState(
865 NtUserGetTitleBarInfo(
870 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
886 NtUserGetWindowPlacement(
888 WINDOWPLACEMENT
*lpwndpl
);
898 NtUserImpersonateDdeClientWindow(
904 NtUserInitializeClientPfnArrays(
927 NtUserInternalGetWindowText(
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(
1563 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
1573 NtUserShowWindowAsync(
1579 NtUserSwitchDesktop(
1584 NtUserSystemParametersInfo(
1603 NtUserTrackMouseEvent(
1608 NtUserTranslateAccelerator(
1615 NtUserTranslateMessage(
1621 NtUserUnhookWindowsHookEx(
1626 NtUserUnhookWinEvent(
1631 NtUserUnloadKeyboardLayout(
1636 NtUserUnlockWindowStation(
1637 HWINSTA hWindowStation
);
1641 NtUserUnregisterClass(
1642 LPCWSTR ClassNameOrAtom
,
1643 HINSTANCE hInstance
,
1648 NtUserUnregisterHotKey(HWND hWnd
,
1653 NtUserUpdateInputContext(
1660 NtUserUpdateInstance(
1667 NtUserUpdateLayeredWindow(
1680 NtUserUpdatePerUserSystemParameters(
1686 NtUserUserHandleGrantAccess(
1693 NtUserValidateHandleSecure(
1705 NtUserWaitForInputIdle(
1712 NtUserWaitForMsgAndEvent(
1717 NtUserWaitMessage(VOID
);
1721 NtUserWin32PoolAllocationStats(
1731 NtUserWindowFromPoint(
1737 NtUserYieldTask(VOID
);
1740 NtUserGetWindowThreadProcessId(HWND hWnd
, LPDWORD UnsafePid
);
1743 NtUserGetQueueStatus(BOOL ClearChanges
);
1746 NtUserGetParent(HWND hWnd
);
1749 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
1752 NtUserGetLastActivePopup(HWND hWnd
);
1753 typedef struct _WndProcHandle
1761 NtUserDereferenceWndProcHandle(WNDPROC wpHandle
, WndProcHandle
*Data
);
1764 NtUserManualGuiCheck(LONG Check
);
1766 typedef struct _SETSCROLLBARINFO
1770 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
1771 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
1775 NtUserSetScrollBarInfo(
1778 SETSCROLLBARINFO
*info
);
1780 /* lParam of DDE messages */
1781 typedef struct tagKMDDEEXECUTEDATA
1785 /* BYTE Data[DataSize] */
1786 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
1788 typedef struct tagKMDDELPARAM
1800 } KMDDELPARAM
, *PKMDDELPARAM
;
1802 typedef struct _GDI_TABLE_ENTRY
1804 PVOID KernelData
; /* Points to the kernel mode structure */
1805 HANDLE ProcessId
; /* process id that created the object, 0 for stock objects */
1806 LONG Type
; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */
1807 PVOID UserData
; /* Points to the user mode structure, usually NULL though */
1808 } GDI_TABLE_ENTRY
, *PGDI_TABLE_ENTRY
;
1810 #endif /* __WIN32K_NTUSER_H */