1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
4 struct _W32PROCESSINFO
;
8 typedef struct _LARGE_UNICODE_STRING
11 ULONG MaximumLength
:31;
14 } LARGE_UNICODE_STRING
, *PLARGE_UNICODE_STRING
;
16 typedef struct _LARGE_STRING
19 ULONG MaximumLength
:31;
22 } LARGE_STRING
, *PLARGE_STRING
;
24 // Based on ANSI_STRING
26 typedef struct _LARGE_ANSI_STRING
29 ULONG MaximumLength
:31;
32 } LARGE_ANSI_STRING
, *PLARGE_ANSI_STRING
;
34 VOID NTAPI
RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING
,IN PCSZ
,IN INT
);
35 VOID NTAPI
RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING
,IN PCWSTR
,IN INT
);
36 BOOL NTAPI
RtlLargeStringToUnicodeString( PUNICODE_STRING
, PLARGE_STRING
);
38 /* FIXME: UserHMGetHandle needs to be updated once the new handle manager is implemented */
39 #define UserHMGetHandle(obj) ((obj)->hdr.Handle)
41 typedef struct _REGISTER_SYSCLASS
43 /* This is a reactos specific class used to initialize the
44 system window classes during user32 initialization */
45 UNICODE_STRING ClassName
;
53 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
55 typedef struct _CLSMENUNAME
57 LPSTR pszClientAnsiMenuName
;
58 LPWSTR pwszClientUnicodeMenuName
;
59 PUNICODE_STRING pusMenuName
;
60 } CLSMENUNAME
, *PCLSMENUNAME
;
62 typedef struct _USER_OBJHDR
64 /* This is the common header for all user handle objects */
66 } USER_OBJHDR
, PUSER_OBJHDR
;
68 typedef struct _DESKTOPINFO
85 UINT LastInputWasKbd
: 1;
89 WCHAR szDesktopName
[1];
90 } DESKTOPINFO
, *PDESKTOPINFO
;
92 typedef struct _CALLPROC
94 USER_OBJHDR hdr
; /* FIXME: Move out of the structure once new handle manager is implemented */
95 struct _W32PROCESSINFO
*pi
;
97 struct _CALLPROC
*Next
;
99 } CALLPROC
, *PCALLPROC
;
101 typedef struct _WINDOWCLASS
103 struct _WINDOWCLASS
*Next
;
104 struct _WINDOWCLASS
*Clone
;
105 struct _WINDOWCLASS
*Base
;
106 struct _DESKTOP
*rpdeskParent
;
114 WNDPROC WndProcExtra
;
117 PCALLPROC CallProcList
;
121 DWORD fnID
; // New ClassId
123 HANDLE hIcon
; /* FIXME - Use pointer! */
124 HANDLE hIconSm
; /* FIXME - Use pointer! */
125 HANDLE hCursor
; /* FIXME - Use pointer! */
126 HBRUSH hbrBackground
;
127 HANDLE hMenu
; /* FIXME - Use pointer! */
135 UINT MenuNameIsString
: 1;
137 } WINDOWCLASS
, *PWINDOWCLASS
;
139 typedef struct _WINDOW
141 USER_OBJHDR hdr
; /* FIXME: Move out of the structure once new handle manager is implemented */
143 /* NOTE: This structure is located in the desktop heap and will
144 eventually replace WINDOW_OBJECT. Right now WINDOW_OBJECT
145 keeps a reference to this structure until all the information
146 is moved to this structure */
147 struct _W32PROCESSINFO
*pi
; /* FIXME: Move to object header some day */
148 struct _W32THREADINFO
*ti
;
149 struct _DESKTOP
*pdesktop
;
156 /* Pointer to a call procedure handle */
158 /* Extra Wnd proc (windows of system classes) */
159 WNDPROC WndProcExtra
;
162 struct _WINDOW
*Parent
;
163 struct _WINDOW
*Owner
;
165 /* Size of the extra data associated with the window. */
169 /* Extended style. */
171 /* Handle of the module that created the window. */
173 /* Window menu handle or window id */
176 /* Pointer to the window class. */
179 UNICODE_STRING WindowName
;
180 /* Context help id */
184 /* Property list head.*/
185 LIST_ENTRY PropListHead
;
196 /* Indicates whether the window is derived from a system class */
198 UINT InternalPosInitialized
: 1;
203 typedef struct _PFNCLIENT
214 PROC pfnComboListBoxC
;
221 PROC pfnHkINLPCWPSTRUCT
;
222 PROC pfnHkINLPCWPRETSTRUCT
;
223 PROC pfnDispatchHookC
;
224 PROC pfnDispatchDefC
;
225 } PFNCLIENT
, *PPFNCLIENT
;
227 typedef struct _PFNCLIENTWORKER
231 PROC pfnComboListBoxCW
;
238 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
241 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
242 #define FNID_SCROLLBAR 0x029A
243 #define FNID_ICONTITLE 0x029B
244 #define FNID_MENU 0x029C
245 #define FNID_DESKTOP 0x029D
246 #define FNID_DEFWINDOWPROC 0x029E
247 #define FNID_SWITCH 0x02A0
248 #define FNID_BUTTON 0x02A1
249 #define FNID_COMBOBOX 0x02A2
250 #define FNID_COMBOLBOX 0x02A3
251 #define FNID_DIALOG 0x02A4
252 #define FNID_EDIT 0x02A5
253 #define FNID_LISTBOX 0x02A6
254 #define FNID_MDICLIENT 0x02A7
255 #define FNID_STATIC 0x02A8
256 #define FNID_IME 0x02A9
257 #define FNID_CALLWNDPROC 0x02AA
258 #define FNID_CALLWNDPROCRET 0x02AB
259 #define FNID_SENDMESSAGE 0x02B0
260 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
261 #define FNID_SENDMESSAGEWTOOPTION 0x02B1
262 #define FNID_SENDMESSAGETIMEOUT 0x02B2
263 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B4
264 #define FNID_TOOLTIPS 0x02B5
265 #define FNID_UNKNOWN 0x02B6
266 #define FNID_SENDNOTIFYMESSAGE 0x02B7
267 #define FNID_SENDMESSAGECALLBACK 0x02B8
270 #define FNID_DDEML 0x2000 // Registers DDEML
271 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
272 // Seen during WM_CREATE on error exit too.
274 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
275 #define ICLS_BUTTON 0
277 #define ICLS_STATIC 2
278 #define ICLS_LISTBOX 3
279 #define ICLS_SCROLLBAR 4
280 #define ICLS_COMBOBOX 5
281 #define ICLS_MDICLIENT 6
282 #define ICLS_COMBOLBOX 7
283 #define ICLS_DDEMLEVENT 8
284 #define ICLS_DDEMLMOTHER 9
285 #define ICLS_DDEML16BIT 10
286 #define ICLS_DDEMLCLIENTA 11
287 #define ICLS_DDEMLCLIENTW 12
288 #define ICLS_DDEMLSERVERA 13
289 #define ICLS_DDEMLSERVERW 14
291 #define ICLS_DESKTOP 16
292 #define ICLS_DIALOG 17
294 #define ICLS_SWITCH 19
295 #define ICLS_ICONTITLE 20
296 #define ICLS_TOOLTIPS 21
297 #define ICLS_UNKNOWN 22
298 #define ICLS_NOTUSED 23
301 #define SRVINFO_METRICS 0x0020
303 typedef struct _SERVERINFO
306 DWORD SystemMetrics
[SM_CMETRICS
]; // System Metrics
307 COLORREF SysColors
[COLOR_MENUBAR
+1]; // GetSysColor
308 HBRUSH SysColorBrushes
[COLOR_MENUBAR
+1]; // GetSysColorBrush
309 HPEN SysColorPens
[COLOR_MENUBAR
+1]; // ReactOS exclusive
317 TEXTMETRICW tmSysFont
;
325 DWORD PUSIFlags
; // PERUSERSERVERINFO Flags.
328 UINT LastRITWasKeyboard
: 1;
329 UINT bKeyboardPref
: 1;
331 DWORD SrvEventActivity
;
332 } SERVERINFO
, *PSERVERINFO
;
334 typedef struct _W32PROCESSINFO
336 PVOID UserHandleTable
;
338 ULONG_PTR UserHeapDelta
;
340 PWINDOWCLASS LocalClassList
;
341 PWINDOWCLASS GlobalClassList
;
342 PWINDOWCLASS SystemClassList
;
344 UINT RegisteredSysClasses
: 1;
348 } W32PROCESSINFO
, *PW32PROCESSINFO
;
350 #define CTI_INSENDMESSAGE 0x0002
352 typedef struct _CLIENTTHREADINFO
357 WORD fsWakeBitsJournal
;
361 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
363 typedef struct _W32THREADINFO
365 PW32PROCESSINFO pi
; /* [USER] */
366 PW32PROCESSINFO kpi
; /* [KERNEL] */
367 PDESKTOPINFO Desktop
;
368 // PVOID DesktopHeapBase;
369 // ULONG_PTR DesktopHeapLimit;
370 /* A mask of what hooks are currently active */
372 CLIENTTHREADINFO ClientThreadInfo
;
373 } W32THREADINFO
, *PW32THREADINFO
;
375 /* Window Client Information structure */
379 typedef struct tagHOOK
381 LIST_ENTRY Chain
; /* Hook chain entry */
382 HHOOK Self
; /* user handle for this hook */
383 struct _ETHREAD
* Thread
; /* Thread owning the hook */
384 int HookId
; /* Hook table index */
385 HOOKPROC Proc
; /* Hook function */
386 BOOLEAN Ansi
; /* Is it an Ansi hook? */
387 ULONG Flags
; /* Some internal flags */
388 UNICODE_STRING ModuleName
; /* Module name for global hooks */
391 typedef struct _CALLBACKWND
395 } CALLBACKWND
, *PCALLBACKWND
;
397 #define CI_CURTHPRHOOK 0x00000010
399 typedef struct _CLIENTINFO
405 DWORD dwCompatFlags2
;
407 PDESKTOPINFO pDeskInfo
;
408 ULONG_PTR ulClientDelta
;
411 CALLBACKWND CallbackWnd
;
412 ULONG Win32ClientInfo
;
414 INT cInDDEMLCallback
;
415 PCLIENTTHREADINFO pClientThreadInfo
;
416 ULONG_PTR dwHookData
;
419 DWORD dwAsyncKeyCache
;
420 DWORD afAsyncKeyState
[2];
421 DWORD afAsyncKeyStateRecentDow
[2];
425 ULONG Win32ClientInfo3
[35];
426 } CLIENTINFO
, *PCLIENTINFO
;
428 /* Make sure it fits exactly into the TEB */
429 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
431 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
433 // Server event activity bits.
434 #define SRV_EVENT_MENU 0x0001
435 #define SRV_EVENT_END_APPLICATION 0x0002
436 #define SRV_EVENT_RUNNING 0x0004
437 #define SRV_EVENT_NAMECHANGE 0x0008
438 #define SRV_EVENT_VALUECHANGE 0x0010
439 #define SRV_EVENT_STATECHANGE 0x0020
440 #define SRV_EVENT_LOCATIONCHANGE 0x0040
441 #define SRV_EVENT_CREATE 0x8000
443 typedef struct _PROPLISTITEM
447 } PROPLISTITEM
, *PPROPLISTITEM
;
449 typedef struct _PROPERTY
451 LIST_ENTRY PropListEntry
;
454 } PROPERTY
, *PPROPERTY
;
456 typedef struct _BROADCASTPARM
463 } BROADCASTPARM
, *PBROADCASTPARM
;
465 PW32THREADINFO
GetW32ThreadInfo(VOID
);
466 PW32PROCESSINFO
GetW32ProcessInfo(VOID
);
468 typedef struct _WNDMSG
474 typedef struct _SHAREDINFO
476 PSERVERINFO psi
; // global Server Info
477 PVOID aheList
; // Handle Entry List
478 PVOID pDispInfo
; // global PDISPLAYINFO pointer
479 ULONG_PTR ulSharedDelta
; // Heap delta
480 WNDMSG awmControl
[31];
481 WNDMSG DefWindowMsgs
;
482 WNDMSG DefWindowSpecMsgs
;
483 } SHAREDINFO
, *PSHAREDINFO
;
485 typedef struct _USERCONNECT
488 ULONG ulCurrentVersion
;
489 DWORD dwDispatchCount
;
491 } USERCONNECT
, *PUSERCONNECT
;
494 // Non SDK Window Message types.
496 #define WM_SYSTIMER 280
497 #define WM_POPUPSYSTEMMENU 787
500 // Non SDK DCE types.
502 #define DCX_USESTYLE 0x00010000
503 #define DCX_KEEPCLIPRGN 0x00040000
507 NtUserAssociateInputContext(
538 NtUserCtxDisplayIOCtl(
557 NtUserDrawMenuBarTemp(
566 NtUserEnableMenuItem(
577 NtUserGetMenuBarInfo(
591 NtUserGetMenuItemRect(
605 NtUserHiliteMenuItem(
613 NtUserMenuItemFromPoint(
635 NtUserSetMenuContextHelpId(
637 DWORD dwContextHelpId
);
641 NtUserSetMenuDefaultItem(
648 NtUserSetMenuFlagRtoL(
659 NtUserThunkedMenuInfo(
665 NtUserThunkedMenuItemInfo(
670 LPMENUITEMINFOW lpmii
,
671 PUNICODE_STRING lpszCaption
);
675 NtUserTrackPopupMenuEx(
685 NtUserActivateKeyboardLayout(
691 NtUserAlterWindowStyle(
698 NtUserAttachThreadInput(
704 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
739 PULONG pRequiredSize
);
749 /* apfnSimpleCall indices from Windows XP SP 2 */
750 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
751 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
753 enum SimpleCallRoutines
755 NOPARAM_ROUTINE_CREATEMENU
,
756 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
757 #if (WIN32K_VERSION >= NTDDI_VISTA)
758 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
759 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
760 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
761 NOPARAM_ROUTINE_DESTROY_CARET
,
763 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
764 #if (WIN32K_VERSION < NTDDI_VISTA)
765 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
766 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
767 NOPARAM_ROUTINE_DESTROY_CARET
,
769 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
770 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
771 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
772 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
773 #if (WIN32K_VERSION >= NTDDI_VISTA)
774 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
776 NOPARAM_ROUTINE_GETREMOTEPROCID
,
778 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
779 NOPARAM_ROUTINE_LOADCURSANDICOS
,
780 #if (WIN32K_VERSION >= NTDDI_VISTA)
781 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
782 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
784 NOPARAM_ROUTINE_RELEASECAPTURE
,
785 NOPARAM_ROUTINE_RESETDBLCLICK
,
786 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
787 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
788 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
789 NOPARAM_ROUTINE_REMOTELOGOFF
,
790 NOPARAM_ROUTINE_REMOTENTSECURITY
,
791 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
792 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
793 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
794 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
795 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
796 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
797 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
798 #if (WIN32K_VERSION >= NTDDI_VISTA)
799 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
801 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
802 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
803 #if (WIN32K_VERSION < NTDDI_VISTA)
804 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
806 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
807 #if (WIN32K_VERSION >= NTDDI_VISTA)
808 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
810 ONEPARAM_ROUTINE_WINDOWFROMDC
,
811 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
812 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
813 #if (WIN32K_VERSION < NTDDI_VISTA)
814 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
816 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
817 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
818 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
819 #if (WIN32K_VERSION < NTDDI_VISTA)
820 ONEPARAM_ROUTINE_GETCURSORPOS
,
822 ONEPARAM_ROUTINE_GETINPUTEVENT
,
823 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
824 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
825 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
826 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
827 ONEPARAM_ROUTINE_GETWINSTAINFO
,
828 #if (WIN32K_VERSION < NTDDI_VISTA)
829 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
831 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
832 ONEPARAM_ROUTINE_LOADFONTS
,
833 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
834 ONEPARAM_ROUTINE_MESSAGEBEEP
,
835 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
836 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
837 #if (WIN32K_VERSION < NTDDI_VISTA)
838 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
840 ONEPARAM_ROUTINE_REALIZEPALETTE
,
841 ONEPARAM_ROUTINE_REGISTERLPK
,
842 #if (WIN32K_VERSION >= NTDDI_VISTA)
843 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
845 ONEPARAM_ROUTINE_REMOTERECONNECT
,
846 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
847 ONEPARAM_ROUTINE_RELEASEDC
,
848 #if (WIN32K_VERSION >= NTDDI_VISTA)
849 ONEPARAM_ROUTINE_REMOTENOTIFY
,
851 ONEPARAM_ROUTINE_REPLYMESSAGE
,
852 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
853 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
854 #if (WIN32K_VERSION < NTDDI_VISTA)
855 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
857 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
858 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
859 #if (WIN32K_VERSION >= NTDDI_VISTA)
860 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
862 ONEPARAM_ROUTINE_SHOWCURSOR
,
863 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
864 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
865 X_ROUTINE_WOWMODULEUNLOAD
,
866 #if (WIN32K_VERSION < NTDDI_VISTA)
867 X_ROUTINE_REMOTENOTIFY
,
869 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
870 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
871 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
872 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
873 HWND_ROUTINE_SETMSGBOX
,
874 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
875 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
876 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
877 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
878 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
879 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
880 HWNDPARAM_ROUTINE_SETVISIBLE
,
881 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
882 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
883 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
884 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
885 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
886 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
887 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
888 HWNDLOCK_ROUTINE_REDRAWFRAME
,
889 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
890 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
891 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
892 HWNDLOCK_ROUTINE_SETSYSMENU
,
893 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
894 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
895 X_ROUTINE_IMESHOWSTATUSCHANGE
,
896 TWOPARAM_ROUTINE_ENABLEWINDOW
,
897 TWOPARAM_ROUTINE_REDRAWTITLE
,
898 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
899 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
900 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
901 TWOPARAM_ROUTINE_VALIDATERGN
,
902 #if (WIN32K_VERSION >= NTDDI_VISTA)
903 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
904 TWOPARAM_ROUTINE_GETCURSORPOS
,
906 TWOPARAM_ROUTINE_GETHDEVNAME
,
907 TWOPARAM_ROUTINE_INITANSIOEM
,
908 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
909 #if (WIN32K_VERSION >= NTDDI_VISTA)
910 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
912 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
913 #if (WIN32K_VERSION >= NTDDI_VISTA)
914 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
916 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
918 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
919 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
920 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
921 TWOPARAM_ROUTINE_SETCARETPOS
,
922 TWOPARAM_ROUTINE_SETCURSORPOS
,
923 #if (WIN32K_VERSION >= NTDDI_VISTA)
924 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
926 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
927 TWOPARAM_ROUTINE_WOWCLEANUP
957 NtUserCallHwndParamLock(
970 NtUserCallNextHookEx(
996 NtUserChangeClipboardChain(
1002 NtUserChangeDisplaySettings(
1003 PUNICODE_STRING lpszDeviceName
,
1004 LPDEVMODEW lpDevMode
,
1011 NtUserCheckImeHotKey(
1016 NtUserChildWindowFromPointEx(
1029 NtUserCloseClipboard(VOID
);
1038 NtUserCloseWindowStation(
1043 NtUserConsoleControl(
1050 NtUserConvertMemHandle(
1056 NtUserCopyAcceleratorTable(
1063 NtUserCountClipboardFormats(VOID
);
1067 NtUserCreateAcceleratorTable(
1069 SIZE_T EntriesCount
);
1081 NtUserCreateDesktop(
1082 PUNICODE_STRING lpszDesktopName
,
1084 ACCESS_MASK dwDesiredAccess
,
1085 LPSECURITY_ATTRIBUTES lpSecurity
,
1086 HWINSTA hWindowStation
);
1090 NtUserCreateInputContext(
1095 NtUserCreateLocalMemHandle(
1103 NtUserCreateWindowEx(
1105 PUNICODE_STRING lpClassName
,
1106 PUNICODE_STRING lpWindowName
,
1114 HINSTANCE hInstance
,
1117 BOOL bUnicodeWindow
,
1122 NtUserCreateWindowEx(
1124 PLARGE_STRING plstrClassName
,
1125 PLARGE_STRING plstrClsVesrion
,
1126 PLARGE_STRING plstrWindowName
,
1134 HINSTANCE hInstance
,
1142 NtUserCreateWindowStation(
1143 PUNICODE_STRING lpszWindowStationName
,
1144 ACCESS_MASK dwDesiredAccess
,
1145 LPSECURITY_ATTRIBUTES lpSecurity
,
1153 NtUserDdeGetQualityOfService(
1156 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1160 NtUserDdeInitialize(
1169 NtUserDdeSetQualityOfService(
1171 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1172 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1175 NtUserDeferWindowPos(HDWP WinPosInfo
,
1177 HWND WndInsertAfter
,
1184 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1188 NtUserDestroyAcceleratorTable(
1193 NtUserDestroyCursor(
1199 NtUserDestroyInputContext(
1203 NtUserDestroyWindow(HWND Wnd
);
1207 NtUserDisableThreadIme(
1212 NtUserDispatchMessage(PMSG pMsg
);
1231 NtUserDrawAnimatedRects(
1247 NtUserDrawCaptionTemp(
1253 const PUNICODE_STRING str
,
1266 HBRUSH hbrFlickerFreeDraw
,
1273 NtUserEmptyClipboard(VOID
);
1277 NtUserEnableScrollBar(
1284 NtUserEndDeferWindowPosEx(
1289 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1293 NtUserEnumDisplayDevices (
1294 PUNICODE_STRING lpDevice
, /* device name */
1295 DWORD iDevNum
, /* display device */
1296 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1297 DWORD dwFlags
); /* reserved */
1301 NtUserEnumDisplayMonitors (
1304 MONITORENUMPROC lpfnEnum,
1306 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1309 NtUserEnumDisplayMonitors(
1310 OPTIONAL IN HDC hDC
,
1311 OPTIONAL IN LPCRECT pRect
,
1312 OPTIONAL OUT HMONITOR
*hMonitorList
,
1313 OPTIONAL OUT LPRECT monitorRectList
,
1314 OPTIONAL IN DWORD listSize
);
1319 NtUserEnumDisplaySettings(
1320 PUNICODE_STRING lpszDeviceName
,
1322 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1332 NtUserExcludeUpdateRgn(
1346 NtUserFindExistingCursorIcon(
1356 HWND hwndChildAfter
,
1357 PUNICODE_STRING ucClassName
,
1358 PUNICODE_STRING ucWindowName
,
1364 NtUserFlashWindowEx(
1365 IN PFLASHWINFO pfwi
);
1369 NtUserGetAltTabInfo(
1378 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1382 NtUserGetAppImeLevel(
1387 NtUserGetAsyncKeyState(
1398 NtUserGetCaretBlinkTime(VOID
);
1406 NtUserGetClassInfo(HINSTANCE hInstance
,
1407 PUNICODE_STRING ClassName
,
1409 LPWSTR
*ppszMenuName
,
1414 NtUserGetClassName(HWND hWnd
,
1415 PUNICODE_STRING ClassName
,
1417 #if 0 // Real NtUserGetClassName
1420 NtUserGetClassName(HWND hWnd
,
1421 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1422 PUNICODE_STRING ClassName
);
1427 NtUserGetClipboardData(
1433 NtUserGetClipboardFormatName(
1435 PUNICODE_STRING FormatName
,
1440 NtUserGetClipboardOwner(VOID
);
1444 NtUserGetClipboardSequenceNumber(VOID
);
1448 NtUserGetClipboardViewer(VOID
);
1452 NtUserGetClipCursor(
1457 NtUserGetComboBoxInfo(
1459 PCOMBOBOXINFO pcbi
);
1463 NtUserGetControlBrush(
1470 NtUserGetControlColor(
1485 NtUserGetCursorFrameInfo(
1493 NtUserGetCursorInfo(
1510 NtUserGetDoubleClickTime(VOID
);
1514 NtUserGetForegroundWindow(VOID
);
1518 NtUserGetGuiResources(
1524 NtUserGetGUIThreadInfo(
1526 LPGUITHREADINFO lpgui
);
1533 PUNICODE_STRING lpInstName
,
1534 PUNICODE_STRING lpResName
,
1562 NtUserGetInternalWindowPos(
1569 NtUserGetKeyboardLayout(
1574 NtUserGetKeyboardLayoutList(
1580 NtUserGetKeyboardLayoutName(
1585 NtUserGetKeyboardState(
1590 NtUserGetKeyboardType(
1595 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1604 NtUserGetLayeredWindowAttributes(
1612 NtUserGetListBoxInfo(
1615 typedef struct tagNTUSERGETMESSAGEINFO
1619 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1624 PNTUSERGETMESSAGEINFO MsgInfo
,
1627 UINT wMsgFilterMax
);
1631 NtUserGetMouseMovePointsEx(
1633 LPMOUSEMOVEPOINT lppt
,
1634 LPMOUSEMOVEPOINT lpptBuf
,
1640 NtUserGetObjectInformation(
1643 PVOID pvInformation
,
1645 PDWORD nLengthNeeded
);
1649 NtUserGetOpenClipboardWindow(VOID
);
1653 NtUserGetPriorityClipboardFormat(
1654 UINT
*paFormatPriorityList
,
1659 NtUserGetProcessWindowStation(VOID
);
1663 NtUserGetRawInputBuffer(
1670 NtUserGetRawInputData(
1671 HRAWINPUT hRawInput
,
1679 NtUserGetRawInputDeviceInfo(
1687 NtUserGetRawInputDeviceList(
1688 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1689 PUINT puiNumDevices
,
1694 NtUserGetRegisteredRawInputDevices(
1695 PRAWINPUTDEVICE pRawInputDevices
,
1696 PUINT puiNumDevices
,
1701 NtUserGetScrollBarInfo(
1704 PSCROLLBARINFO psbi
);
1708 NtUserGetThreadDesktop(
1713 enum ThreadStateRoutines
1715 THREADSTATE_GETTHREADINFO
,
1716 THREADSTATE_INSENDMESSAGE
,
1717 THREADSTATE_FOCUSWINDOW
,
1718 THREADSTATE_ACTIVEWINDOW
,
1719 THREADSTATE_CAPTUREWINDOW
,
1720 THREADSTATE_PROGMANWINDOW
,
1721 THREADSTATE_TASKMANWINDOW
1726 NtUserGetThreadState(
1731 NtUserGetTitleBarInfo(
1736 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
1752 NtUserGetWindowPlacement(
1754 WINDOWPLACEMENT
*lpwndpl
);
1764 NtUserHardErrorControl(
1771 NtUserImpersonateDdeClientWindow(
1779 HANDLE hPowerRequestEvent
,
1780 HANDLE hMediaRequestEvent
);
1784 NtUserInitializeClientPfnArrays(
1785 PPFNCLIENT pfnClientA
,
1786 PPFNCLIENT pfnClientW
,
1787 PPFNCLIENTWORKER pfnClientWorker
,
1788 HINSTANCE hmodUser
);
1808 NtUserInternalGetWindowText(
1815 NtUserInvalidateRect(
1822 NtUserInvalidateRgn(
1829 NtUserIsClipboardFormatAvailable(
1842 NtUserLoadKeyboardLayoutEx(
1845 IN PUNICODE_STRING puszKeyboardName
,
1847 IN PUNICODE_STRING puszKLID
,
1853 NtUserLockWindowStation(
1854 HWINSTA hWindowStation
);
1858 NtUserLockWindowUpdate(
1863 NtUserLockWorkStation(VOID
);
1867 NtUserMapVirtualKeyEx( UINT keyCode
,
1878 ULONG_PTR ResultInfo
,
1879 DWORD dwType
, // FNID_XX types
1886 UINT cmd
, // Wine SW_ commands
1891 NtUserMNDragLeave(VOID
);
1901 NtUserModifyUserStartupInfoFlags(
1918 NtUserNotifyIMEStatus(
1925 NtUserNotifyProcessCreate(
1933 NtUserNotifyWinEvent(
1941 NtUserOpenClipboard(
1948 PUNICODE_STRING lpszDesktopName
,
1950 ACCESS_MASK dwDesiredAccess
);
1954 NtUserOpenInputDesktop(
1957 ACCESS_MASK dwDesiredAccess
);
1961 NtUserOpenWindowStation(
1962 PUNICODE_STRING lpszWindowStationName
,
1963 ACCESS_MASK dwDesiredAccess
);
1983 PNTUSERGETMESSAGEINFO MsgInfo
,
1999 NtUserPostThreadMessage(
2014 NtUserProcessConnect(
2016 OUT PUSERCONNECT pUserConnect
,
2017 IN DWORD dwSize
); // sizeof(USERCONNECT)
2021 NtUserQueryInformationThread(
2030 NtUserQueryInputContext(
2036 NtUserQuerySendMessage(
2041 NtUserQueryUserCounters(
2048 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2049 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2050 #define QUERY_WINDOW_ACTIVE 0x02
2051 #define QUERY_WINDOW_FOCUS 0x03
2052 #define QUERY_WINDOW_ISHUNG 0x04
2061 NtUserRealInternalGetMessage(
2071 NtUserRealChildWindowFromPoint(
2078 NtUserRealWaitMessageEx(
2087 CONST RECT
*lprcUpdate
,
2094 NtUserRegisterClassExWOW(
2096 PUNICODE_STRING pustrClassName
,
2097 PUNICODE_STRING pustrCNVersion
,
2098 PCLSMENUNAME pClassMenuName
,
2105 NtUserRegisterRawInputDevices(
2106 IN PCRAWINPUTDEVICE pRawInputDevices
,
2107 IN UINT uiNumDevices
,
2112 NtUserRegisterUserApiHook(
2118 NtUserRegisterHotKey(HWND hWnd
,
2125 NtUserRegisterTasklist(
2129 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2133 NtUserRemoteConnect(
2140 NtUserRemoteRedrawRectangle(
2148 NtUserRemoteRedrawScreen(VOID
);
2152 NtUserRemoteStopScreenUpdates(VOID
);
2155 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2159 NtUserResolveDesktop(
2167 NtUserResolveDesktopForWOW(
2184 CONST RECT
*lprcScroll
,
2185 CONST RECT
*lprcClip
,
2190 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2191 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2201 NtUserSetActiveWindow(HWND Wnd
);
2205 NtUserSetAppImeLevel(
2210 NtUserSetCapture(HWND Wnd
);
2216 ULONG_PTR dwNewLong
,
2228 NtUserSetClipboardData(
2235 NtUserSetClipboardViewer(
2236 HWND hWndNewViewer
);
2240 NtUserSelectPalette(
2243 BOOL ForceBackground
2248 NtUserSetConsoleReserveKeys(
2259 NtUserSetCursorContents(
2261 PICONINFO IconInfo
);
2265 NtUserSetCursorIconData(
2300 NtUserSetImeOwnerWindow(
2306 NtUserSetInformationProcess(
2314 NtUserSetInformationThread(
2322 NtUserSetInternalWindowPos(
2330 NtUserSetKeyboardState(
2335 NtUserSetLayeredWindowAttributes(
2343 NtUserSetLogonNotifyWindow(
2348 NtUserSetObjectInformation(
2351 PVOID pvInformation
,
2358 HWND hWndNewParent
);
2362 NtUserSetProcessWindowStation(
2363 HWINSTA hWindowStation
);
2366 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2376 NtUserSetScrollInfo(
2384 NtUserSetShellWindowEx(
2386 HWND hwndShellListView
);
2392 IN CONST INT
*lpaElements
,
2393 IN CONST COLORREF
*lpaRgbValues
,
2398 NtUserSetSystemCursor(
2404 NtUserSetThreadDesktop(
2409 NtUserSetThreadState(
2415 NtUserSetSystemTimer
2420 TIMERPROC lpTimerFunc
2425 NtUserSetThreadLayoutHandles(
2436 TIMERPROC lpTimerFunc
2441 NtUserSetWindowFNID(
2447 NtUserSetWindowLong(
2455 NtUserSetWindowPlacement(
2457 WINDOWPLACEMENT
*lpwndpl
);
2460 NTAPI
NtUserSetWindowPos(
2462 HWND hWndInsertAfter
,
2479 NtUserSetWindowsHookAW(
2486 NtUserSetWindowsHookEx(
2488 PUNICODE_STRING ModuleName
,
2496 NtUserSetWindowStationUser(
2503 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2507 NtUserSetWinEventHook(
2510 HMODULE hmodWinEventProc
,
2511 PUNICODE_STRING puString
,
2512 WINEVENTPROC lpfnWinEventProc
,
2529 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2539 NtUserShowWindowAsync(
2545 NtUserSoundSentry(VOID
);
2549 NtUserSwitchDesktop(
2554 NtUserSystemParametersInfo(
2562 NtUserTestForInteractiveUser(
2578 NtUserTrackMouseEvent(
2579 LPTRACKMOUSEEVENT lpEventTrack
);
2583 NtUserTranslateAccelerator(
2590 NtUserTranslateMessage(
2596 NtUserUnhookWindowsHookEx(
2601 NtUserUnhookWinEvent(
2602 HWINEVENTHOOK hWinEventHook
);
2606 NtUserUnloadKeyboardLayout(
2611 NtUserUnlockWindowStation(
2612 HWINSTA hWindowStation
);
2616 NtUserUnregisterClass(
2617 PUNICODE_STRING ClassNameOrAtom
,
2618 HINSTANCE hInstance
,
2619 PCLSMENUNAME pClassMenuName
);
2623 NtUserUnregisterHotKey(HWND hWnd
,
2628 NtUserUnregisterUserApiHook(VOID
);
2632 NtUserUpdateInputContext(
2639 NtUserUpdateInstance(
2646 NtUserUpdateLayeredWindow(
2654 BLENDFUNCTION
*pblend
,
2659 NtUserUpdatePerUserSystemParameters(
2665 NtUserUserHandleGrantAccess(
2666 IN HANDLE hUserHandle
,
2672 NtUserValidateHandleSecure(
2680 CONST RECT
*lpRect
);
2684 NtUserValidateTimerCallback(
2698 NtUserWaitForInputIdle(
2700 IN DWORD dwMilliseconds
,
2701 IN BOOL Unknown2
); // Always FALSE
2705 NtUserWaitForMsgAndEvent(
2710 NtUserWaitMessage(VOID
);
2714 NtUserWin32PoolAllocationStats(
2724 NtUserWindowFromPoint(
2730 NtUserYieldTask(VOID
);
2732 /* lParam of DDE messages */
2733 typedef struct tagKMDDEEXECUTEDATA
2737 /* BYTE Data[DataSize] */
2738 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
2740 typedef struct tagKMDDELPARAM
2752 } KMDDELPARAM
, *PKMDDELPARAM
;
2759 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
2762 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
2763 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
2764 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
2765 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
2766 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
2767 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
2768 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
2769 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
2770 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
2771 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
2772 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
2773 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
2774 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
2775 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
2776 #define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031
2777 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0xfffe0047 // use HWND_ROUTINE_GETWNDCONTEXTHLPID
2778 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
2779 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
2780 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
2781 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
2782 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
2783 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
2784 #define MSQ_STATE_CAPTURE 0x1
2785 #define MSQ_STATE_ACTIVE 0x2
2786 #define MSQ_STATE_FOCUS 0x3
2787 #define MSQ_STATE_MENUOWNER 0x4
2788 #define MSQ_STATE_MOVESIZE 0x5
2789 #define MSQ_STATE_CARET 0x6
2790 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
2791 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
2792 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
2793 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
2794 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0xfffd0063
2795 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0xfffd0064
2796 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0xfffd0065
2797 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
2798 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
2799 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
2800 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
2804 NtUserBuildMenuItemList(
2810 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
2813 NtUserCreateCursorIconHandle(
2818 /* Should be done in usermode */
2821 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
2825 NtUserGetMenuDefaultItem(
2832 NtUserGetLastInputInfo(
2833 PLASTINPUTINFO plii
);
2837 NtUserGetMinMaxInfo(
2839 MINMAXINFO
*MinMaxInfo
,
2844 NtUserGetMonitorInfo(
2845 IN HMONITOR hMonitor
,
2846 OUT LPMONITORINFO pMonitorInfo
);
2848 /* Should be done in usermode */
2851 NtUserGetScrollInfo(
2858 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
2860 /* Should be done in usermode */
2863 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
2866 /* (other FocusedItem values give the position of the focused item) */
2867 #define NO_SELECTED_ITEM 0xffff
2869 typedef struct tagROSMENUINFO
2871 /* ----------- MENUINFO ----------- */
2877 DWORD dwContextHelpID
;
2878 ULONG_PTR dwMenuData
;
2879 /* ----------- Extra ----------- */
2880 HMENU Self
; /* Handle of this menu */
2881 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
2882 UINT FocusedItem
; /* Currently focused item */
2883 UINT MenuItemCount
; /* Number of items in the menu */
2884 HWND Wnd
; /* Window containing the menu */
2885 WORD Width
; /* Width of the whole menu */
2886 WORD Height
; /* Height of the whole menu */
2887 HWND WndOwner
; /* window receiving the messages for ownerdraw */
2888 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
2889 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
2890 } ROSMENUINFO
, *PROSMENUINFO
;
2902 typedef struct tagROSMENUITEMINFO
2904 /* ----------- MENUITEMINFOW ----------- */
2911 HBITMAP hbmpChecked
;
2912 HBITMAP hbmpUnchecked
;
2917 /* ----------- Extra ----------- */
2918 RECT Rect
; /* Item area (relative to menu window) */
2919 UINT XTab
; /* X position of text after Tab */
2920 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
2921 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
2929 PROSMENUITEMINFO lpmii
,
2935 NtUserMonitorFromPoint(
2941 NtUserMonitorFromRect(
2947 NtUserMonitorFromWindow(
2952 /* FIXME: These flag constans aren't what Windows uses. */
2953 #define REGISTERCLASS_ANSI 2
2954 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI)
2958 NtUserRegisterClassEx( // Need to use NtUserRegisterClassExWOW.
2959 CONST WNDCLASSEXW
* lpwcx
,
2960 PUNICODE_STRING ClassName
,
2961 PUNICODE_STRING MenuName
,
2968 typedef struct tagNTUSERSENDMESSAGEINFO
2970 BOOL HandledByKernel
;
2973 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
2975 /* use NtUserMessageCall */
2977 NtUserSendMessage(HWND hWnd
,
2981 PNTUSERSENDMESSAGEINFO Info
);
2983 /* use NtUserMessageCall */
2985 NtUserSendMessageTimeout(HWND hWnd
,
2992 PNTUSERSENDMESSAGEINFO Info
);
2994 /* use NtUserMessageCall */
2997 NtUserSendNotifyMessage(
3004 typedef struct _SETSCROLLBARINFO
3008 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3009 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3013 NtUserSetScrollBarInfo(
3016 SETSCROLLBARINFO
*info
);
3020 #endif /* __WIN32K_NTUSER_H */