1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
7 NtUserBuildMenuItemList(
22 NtUserCreateMenu(BOOL PopupMenu
);
38 NtUserDrawMenuBarTemp(
58 LPCMENUITEMINFOW lpmii
);
65 NtUserGetMenuDefaultItem(
86 NtUserGetMenuItemRect(
100 NtUserHiliteMenuItem(
116 NtUserMenuItemFromPoint(
128 PROSMENUITEMINFO lpmii
,
148 NtUserSetMenuContextHelpId(
150 DWORD dwContextHelpId
);
154 NtUserSetMenuDefaultItem(
161 NtUserSetMenuFlagRtoL(
172 NtUserThunkedMenuInfo(
178 NtUserThunkedMenuItemInfo(
183 LPMENUITEMINFOW lpmii
,
184 PUNICODE_STRING lpszCaption
);
188 NtUserTrackPopupMenuEx(
197 NtUserGetSystemMetrics(ULONG Index
);
200 NtUserGetClassLong(HWND hWnd
, DWORD Offset
, BOOL Ansi
);
203 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
206 NtUserReleaseDC(HWND hWnd
, HDC hDc
);
209 NtUserGetWindowRect(HWND hWnd
, LPRECT Rect
);
212 NtUserGetClientRect(HWND hWnd
, LPRECT Rect
);
215 NtUserGetProp(HWND hWnd
, ATOM Atom
);
218 NtUserGetClientOrigin(HWND hWnd
, LPPOINT Point
);
221 NtUserGetDesktopWindow();
225 NtUserAcquireOrReleaseInputOwnership(
230 NtUserActivateKeyboardLayout(
236 NtUserAlterWindowStyle(
243 NtUserAttachThreadInput(
249 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
284 PULONG pRequiredSize
);
295 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
296 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
305 #define HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS 0x54
306 #define HWNDLOCK_ROUTINE_DRAWMENUBAR 0x55
307 #define HWNDLOCK_ROUTINE_REDRAWFRAME 0x58
308 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B
309 #define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E
316 #define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A
317 #define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B
333 NtUserCallHwndParamLock(
346 NtUserCallNextHookEx(
352 #define NOPARAM_ROUTINE_MSQCLEARWAKEMASK 0x3
353 #define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */
354 #define NOPARAM_ROUTINE_DESTROY_CARET 0xffff0002
355 #define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003
356 #define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0xffff0004
357 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
358 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
359 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
365 #define ONEPARAM_ROUTINE_GETMENU 0x01
366 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0x02
367 #define ONEPARAM_ROUTINE_WINDOWFROMDC 0x03
368 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0x04
369 #define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON 0x05
370 #define ONEPARAM_ROUTINE_SETCARETBLINKTIME 0x06
371 #define ONEPARAM_ROUTINE_GETCARETINFO 0x07
372 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0x08
373 #define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09
374 #define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x0a
375 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x0b
376 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0x0c
377 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d
378 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0x10
379 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0x27
380 #define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28
381 #define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29
382 #define ONEPARAM_ROUTINE_SHOWCURSOR 0x30
389 #define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45
390 #define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46
391 #define TWOPARAM_ROUTINE_GETDCCOLOR 0x47
392 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0x48
393 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0x49
394 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0x50
395 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0x51
396 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0x52
397 #define MSQ_STATE_CAPTURE 0x1
398 #define MSQ_STATE_ACTIVE 0x2
399 #define MSQ_STATE_FOCUS 0x3
400 #define MSQ_STATE_MENUOWNER 0x4
401 #define MSQ_STATE_MOVESIZE 0x5
402 #define MSQ_STATE_CARET 0x6
403 #define TWOPARAM_ROUTINE_ENABLEWINDOW 0x53
404 #define TWOPARAM_ROUTINE_UNKNOWN 0x54
405 #define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x55
406 #define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x56
407 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0x58
408 #define TWOPARAM_ROUTINE_SETCARETPOS 0x60
409 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0x61
410 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0x62
411 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0x63
412 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0x64
413 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0x65
414 #define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66
415 #define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000
425 NtUserChangeClipboardChain(
431 NtUserChangeDisplaySettings(
432 PUNICODE_STRING lpszDeviceName
,
433 LPDEVMODEW lpDevMode
,
439 NtUserChildWindowFromPointEx(HWND Parent
,
451 NtUserCloseClipboard(VOID
);
460 NtUserCloseWindowStation(
465 NtUserConvertMemHandle(
471 NtUserCopyAcceleratorTable(
478 NtUserCountClipboardFormats(VOID
);
482 NtUserCreateAcceleratorTable(
484 SIZE_T EntriesCount
);
496 NtUserCreateCursorIconHandle(
503 PUNICODE_STRING lpszDesktopName
,
505 ACCESS_MASK dwDesiredAccess
,
506 LPSECURITY_ATTRIBUTES lpSecurity
,
507 HWINSTA hWindowStation
);
511 NtUserCreateLocalMemHandle(
519 NtUserCreateWindowEx(
521 PUNICODE_STRING lpClassName
,
522 PUNICODE_STRING lpWindowName
,
533 BOOL bUnicodeWindow
);
537 NtUserCreateWindowStation(
538 PUNICODE_STRING lpszWindowStationName
,
539 ACCESS_MASK dwDesiredAccess
,
540 LPSECURITY_ATTRIBUTES lpSecurity
,
547 NtUserDdeGetQualityOfService(
563 NtUserDdeSetQualityOfService(
569 NtUserDeferWindowPos(HDWP WinPosInfo
,
578 NtUserDefSetText(HWND WindowHandle
, PUNICODE_STRING WindowText
);
582 NtUserDestroyAcceleratorTable(
587 NtUserDestroyCursorIcon(
592 NtUserDestroyWindow(HWND Wnd
);
594 typedef struct tagNTUSERDISPATCHMESSAGEINFO
596 BOOL HandledByKernel
;
600 } NTUSERDISPATCHMESSAGEINFO
, *PNTUSERDISPATCHMESSAGEINFO
;
604 NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo
);
625 NtUserDrawAnimatedRects(
641 NtUserDrawCaptionTemp(
660 HBRUSH hbrFlickerFreeDraw
,
667 NtUserEmptyClipboard(VOID
);
671 NtUserEnableScrollBar(
678 NtUserEndDeferWindowPosEx(
683 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
687 NtUserEnumDisplayDevices (
688 PUNICODE_STRING lpDevice
, /* device name */
689 DWORD iDevNum
, /* display device */
690 PDISPLAY_DEVICE lpDisplayDevice
, /* device information */
691 DWORD dwFlags
); /* reserved */
695 NtUserEnumDisplayMonitors (
698 MONITORENUMPROC lpfnEnum,
703 NtUserEnumDisplayMonitors(
705 OPTIONAL IN LPCRECT pRect
,
706 OPTIONAL OUT HMONITOR
*hMonitorList
,
707 OPTIONAL OUT LPRECT monitorRectList
,
708 OPTIONAL IN DWORD listSize
);
713 NtUserEnumDisplaySettings(
714 PUNICODE_STRING lpszDeviceName
,
716 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
726 NtUserExcludeUpdateRgn(
740 NtUserFindExistingCursorIcon(
751 PUNICODE_STRING ucClassName
,
752 PUNICODE_STRING ucWindowName
771 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
776 NtUserGetAsyncKeyState(
781 NtUserGetCaretBlinkTime(VOID
);
789 NtUserGetClassInfo(HINSTANCE hInst
,
797 NtUserGetClassName(HWND hWnd
,
803 NtUserGetClipboardData(
809 NtUserGetClipboardFormatName(
811 PUNICODE_STRING FormatName
,
816 NtUserGetClipboardOwner(VOID
);
820 NtUserGetClipboardSequenceNumber(VOID
);
824 NtUserGetClipboardViewer(VOID
);
833 NtUserGetComboBoxInfo(
839 NtUserGetControlBrush(
846 NtUserGetControlColor(
861 NtUserGetCursorFrameInfo(
886 NtUserGetDoubleClickTime(VOID
);
890 NtUserGetForegroundWindow(VOID
);
894 NtUserGetGuiResources(
900 NtUserGetGUIThreadInfo(
902 LPGUITHREADINFO lpgui
);
906 NtUserGetCursorIconInfo(
912 NtUserGetCursorIconSize(
927 NtUserGetInternalWindowPos(
934 NtUserGetKeyboardLayout(
939 NtUserGetKeyboardLayoutList(
945 NtUserGetKeyboardLayoutName(
950 NtUserGetKeyboardState(
955 NtUserGetKeyboardType(
960 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
969 NtUserGetListBoxInfo(
972 typedef struct tagNTUSERGETMESSAGEINFO
976 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
981 PNTUSERGETMESSAGEINFO MsgInfo
,
988 NtUserGetMonitorInfo(
989 IN HMONITOR hMonitor
,
990 OUT LPMONITORINFO pMonitorInfo
);
994 NtUserGetMouseMovePointsEx(
996 LPMOUSEMOVEPOINT lppt
,
997 LPMOUSEMOVEPOINT lpptBuf
,
1003 NtUserGetObjectInformation(
1006 PVOID pvInformation
,
1008 PDWORD nLengthNeeded
);
1012 NtUserGetOpenClipboardWindow(VOID
);
1016 NtUserGetPriorityClipboardFormat(
1017 UINT
*paFormatPriorityList
,
1022 NtUserGetProcessWindowStation(VOID
);
1026 NtUserGetScrollBarInfo(
1029 PSCROLLBARINFO psbi
);
1033 NtUserGetScrollInfo(
1040 NtUserGetThreadDesktop(
1044 #define THREADSTATE_FOCUSWINDOW (1)
1045 #define THREADSTATE_INSENDMESSAGE (2)
1048 NtUserGetThreadState(
1053 NtUserGetTitleBarInfo(
1058 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
1074 NtUserGetWindowPlacement(
1076 WINDOWPLACEMENT
*lpwndpl
);
1086 NtUserImpersonateDdeClientWindow(
1092 NtUserInitializeClientPfnArrays(
1115 NtUserInternalGetWindowText(
1123 NtUserIsClipboardFormatAvailable(
1128 NtUserKillSystemTimer
1144 NtUserLoadKeyboardLayoutEx(
1154 NtUserLockWindowStation(
1155 HWINSTA hWindowStation
);
1159 NtUserLockWindowUpdate(
1164 NtUserLockWorkStation(VOID
);
1168 NtUserMapVirtualKeyEx( UINT keyCode
,
1186 NtUserGetMinMaxInfo(
1188 MINMAXINFO
*MinMaxInfo
,
1193 NtUserMNDragLeave(VOID
);
1203 NtUserModifyUserStartupInfoFlags(
1209 NtUserMonitorFromPoint(
1215 NtUserMonitorFromRect(
1221 NtUserMonitorFromWindow(
1239 NtUserNotifyIMEStatus(
1246 NtUserNotifyWinEvent(
1254 NtUserOpenClipboard(
1261 PUNICODE_STRING lpszDesktopName
,
1263 ACCESS_MASK dwDesiredAccess
);
1267 NtUserOpenInputDesktop(
1270 ACCESS_MASK dwDesiredAccess
);
1274 NtUserOpenWindowStation(
1275 PUNICODE_STRING lpszWindowStationName
,
1276 ACCESS_MASK dwDesiredAccess
);
1286 PNTUSERGETMESSAGEINFO MsgInfo
,
1302 NtUserPostThreadMessage(
1310 NtUserQuerySendMessage(
1315 NtUserQueryUserCounters(
1322 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
1323 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
1324 #define QUERY_WINDOW_ISHUNG 0x04
1333 NtUserRealizePalette(HDC hDC
);
1337 NtUserRealChildWindowFromPoint(
1347 CONST RECT
*lprcUpdate
,
1352 /* FIXME: These flag constans aren't what Windows uses. */
1353 #define REGISTERCLASS_ANSI 2
1354 #define REGISTERCLASS_SYSTEM 4
1355 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM)
1358 NtUserRegisterClassExWOW(
1359 CONST WNDCLASSEXW
* lpwcx
,
1360 PUNICODE_STRING ClassName
,
1361 PUNICODE_STRING ClassNameCopy
,
1362 PUNICODE_STRING MenuName
,
1370 NtUserRegisterHotKey(HWND hWnd
,
1377 NtUserRegisterTasklist(
1381 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
1384 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
1388 NtUserResolveDesktopForWOW(
1405 CONST RECT
*lprcScroll
,
1406 CONST RECT
*lprcClip
,
1411 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
1412 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
1421 typedef struct tagNTUSERSENDMESSAGEINFO
1423 BOOL HandledByKernel
;
1426 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
1429 NtUserSendMessage(HWND hWnd
,
1433 PNTUSERSENDMESSAGEINFO Info
);
1437 NtUserSendMessageCallback(
1442 SENDASYNCPROC lpCallBack
,
1446 NtUserSendMessageTimeout(HWND hWnd
,
1453 PNTUSERSENDMESSAGEINFO Info
);
1457 NtUserSendNotifyMessage(
1464 NtUserSetActiveWindow(HWND Wnd
);
1466 NtUserGetActiveWindow(VOID
);
1469 NtUserSetCapture(HWND Wnd
);
1471 NtUserGetCapture(VOID
);
1490 NtUserSetClipboardData(
1497 NtUserSetClipboardViewer(
1498 HWND hWndNewViewer
);
1502 NtUserSelectPalette(
1505 BOOL ForceBackground
1510 NtUserSetConsoleReserveKeys(
1521 NtUserSetCursorIconContents(
1523 PICONINFO IconInfo
);
1527 NtUserSetCursorIconData(
1557 NtUserSetImeOwnerWindow(
1563 NtUserSetInternalWindowPos(
1571 NtUserSetKeyboardState(
1576 NtUserSetLayeredWindowAttributes(
1584 NtUserSetLogonNotifyWindow(
1589 NtUserSetObjectInformation(
1592 PVOID pvInformation
,
1599 HWND hWndNewParent
);
1603 NtUserSetProcessWindowStation(
1604 HWINSTA hWindowStation
);
1607 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
1617 NtUserSetScrollInfo(
1625 NtUserSetShellWindowEx(
1627 HWND hwndShellListView
);
1631 NtUserGetShellWindow();
1643 NtUserSetSystemCursor(
1649 NtUserSetThreadDesktop(
1654 NtUserSetThreadState(
1660 NtUserSetSystemTimer
1665 TIMERPROC lpTimerFunc
1675 TIMERPROC lpTimerFunc
1680 NtUserSetWindowFNID(
1686 NtUserSetWindowLong(
1694 NtUserSetWindowPlacement(
1696 WINDOWPLACEMENT
*lpwndpl
);
1699 NTAPI
NtUserSetWindowPos(
1701 HWND hWndInsertAfter
,
1718 NtUserSetWindowsHookAW(
1725 NtUserSetWindowsHookEx(
1727 PUNICODE_STRING ModuleName
,
1735 NtUserSetWindowStationUser(
1742 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
1746 NtUserSetWinEventHook(
1764 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
1774 NtUserShowWindowAsync(
1780 NtUserSwitchDesktop(
1785 NtUserSystemParametersInfo(
1804 NtUserTrackMouseEvent(
1809 NtUserTranslateAccelerator(
1816 NtUserTranslateMessage(
1822 NtUserUnhookWindowsHookEx(
1827 NtUserUnhookWinEvent(
1832 NtUserUnloadKeyboardLayout(
1837 NtUserUnlockWindowStation(
1838 HWINSTA hWindowStation
);
1842 NtUserUnregisterClass(
1843 LPCWSTR ClassNameOrAtom
,
1844 HINSTANCE hInstance
,
1849 NtUserUnregisterHotKey(HWND hWnd
,
1854 NtUserUpdateInputContext(
1861 NtUserUpdateInstance(
1868 NtUserUpdateLayeredWindow(
1881 NtUserUpdatePerUserSystemParameters(
1887 NtUserUserHandleGrantAccess(
1894 NtUserValidateHandleSecure(
1906 NtUserWaitForInputIdle(
1913 NtUserWaitForMsgAndEvent(
1918 NtUserWaitMessage(VOID
);
1922 NtUserWin32PoolAllocationStats(
1932 NtUserWindowFromPoint(
1938 NtUserYieldTask(VOID
);
1941 NtUserGetWindowThreadProcessId(HWND hWnd
, LPDWORD UnsafePid
);
1944 NtUserGetQueueStatus(BOOL ClearChanges
);
1947 NtUserGetParent(HWND hWnd
);
1950 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
1953 NtUserGetLastActivePopup(HWND hWnd
);
1954 typedef struct _WndProcHandle
1962 NtUserDereferenceWndProcHandle(WNDPROC wpHandle
, WndProcHandle
*Data
);
1965 NtUserManualGuiCheck(LONG Check
);
1967 #define NtUserGetDCBrushColor(hbr) \
1968 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
1970 #define NtUserGetDCPenColor(hbr) \
1971 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)
1973 #define NtUserSetDCBrushColor(hbr, crColor) \
1974 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)
1976 #define NtUserSetDCPenColor(hbr, crColor) \
1977 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
1979 typedef struct _SETSCROLLBARINFO
1983 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
1984 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
1988 NtUserSetScrollBarInfo(
1991 SETSCROLLBARINFO
*info
);
1993 /* lParam of DDE messages */
1994 typedef struct tagKMDDEEXECUTEDATA
1998 /* BYTE Data[DataSize] */
1999 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
2001 typedef struct tagKMDDELPARAM
2013 } KMDDELPARAM
, *PKMDDELPARAM
;
2015 #endif /* __WIN32K_NTUSER_H */