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
215 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0x63
216 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0x64
217 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0x65
218 #define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66
228 NtUserChangeClipboardChain(
234 NtUserChangeDisplaySettings(
235 PUNICODE_STRING lpszDeviceName
,
236 LPDEVMODEW lpDevMode
,
242 NtUserChildWindowFromPointEx(HWND Parent
,
254 NtUserCloseClipboard(VOID
);
263 NtUserCloseWindowStation(
268 NtUserConvertMemHandle(
274 NtUserCopyAcceleratorTable(
281 NtUserCountClipboardFormats(VOID
);
285 NtUserCreateAcceleratorTable(
287 SIZE_T EntriesCount
);
299 NtUserCreateCursorIconHandle(
306 PUNICODE_STRING lpszDesktopName
,
308 ACCESS_MASK dwDesiredAccess
,
309 LPSECURITY_ATTRIBUTES lpSecurity
,
310 HWINSTA hWindowStation
);
314 NtUserCreateLocalMemHandle(
322 NtUserCreateWindowEx(
324 PUNICODE_STRING lpClassName
,
325 PUNICODE_STRING lpWindowName
,
336 BOOL bUnicodeWindow
);
340 NtUserCreateWindowStation(
341 PUNICODE_STRING lpszWindowStationName
,
342 ACCESS_MASK dwDesiredAccess
,
343 LPSECURITY_ATTRIBUTES lpSecurity
,
350 NtUserDdeGetQualityOfService(
366 NtUserDdeSetQualityOfService(
372 NtUserDeferWindowPos(HDWP WinPosInfo
,
381 NtUserDefSetText(HWND WindowHandle
, PUNICODE_STRING WindowText
);
385 NtUserDestroyAcceleratorTable(
390 NtUserDestroyCursorIcon(
395 NtUserDestroyWindow(HWND Wnd
);
397 typedef struct tagNTUSERDISPATCHMESSAGEINFO
399 BOOL HandledByKernel
;
403 } NTUSERDISPATCHMESSAGEINFO
, *PNTUSERDISPATCHMESSAGEINFO
;
407 NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo
);
428 NtUserDrawAnimatedRects(
444 NtUserDrawCaptionTemp(
463 HBRUSH hbrFlickerFreeDraw
,
470 NtUserEmptyClipboard(VOID
);
474 NtUserEnableScrollBar(
481 NtUserEndDeferWindowPosEx(
486 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
490 NtUserEnumDisplayDevices (
491 PUNICODE_STRING lpDevice
, /* device name */
492 DWORD iDevNum
, /* display device */
493 PDISPLAY_DEVICE lpDisplayDevice
, /* device information */
494 DWORD dwFlags
); /* reserved */
498 NtUserEnumDisplayMonitors (
501 MONITORENUMPROC lpfnEnum,
504 #define MONITORINFOF_PRIMARY 1
505 #define MONITOR_DEFAULTTONULL 0
506 #define MONITOR_DEFAULTTOPRIMARY 1
507 #define MONITOR_DEFAULTTONEAREST 2
510 NtUserEnumDisplayMonitors(
512 OPTIONAL IN LPCRECT pRect
,
513 OPTIONAL OUT HMONITOR
*hMonitorList
,
514 OPTIONAL OUT LPRECT monitorRectList
,
515 OPTIONAL IN DWORD listSize
);
520 NtUserEnumDisplaySettings(
521 PUNICODE_STRING lpszDeviceName
,
523 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
533 NtUserExcludeUpdateRgn(
547 NtUserFindExistingCursorIcon(
558 PUNICODE_STRING ucClassName
,
559 PUNICODE_STRING ucWindowName
578 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
583 NtUserGetAsyncKeyState(
588 NtUserGetCaretBlinkTime(VOID
);
596 NtUserGetClassInfo(HINSTANCE hInst
,
604 NtUserGetClassName(HWND hWnd
,
610 NtUserGetClipboardData(
616 NtUserGetClipboardFormatName(
618 PUNICODE_STRING FormatName
,
623 NtUserGetClipboardOwner(VOID
);
627 NtUserGetClipboardSequenceNumber(VOID
);
631 NtUserGetClipboardViewer(VOID
);
640 NtUserGetComboBoxInfo(
646 NtUserGetControlBrush(
653 NtUserGetControlColor(
668 NtUserGetCursorFrameInfo(
693 NtUserGetDoubleClickTime(VOID
);
697 NtUserGetForegroundWindow(VOID
);
701 NtUserGetGuiResources(
707 NtUserGetGUIThreadInfo(
709 LPGUITHREADINFO lpgui
);
713 NtUserGetCursorIconInfo(
719 NtUserGetCursorIconSize(
734 NtUserGetInternalWindowPos(
741 NtUserGetKeyboardLayoutList(
747 NtUserGetKeyboardLayoutName(
752 NtUserGetKeyboardState(
757 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
766 NtUserGetListBoxInfo(
769 typedef struct tagNTUSERGETMESSAGEINFO
773 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
778 PNTUSERGETMESSAGEINFO MsgInfo
,
785 NtUserGetMonitorInfo(
786 IN HMONITOR hMonitor
,
787 OUT LPMONITORINFO pMonitorInfo
);
791 NtUserGetMouseMovePointsEx(
800 NtUserGetObjectInformation(
805 PDWORD nLengthNeeded
);
809 NtUserGetOpenClipboardWindow(VOID
);
813 NtUserGetPriorityClipboardFormat(
814 UINT
*paFormatPriorityList
,
819 NtUserGetProcessWindowStation(VOID
);
823 NtUserGetScrollBarInfo(
826 PSCROLLBARINFO psbi
);
837 NtUserGetThreadDesktop(
841 #define THREADSTATE_FOCUSWINDOW (1)
842 #define THREADSTATE_INSENDMESSAGE (2)
845 NtUserGetThreadState(
850 NtUserGetTitleBarInfo(
855 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
871 NtUserGetWindowPlacement(
873 WINDOWPLACEMENT
*lpwndpl
);
888 NtUserImpersonateDdeClientWindow(
894 NtUserInitializeClientPfnArrays(
917 NtUserInternalGetWindowText(
924 NtUserInvalidateRect(
939 NtUserIsClipboardFormatAvailable(
944 NtUserKillSystemTimer
960 NtUserLoadKeyboardLayoutEx(
970 NtUserLockWindowStation(
971 HWINSTA hWindowStation
);
975 NtUserLockWindowUpdate(
980 NtUserLockWorkStation(VOID
);
984 NtUserMapVirtualKeyEx( UINT keyCode
,
1002 NtUserGetMinMaxInfo(
1004 MINMAXINFO
*MinMaxInfo
,
1009 NtUserMNDragLeave(VOID
);
1019 NtUserModifyUserStartupInfoFlags(
1025 NtUserMonitorFromPoint(
1031 NtUserMonitorFromRect(
1037 NtUserMonitorFromWindow(
1055 NtUserNotifyIMEStatus(
1062 NtUserNotifyWinEvent(
1070 NtUserOpenClipboard(
1077 PUNICODE_STRING lpszDesktopName
,
1079 ACCESS_MASK dwDesiredAccess
);
1083 NtUserOpenInputDesktop(
1086 ACCESS_MASK dwDesiredAccess
);
1090 NtUserOpenWindowStation(
1091 PUNICODE_STRING lpszWindowStationName
,
1092 ACCESS_MASK dwDesiredAccess
);
1102 PNTUSERGETMESSAGEINFO MsgInfo
,
1118 NtUserPostThreadMessage(
1126 NtUserQuerySendMessage(
1131 NtUserQueryUserCounters(
1138 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
1139 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
1140 #define QUERY_WINDOW_ISHUNG 0x04
1149 NtUserRealChildWindowFromPoint(
1159 CONST RECT
*lprcUpdate
,
1164 /* FIXME: These flag constans aren't what Windows uses. */
1165 #define REGISTERCLASS_ANSI 2
1166 #define REGISTERCLASS_SYSTEM 4
1167 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM)
1170 NtUserRegisterClassExWOW(
1171 CONST WNDCLASSEXW
* lpwcx
,
1172 PUNICODE_STRING ClassName
,
1173 PUNICODE_STRING ClassNameCopy
,
1174 PUNICODE_STRING MenuName
,
1181 NtUserRegisterHotKey(HWND hWnd
,
1188 NtUserRegisterTasklist(
1192 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
1195 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
1199 NtUserResolveDesktopForWOW(
1216 CONST RECT
*lprcScroll
,
1217 CONST RECT
*lprcClip
,
1222 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
1223 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
1232 typedef struct tagNTUSERSENDMESSAGEINFO
1234 BOOL HandledByKernel
;
1237 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
1240 NtUserSendMessage(HWND hWnd
,
1244 PNTUSERSENDMESSAGEINFO Info
);
1248 NtUserSendMessageCallback(
1253 SENDASYNCPROC lpCallBack
,
1257 NtUserSendMessageTimeout(HWND hWnd
,
1264 PNTUSERSENDMESSAGEINFO Info
);
1268 NtUserSendNotifyMessage(
1275 NtUserSetActiveWindow(HWND Wnd
);
1277 NtUserGetActiveWindow(VOID
);
1280 NtUserSetCapture(HWND Wnd
);
1282 NtUserGetCapture(VOID
);
1301 NtUserSetClipboardData(
1308 NtUserSetClipboardViewer(
1309 HWND hWndNewViewer
);
1313 NtUserSetConsoleReserveKeys(
1324 NtUserSetCursorIconContents(
1326 PICONINFO IconInfo
);
1330 NtUserSetCursorIconData(
1360 NtUserSetImeOwnerWindow(
1366 NtUserSetInternalWindowPos(
1374 NtUserSetKeyboardState(
1379 NtUserSetLayeredWindowAttributes(
1387 NtUserSetLogonNotifyWindow(
1392 NtUserSetObjectInformation(
1395 PVOID pvInformation
,
1402 HWND hWndNewParent
);
1406 NtUserSetProcessWindowStation(
1407 HWINSTA hWindowStation
);
1410 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
1420 NtUserSetScrollInfo(
1428 NtUserSetShellWindowEx(
1430 HWND hwndShellListView
);
1434 NtUserGetShellWindow();
1446 NtUserSetSystemCursor(
1452 NtUserSetThreadDesktop(
1457 NtUserSetThreadState(
1463 NtUserSetSystemTimer
1468 TIMERPROC lpTimerFunc
1478 TIMERPROC lpTimerFunc
1483 NtUserSetWindowFNID(
1489 NtUserSetWindowLong(
1497 NtUserSetWindowPlacement(
1499 WINDOWPLACEMENT
*lpwndpl
);
1502 STDCALL
NtUserSetWindowPos(
1504 HWND hWndInsertAfter
,
1521 NtUserSetWindowsHookAW(
1528 NtUserSetWindowsHookEx(
1530 PUNICODE_STRING ModuleName
,
1538 NtUserSetWindowStationUser(
1545 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
1549 NtUserSetWinEventHook(
1566 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
1576 NtUserShowWindowAsync(
1582 NtUserSwitchDesktop(
1587 NtUserSystemParametersInfo(
1606 NtUserTrackMouseEvent(
1611 NtUserTranslateAccelerator(
1618 NtUserTranslateMessage(
1624 NtUserUnhookWindowsHookEx(
1629 NtUserUnhookWinEvent(
1634 NtUserUnloadKeyboardLayout(
1639 NtUserUnlockWindowStation(
1640 HWINSTA hWindowStation
);
1644 NtUserUnregisterClass(
1645 LPCWSTR ClassNameOrAtom
,
1646 HINSTANCE hInstance
,
1651 NtUserUnregisterHotKey(HWND hWnd
,
1656 NtUserUpdateInputContext(
1663 NtUserUpdateInstance(
1669 NtUserUpdateWindow( HWND hWnd
);
1673 NtUserUpdateLayeredWindow(
1686 NtUserUpdatePerUserSystemParameters(
1692 NtUserUserHandleGrantAccess(
1699 NtUserValidateHandleSecure(
1703 NtUserValidateRect(HWND Wnd
, const RECT
* Rect
);
1715 NtUserWaitForInputIdle(
1722 NtUserWaitForMsgAndEvent(
1727 NtUserWaitMessage(VOID
);
1731 NtUserWin32PoolAllocationStats(
1741 NtUserWindowFromPoint(
1747 NtUserYieldTask(VOID
);
1750 NtUserGetWindowThreadProcessId(HWND hWnd
, LPDWORD UnsafePid
);
1753 NtUserGetQueueStatus(BOOL ClearChanges
);
1756 NtUserGetParent(HWND hWnd
);
1759 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
1762 NtUserGetLastActivePopup(HWND hWnd
);
1763 typedef struct _WndProcHandle
1771 NtUserDereferenceWndProcHandle(WNDPROC wpHandle
, WndProcHandle
*Data
);
1774 NtUserManualGuiCheck(LONG Check
);
1776 typedef struct _SETSCROLLBARINFO
1780 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
1781 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
1785 NtUserSetScrollBarInfo(
1788 SETSCROLLBARINFO
*info
);
1790 /* lParam of DDE messages */
1791 typedef struct tagKMDDEEXECUTEDATA
1795 /* BYTE Data[DataSize] */
1796 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
1798 typedef struct tagKMDDELPARAM
1810 } KMDDELPARAM
, *PKMDDELPARAM
;
1812 typedef struct _GDI_TABLE_ENTRY
1814 PVOID KernelData
; /* Points to the kernel mode structure */
1815 LONG ProcessId
; /* process id that created the object, 0 for stock objects */
1816 LONG Type
; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */
1817 PVOID UserData
; /* Points to the user mode structure, usually NULL though */
1818 } GDI_TABLE_ENTRY
, *PGDI_TABLE_ENTRY
;
1820 #endif /* __WIN32K_NTUSER_H */