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
);
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
502 NtUserAssociateInputContext(
533 NtUserCtxDisplayIOCtl(
552 NtUserDrawMenuBarTemp(
561 NtUserEnableMenuItem(
572 NtUserGetMenuBarInfo(
586 NtUserGetMenuItemRect(
600 NtUserHiliteMenuItem(
608 NtUserMenuItemFromPoint(
630 NtUserSetMenuContextHelpId(
632 DWORD dwContextHelpId
);
636 NtUserSetMenuDefaultItem(
643 NtUserSetMenuFlagRtoL(
654 NtUserThunkedMenuInfo(
660 NtUserThunkedMenuItemInfo(
665 LPMENUITEMINFOW lpmii
,
666 PUNICODE_STRING lpszCaption
);
670 NtUserTrackPopupMenuEx(
680 NtUserActivateKeyboardLayout(
686 NtUserAlterWindowStyle(
693 NtUserAttachThreadInput(
699 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
734 PULONG pRequiredSize
);
744 /* apfnSimpleCall indices from Windows XP SP 2 */
745 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
746 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
748 enum SimpleCallRoutines
750 NOPARAM_ROUTINE_CREATEMENU
,
751 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
752 #if (WIN32K_VERSION >= NTDDI_VISTA)
753 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
754 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
755 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
756 NOPARAM_ROUTINE_DESTROY_CARET
,
758 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
759 #if (WIN32K_VERSION < NTDDI_VISTA)
760 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
761 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
762 NOPARAM_ROUTINE_DESTROY_CARET
,
764 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
765 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
766 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
767 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
768 #if (WIN32K_VERSION >= NTDDI_VISTA)
769 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
771 NOPARAM_ROUTINE_GETREMOTEPROCID
,
773 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
774 NOPARAM_ROUTINE_LOADCURSANDICOS
,
775 #if (WIN32K_VERSION >= NTDDI_VISTA)
776 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
777 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
779 NOPARAM_ROUTINE_RELEASECAPTURE
,
780 NOPARAM_ROUTINE_RESETDBLCLICK
,
781 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
782 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
783 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
784 NOPARAM_ROUTINE_REMOTELOGOFF
,
785 NOPARAM_ROUTINE_REMOTENTSECURITY
,
786 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
787 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
788 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
789 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
790 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
791 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
792 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
793 #if (WIN32K_VERSION >= NTDDI_VISTA)
794 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
796 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
797 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
798 #if (WIN32K_VERSION < NTDDI_VISTA)
799 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
801 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
802 #if (WIN32K_VERSION >= NTDDI_VISTA)
803 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
805 ONEPARAM_ROUTINE_WINDOWFROMDC
,
806 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
807 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
808 #if (WIN32K_VERSION < NTDDI_VISTA)
809 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
811 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
812 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
813 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
814 #if (WIN32K_VERSION < NTDDI_VISTA)
815 ONEPARAM_ROUTINE_GETCURSORPOS
,
817 ONEPARAM_ROUTINE_GETINPUTEVENT
,
818 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
819 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
820 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
821 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
822 ONEPARAM_ROUTINE_GETWINSTAINFO
,
823 #if (WIN32K_VERSION < NTDDI_VISTA)
824 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
826 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
827 ONEPARAM_ROUTINE_LOADFONTS
,
828 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
829 ONEPARAM_ROUTINE_MESSAGEBEEP
,
830 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
831 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
832 #if (WIN32K_VERSION < NTDDI_VISTA)
833 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
835 ONEPARAM_ROUTINE_REALIZEPALETTE
,
836 ONEPARAM_ROUTINE_REGISTERLPK
,
837 #if (WIN32K_VERSION >= NTDDI_VISTA)
838 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
840 ONEPARAM_ROUTINE_REMOTERECONNECT
,
841 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
842 ONEPARAM_ROUTINE_RELEASEDC
,
843 #if (WIN32K_VERSION >= NTDDI_VISTA)
844 ONEPARAM_ROUTINE_REMOTENOTIFY
,
846 ONEPARAM_ROUTINE_REPLYMESSAGE
,
847 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
848 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
849 #if (WIN32K_VERSION < NTDDI_VISTA)
850 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
852 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
853 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
854 #if (WIN32K_VERSION >= NTDDI_VISTA)
855 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
857 ONEPARAM_ROUTINE_SHOWCURSOR
,
858 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
859 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
860 X_ROUTINE_WOWMODULEUNLOAD
,
861 #if (WIN32K_VERSION < NTDDI_VISTA)
862 X_ROUTINE_REMOTENOTIFY
,
864 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
865 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
866 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
867 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
868 HWND_ROUTINE_SETMSGBOX
,
869 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
870 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
871 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
872 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
873 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
874 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
875 HWNDPARAM_ROUTINE_SETVISIBLE
,
876 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
877 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
878 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
879 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
880 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
881 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
882 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
883 HWNDLOCK_ROUTINE_REDRAWFRAME
,
884 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
885 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
886 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
887 HWNDLOCK_ROUTINE_SETSYSMENU
,
888 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
889 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
890 X_ROUTINE_IMESHOWSTATUSCHANGE
,
891 TWOPARAM_ROUTINE_ENABLEWINDOW
,
892 TWOPARAM_ROUTINE_REDRAWTITLE
,
893 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
894 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
895 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
896 TWOPARAM_ROUTINE_VALIDATERGN
,
897 #if (WIN32K_VERSION >= NTDDI_VISTA)
898 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
899 TWOPARAM_ROUTINE_GETCURSORPOS
,
901 TWOPARAM_ROUTINE_GETHDEVNAME
,
902 TWOPARAM_ROUTINE_INITANSIOEM
,
903 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
904 #if (WIN32K_VERSION >= NTDDI_VISTA)
905 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
907 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
908 #if (WIN32K_VERSION >= NTDDI_VISTA)
909 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
911 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
913 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
914 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
915 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
916 TWOPARAM_ROUTINE_SETCARETPOS
,
917 TWOPARAM_ROUTINE_SETCURSORPOS
,
918 #if (WIN32K_VERSION >= NTDDI_VISTA)
919 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
921 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
922 TWOPARAM_ROUTINE_WOWCLEANUP
952 NtUserCallHwndParamLock(
965 NtUserCallNextHookEx(
991 NtUserChangeClipboardChain(
997 NtUserChangeDisplaySettings(
998 PUNICODE_STRING lpszDeviceName
,
999 LPDEVMODEW lpDevMode
,
1006 NtUserCheckImeHotKey(
1011 NtUserChildWindowFromPointEx(
1024 NtUserCloseClipboard(VOID
);
1033 NtUserCloseWindowStation(
1038 NtUserConsoleControl(
1045 NtUserConvertMemHandle(
1051 NtUserCopyAcceleratorTable(
1058 NtUserCountClipboardFormats(VOID
);
1062 NtUserCreateAcceleratorTable(
1064 SIZE_T EntriesCount
);
1076 NtUserCreateDesktop(
1077 PUNICODE_STRING lpszDesktopName
,
1079 ACCESS_MASK dwDesiredAccess
,
1080 LPSECURITY_ATTRIBUTES lpSecurity
,
1081 HWINSTA hWindowStation
);
1085 NtUserCreateInputContext(
1090 NtUserCreateLocalMemHandle(
1098 NtUserCreateWindowEx(
1100 PUNICODE_STRING lpClassName
,
1101 PUNICODE_STRING lpWindowName
,
1109 HINSTANCE hInstance
,
1112 BOOL bUnicodeWindow
,
1117 NtUserCreateWindowEx(
1119 PLARGE_STRING plstrClassName
,
1120 PLARGE_STRING plstrClsVesrion
,
1121 PLARGE_STRING plstrWindowName
,
1129 HINSTANCE hInstance
,
1137 NtUserCreateWindowStation(
1138 PUNICODE_STRING lpszWindowStationName
,
1139 ACCESS_MASK dwDesiredAccess
,
1140 LPSECURITY_ATTRIBUTES lpSecurity
,
1148 NtUserDdeGetQualityOfService(
1151 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1155 NtUserDdeInitialize(
1164 NtUserDdeSetQualityOfService(
1166 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1167 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1170 NtUserDeferWindowPos(HDWP WinPosInfo
,
1172 HWND WndInsertAfter
,
1179 NtUserDefSetText(HWND WindowHandle
, PUNICODE_STRING WindowText
);
1183 NtUserDestroyAcceleratorTable(
1188 NtUserDestroyCursor(
1194 NtUserDestroyInputContext(
1198 NtUserDestroyWindow(HWND Wnd
);
1202 NtUserDisableThreadIme(
1205 typedef struct tagNTUSERDISPATCHMESSAGEINFO
1207 BOOL HandledByKernel
;
1211 } NTUSERDISPATCHMESSAGEINFO
, *PNTUSERDISPATCHMESSAGEINFO
;
1215 NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo
);
1234 NtUserDrawAnimatedRects(
1250 NtUserDrawCaptionTemp(
1256 const PUNICODE_STRING str
,
1269 HBRUSH hbrFlickerFreeDraw
,
1276 NtUserEmptyClipboard(VOID
);
1280 NtUserEnableScrollBar(
1287 NtUserEndDeferWindowPosEx(
1292 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1296 NtUserEnumDisplayDevices (
1297 PUNICODE_STRING lpDevice
, /* device name */
1298 DWORD iDevNum
, /* display device */
1299 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1300 DWORD dwFlags
); /* reserved */
1304 NtUserEnumDisplayMonitors (
1307 MONITORENUMPROC lpfnEnum,
1309 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1312 NtUserEnumDisplayMonitors(
1313 OPTIONAL IN HDC hDC
,
1314 OPTIONAL IN LPCRECT pRect
,
1315 OPTIONAL OUT HMONITOR
*hMonitorList
,
1316 OPTIONAL OUT LPRECT monitorRectList
,
1317 OPTIONAL IN DWORD listSize
);
1322 NtUserEnumDisplaySettings(
1323 PUNICODE_STRING lpszDeviceName
,
1325 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1335 NtUserExcludeUpdateRgn(
1349 NtUserFindExistingCursorIcon(
1359 HWND hwndChildAfter
,
1360 PUNICODE_STRING ucClassName
,
1361 PUNICODE_STRING ucWindowName
,
1367 NtUserFlashWindowEx(
1368 IN PFLASHWINFO pfwi
);
1372 NtUserGetAltTabInfo(
1381 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1385 NtUserGetAppImeLevel(
1390 NtUserGetAsyncKeyState(
1401 NtUserGetCaretBlinkTime(VOID
);
1409 NtUserGetClassInfo(HINSTANCE hInstance
,
1410 PUNICODE_STRING ClassName
,
1412 LPWSTR
*ppszMenuName
,
1417 NtUserGetClassName(HWND hWnd
,
1418 PUNICODE_STRING ClassName
,
1420 #if 0 // Real NtUserGetClassName
1423 NtUserGetClassName(HWND hWnd
,
1424 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1425 PUNICODE_STRING ClassName
);
1430 NtUserGetClipboardData(
1436 NtUserGetClipboardFormatName(
1438 PUNICODE_STRING FormatName
,
1443 NtUserGetClipboardOwner(VOID
);
1447 NtUserGetClipboardSequenceNumber(VOID
);
1451 NtUserGetClipboardViewer(VOID
);
1455 NtUserGetClipCursor(
1460 NtUserGetComboBoxInfo(
1462 PCOMBOBOXINFO pcbi
);
1466 NtUserGetControlBrush(
1473 NtUserGetControlColor(
1488 NtUserGetCursorFrameInfo(
1496 NtUserGetCursorInfo(
1513 NtUserGetDoubleClickTime(VOID
);
1517 NtUserGetForegroundWindow(VOID
);
1521 NtUserGetGuiResources(
1527 NtUserGetGUIThreadInfo(
1529 LPGUITHREADINFO lpgui
);
1536 PUNICODE_STRING lpInstName
,
1537 PUNICODE_STRING lpResName
,
1565 NtUserGetInternalWindowPos(
1572 NtUserGetKeyboardLayout(
1577 NtUserGetKeyboardLayoutList(
1583 NtUserGetKeyboardLayoutName(
1588 NtUserGetKeyboardState(
1593 NtUserGetKeyboardType(
1598 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1607 NtUserGetLayeredWindowAttributes(
1615 NtUserGetListBoxInfo(
1618 typedef struct tagNTUSERGETMESSAGEINFO
1622 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1627 PNTUSERGETMESSAGEINFO MsgInfo
,
1630 UINT wMsgFilterMax
);
1634 NtUserGetMouseMovePointsEx(
1636 LPMOUSEMOVEPOINT lppt
,
1637 LPMOUSEMOVEPOINT lpptBuf
,
1643 NtUserGetObjectInformation(
1646 PVOID pvInformation
,
1648 PDWORD nLengthNeeded
);
1652 NtUserGetOpenClipboardWindow(VOID
);
1656 NtUserGetPriorityClipboardFormat(
1657 UINT
*paFormatPriorityList
,
1662 NtUserGetProcessWindowStation(VOID
);
1666 NtUserGetRawInputBuffer(
1673 NtUserGetRawInputData(
1674 HRAWINPUT hRawInput
,
1682 NtUserGetRawInputDeviceInfo(
1690 NtUserGetRawInputDeviceList(
1691 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1692 PUINT puiNumDevices
,
1697 NtUserGetRegisteredRawInputDevices(
1698 PRAWINPUTDEVICE pRawInputDevices
,
1699 PUINT puiNumDevices
,
1704 NtUserGetScrollBarInfo(
1707 PSCROLLBARINFO psbi
);
1711 NtUserGetThreadDesktop(
1716 enum ThreadStateRoutines
1718 THREADSTATE_GETTHREADINFO
,
1719 THREADSTATE_INSENDMESSAGE
,
1720 THREADSTATE_FOCUSWINDOW
,
1721 THREADSTATE_ACTIVEWINDOW
,
1722 THREADSTATE_CAPTUREWINDOW
,
1723 THREADSTATE_PROGMANWINDOW
,
1724 THREADSTATE_TASKMANWINDOW
1729 NtUserGetThreadState(
1734 NtUserGetTitleBarInfo(
1739 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
1755 NtUserGetWindowPlacement(
1757 WINDOWPLACEMENT
*lpwndpl
);
1767 NtUserHardErrorControl(
1774 NtUserImpersonateDdeClientWindow(
1782 HANDLE hPowerRequestEvent
,
1783 HANDLE hMediaRequestEvent
);
1787 NtUserInitializeClientPfnArrays(
1788 PPFNCLIENT pfnClientA
,
1789 PPFNCLIENT pfnClientW
,
1790 PPFNCLIENTWORKER pfnClientWorker
,
1791 HINSTANCE hmodUser
);
1811 NtUserInternalGetWindowText(
1818 NtUserInvalidateRect(
1825 NtUserInvalidateRgn(
1832 NtUserIsClipboardFormatAvailable(
1845 NtUserLoadKeyboardLayoutEx(
1848 IN PUNICODE_STRING puszKeyboardName
,
1850 IN PUNICODE_STRING puszKLID
,
1856 NtUserLockWindowStation(
1857 HWINSTA hWindowStation
);
1861 NtUserLockWindowUpdate(
1866 NtUserLockWorkStation(VOID
);
1870 NtUserMapVirtualKeyEx( UINT keyCode
,
1881 ULONG_PTR ResultInfo
,
1882 DWORD dwType
, // FNID_XX types
1889 UINT cmd
, // Wine SW_ commands
1894 NtUserMNDragLeave(VOID
);
1904 NtUserModifyUserStartupInfoFlags(
1921 NtUserNotifyIMEStatus(
1928 NtUserNotifyProcessCreate(
1936 NtUserNotifyWinEvent(
1944 NtUserOpenClipboard(
1951 PUNICODE_STRING lpszDesktopName
,
1953 ACCESS_MASK dwDesiredAccess
);
1957 NtUserOpenInputDesktop(
1960 ACCESS_MASK dwDesiredAccess
);
1964 NtUserOpenWindowStation(
1965 PUNICODE_STRING lpszWindowStationName
,
1966 ACCESS_MASK dwDesiredAccess
);
1986 PNTUSERGETMESSAGEINFO MsgInfo
,
2002 NtUserPostThreadMessage(
2017 NtUserProcessConnect(
2019 OUT PUSERCONNECT pUserConnect
,
2020 IN DWORD dwSize
); // sizeof(USERCONNECT)
2024 NtUserQueryInformationThread(
2033 NtUserQueryInputContext(
2039 NtUserQuerySendMessage(
2044 NtUserQueryUserCounters(
2051 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2052 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2053 #define QUERY_WINDOW_ACTIVE 0x02
2054 #define QUERY_WINDOW_FOCUS 0x03
2055 #define QUERY_WINDOW_ISHUNG 0x04
2064 NtUserRealInternalGetMessage(
2074 NtUserRealChildWindowFromPoint(
2081 NtUserRealWaitMessageEx(
2090 CONST RECT
*lprcUpdate
,
2097 NtUserRegisterClassExWOW(
2099 PUNICODE_STRING pustrClassName
,
2100 PUNICODE_STRING pustrCNVersion
,
2101 PCLSMENUNAME pClassMenuName
,
2108 NtUserRegisterRawInputDevices(
2109 IN PCRAWINPUTDEVICE pRawInputDevices
,
2110 IN UINT uiNumDevices
,
2115 NtUserRegisterUserApiHook(
2121 NtUserRegisterHotKey(HWND hWnd
,
2128 NtUserRegisterTasklist(
2132 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2136 NtUserRemoteConnect(
2143 NtUserRemoteRedrawRectangle(
2151 NtUserRemoteRedrawScreen(VOID
);
2155 NtUserRemoteStopScreenUpdates(VOID
);
2158 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2162 NtUserResolveDesktop(
2170 NtUserResolveDesktopForWOW(
2187 CONST RECT
*lprcScroll
,
2188 CONST RECT
*lprcClip
,
2193 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2194 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2204 NtUserSetActiveWindow(HWND Wnd
);
2208 NtUserSetAppImeLevel(
2213 NtUserSetCapture(HWND Wnd
);
2219 ULONG_PTR dwNewLong
,
2231 NtUserSetClipboardData(
2238 NtUserSetClipboardViewer(
2239 HWND hWndNewViewer
);
2243 NtUserSelectPalette(
2246 BOOL ForceBackground
2251 NtUserSetConsoleReserveKeys(
2262 NtUserSetCursorContents(
2264 PICONINFO IconInfo
);
2268 NtUserSetCursorIconData(
2303 NtUserSetImeOwnerWindow(
2309 NtUserSetInformationProcess(
2317 NtUserSetInformationThread(
2325 NtUserSetInternalWindowPos(
2333 NtUserSetKeyboardState(
2338 NtUserSetLayeredWindowAttributes(
2346 NtUserSetLogonNotifyWindow(
2351 NtUserSetObjectInformation(
2354 PVOID pvInformation
,
2361 HWND hWndNewParent
);
2365 NtUserSetProcessWindowStation(
2366 HWINSTA hWindowStation
);
2369 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2379 NtUserSetScrollInfo(
2387 NtUserSetShellWindowEx(
2389 HWND hwndShellListView
);
2395 IN CONST INT
*lpaElements
,
2396 IN CONST COLORREF
*lpaRgbValues
,
2401 NtUserSetSystemCursor(
2407 NtUserSetThreadDesktop(
2412 NtUserSetThreadState(
2418 NtUserSetSystemTimer
2423 TIMERPROC lpTimerFunc
2428 NtUserSetThreadLayoutHandles(
2439 TIMERPROC lpTimerFunc
2444 NtUserSetWindowFNID(
2450 NtUserSetWindowLong(
2458 NtUserSetWindowPlacement(
2460 WINDOWPLACEMENT
*lpwndpl
);
2463 NTAPI
NtUserSetWindowPos(
2465 HWND hWndInsertAfter
,
2482 NtUserSetWindowsHookAW(
2489 NtUserSetWindowsHookEx(
2491 PUNICODE_STRING ModuleName
,
2499 NtUserSetWindowStationUser(
2506 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2510 NtUserSetWinEventHook(
2513 HMODULE hmodWinEventProc
,
2514 PUNICODE_STRING puString
,
2515 WINEVENTPROC lpfnWinEventProc
,
2532 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2542 NtUserShowWindowAsync(
2548 NtUserSoundSentry(VOID
);
2552 NtUserSwitchDesktop(
2557 NtUserSystemParametersInfo(
2565 NtUserTestForInteractiveUser(
2581 NtUserTrackMouseEvent(
2582 LPTRACKMOUSEEVENT lpEventTrack
);
2586 NtUserTranslateAccelerator(
2593 NtUserTranslateMessage(
2599 NtUserUnhookWindowsHookEx(
2604 NtUserUnhookWinEvent(
2605 HWINEVENTHOOK hWinEventHook
);
2609 NtUserUnloadKeyboardLayout(
2614 NtUserUnlockWindowStation(
2615 HWINSTA hWindowStation
);
2619 NtUserUnregisterClass(
2620 PUNICODE_STRING ClassNameOrAtom
,
2621 HINSTANCE hInstance
,
2622 PCLSMENUNAME pClassMenuName
);
2626 NtUserUnregisterHotKey(HWND hWnd
,
2631 NtUserUnregisterUserApiHook(VOID
);
2635 NtUserUpdateInputContext(
2642 NtUserUpdateInstance(
2649 NtUserUpdateLayeredWindow(
2657 BLENDFUNCTION
*pblend
,
2662 NtUserUpdatePerUserSystemParameters(
2668 NtUserUserHandleGrantAccess(
2669 IN HANDLE hUserHandle
,
2675 NtUserValidateHandleSecure(
2683 CONST RECT
*lpRect
);
2687 NtUserValidateTimerCallback(
2701 NtUserWaitForInputIdle(
2703 IN DWORD dwMilliseconds
,
2704 IN BOOL Unknown2
); // Always FALSE
2708 NtUserWaitForMsgAndEvent(
2713 NtUserWaitMessage(VOID
);
2717 NtUserWin32PoolAllocationStats(
2727 NtUserWindowFromPoint(
2733 NtUserYieldTask(VOID
);
2735 /* lParam of DDE messages */
2736 typedef struct tagKMDDEEXECUTEDATA
2740 /* BYTE Data[DataSize] */
2741 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
2743 typedef struct tagKMDDELPARAM
2755 } KMDDELPARAM
, *PKMDDELPARAM
;
2762 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
2765 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
2766 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
2767 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
2768 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
2769 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
2770 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
2771 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
2772 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
2773 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
2774 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
2775 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
2776 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
2777 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
2778 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
2779 #define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031
2780 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0xfffe0047 // use HWND_ROUTINE_GETWNDCONTEXTHLPID
2781 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
2782 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
2783 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
2784 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
2785 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
2786 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
2787 #define MSQ_STATE_CAPTURE 0x1
2788 #define MSQ_STATE_ACTIVE 0x2
2789 #define MSQ_STATE_FOCUS 0x3
2790 #define MSQ_STATE_MENUOWNER 0x4
2791 #define MSQ_STATE_MOVESIZE 0x5
2792 #define MSQ_STATE_CARET 0x6
2793 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
2794 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
2795 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
2796 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
2797 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0xfffd0063
2798 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0xfffd0064
2799 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0xfffd0065
2800 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
2801 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
2802 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
2803 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
2807 NtUserBuildMenuItemList(
2813 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
2816 NtUserCreateCursorIconHandle(
2821 /* Should be done in usermode */
2824 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
2828 NtUserGetMenuDefaultItem(
2835 NtUserGetLastInputInfo(
2836 PLASTINPUTINFO plii
);
2840 NtUserGetMinMaxInfo(
2842 MINMAXINFO
*MinMaxInfo
,
2847 NtUserGetMonitorInfo(
2848 IN HMONITOR hMonitor
,
2849 OUT LPMONITORINFO pMonitorInfo
);
2851 /* Should be done in usermode */
2854 NtUserGetScrollInfo(
2861 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
2863 /* Should be done in usermode */
2866 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
2869 /* (other FocusedItem values give the position of the focused item) */
2870 #define NO_SELECTED_ITEM 0xffff
2872 typedef struct tagROSMENUINFO
2874 /* ----------- MENUINFO ----------- */
2880 DWORD dwContextHelpID
;
2881 ULONG_PTR dwMenuData
;
2882 /* ----------- Extra ----------- */
2883 HMENU Self
; /* Handle of this menu */
2884 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
2885 UINT FocusedItem
; /* Currently focused item */
2886 UINT MenuItemCount
; /* Number of items in the menu */
2887 HWND Wnd
; /* Window containing the menu */
2888 WORD Width
; /* Width of the whole menu */
2889 WORD Height
; /* Height of the whole menu */
2890 HWND WndOwner
; /* window receiving the messages for ownerdraw */
2891 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
2892 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
2893 } ROSMENUINFO
, *PROSMENUINFO
;
2905 typedef struct tagROSMENUITEMINFO
2907 /* ----------- MENUITEMINFOW ----------- */
2914 HBITMAP hbmpChecked
;
2915 HBITMAP hbmpUnchecked
;
2920 /* ----------- Extra ----------- */
2921 RECT Rect
; /* Item area (relative to menu window) */
2922 UINT XTab
; /* X position of text after Tab */
2923 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
2924 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
2932 PROSMENUITEMINFO lpmii
,
2938 NtUserMonitorFromPoint(
2944 NtUserMonitorFromRect(
2950 NtUserMonitorFromWindow(
2955 /* FIXME: These flag constans aren't what Windows uses. */
2956 #define REGISTERCLASS_ANSI 2
2957 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI)
2961 NtUserRegisterClassEx( // Need to use NtUserRegisterClassExWOW.
2962 CONST WNDCLASSEXW
* lpwcx
,
2963 PUNICODE_STRING ClassName
,
2964 PUNICODE_STRING MenuName
,
2971 typedef struct tagNTUSERSENDMESSAGEINFO
2973 BOOL HandledByKernel
;
2976 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
2978 /* use NtUserMessageCall */
2980 NtUserSendMessage(HWND hWnd
,
2984 PNTUSERSENDMESSAGEINFO Info
);
2986 /* use NtUserMessageCall */
2988 NtUserSendMessageTimeout(HWND hWnd
,
2995 PNTUSERSENDMESSAGEINFO Info
);
2997 /* use NtUserMessageCall */
3000 NtUserSendNotifyMessage(
3007 typedef struct _SETSCROLLBARINFO
3011 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3012 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3016 NtUserSetScrollBarInfo(
3019 SETSCROLLBARINFO
*info
);
3023 #endif /* __WIN32K_NTUSER_H */