1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
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 _PROCESSINFO
*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
;
140 // Flags !Not Implemented!
141 #define WNDF_CALLPROC 0x0004 // Call proc inside win32k.
143 typedef struct _WINDOW
145 USER_OBJHDR hdr
; /* FIXME: Move out of the structure once new handle manager is implemented */
147 /* NOTE: This structure is located in the desktop heap and will
148 eventually replace WINDOW_OBJECT. Right now WINDOW_OBJECT
149 keeps a reference to this structure until all the information
150 is moved to this structure */
151 struct _PROCESSINFO
*pi
; /* FIXME: Move to object header some day */
152 struct _THREADINFO
*ti
;
153 struct _DESKTOP
*pdesktop
;
160 /* Pointer to a call procedure handle */
162 /* Extra Wnd proc (windows of system classes) */
163 WNDPROC WndProcExtra
;
166 struct _WINDOW
*Parent
;
167 struct _WINDOW
*Owner
;
169 /* Size of the extra data associated with the window. */
173 /* Extended style. */
175 /* Handle of the module that created the window. */
177 /* Window menu handle or window id */
180 /* Pointer to the window class. */
183 UNICODE_STRING WindowName
;
184 /* Context help id */
188 /* Property list head.*/
189 LIST_ENTRY PropListHead
;
200 /* Indicates whether the window is derived from a system class */
202 UINT InternalPosInitialized
: 1;
207 typedef struct _PFNCLIENT
218 PROC pfnComboListBoxC
;
225 PROC pfnHkINLPCWPSTRUCT
;
226 PROC pfnHkINLPCWPRETSTRUCT
;
227 PROC pfnDispatchHookC
;
228 PROC pfnDispatchDefC
;
229 } PFNCLIENT
, *PPFNCLIENT
;
231 typedef struct _PFNCLIENTWORKER
235 PROC pfnComboListBoxCW
;
242 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
245 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
246 #define FNID_SCROLLBAR 0x029A
247 #define FNID_ICONTITLE 0x029B
248 #define FNID_MENU 0x029C
249 #define FNID_DESKTOP 0x029D
250 #define FNID_DEFWINDOWPROC 0x029E
251 #define FNID_SWITCH 0x02A0
252 #define FNID_BUTTON 0x02A1
253 #define FNID_COMBOBOX 0x02A2
254 #define FNID_COMBOLBOX 0x02A3
255 #define FNID_DIALOG 0x02A4
256 #define FNID_EDIT 0x02A5
257 #define FNID_LISTBOX 0x02A6
258 #define FNID_MDICLIENT 0x02A7
259 #define FNID_STATIC 0x02A8
260 #define FNID_IME 0x02A9
261 #define FNID_CALLWNDPROC 0x02AA
262 #define FNID_CALLWNDPROCRET 0x02AB
263 #define FNID_SENDMESSAGE 0x02B0
264 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
265 #define FNID_SENDMESSAGEWTOOPTION 0x02B1
266 #define FNID_SENDMESSAGETIMEOUT 0x02B2
267 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B4
268 #define FNID_TOOLTIPS 0x02B5
269 #define FNID_UNKNOWN 0x02B6
270 #define FNID_SENDNOTIFYMESSAGE 0x02B7
271 #define FNID_SENDMESSAGECALLBACK 0x02B8
274 #define FNID_DDEML 0x2000 // Registers DDEML
275 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
276 // Seen during WM_CREATE on error exit too.
278 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
279 #define ICLS_BUTTON 0
281 #define ICLS_STATIC 2
282 #define ICLS_LISTBOX 3
283 #define ICLS_SCROLLBAR 4
284 #define ICLS_COMBOBOX 5
285 #define ICLS_MDICLIENT 6
286 #define ICLS_COMBOLBOX 7
287 #define ICLS_DDEMLEVENT 8
288 #define ICLS_DDEMLMOTHER 9
289 #define ICLS_DDEML16BIT 10
290 #define ICLS_DDEMLCLIENTA 11
291 #define ICLS_DDEMLCLIENTW 12
292 #define ICLS_DDEMLSERVERA 13
293 #define ICLS_DDEMLSERVERW 14
295 #define ICLS_DESKTOP 16
296 #define ICLS_DIALOG 17
298 #define ICLS_SWITCH 19
299 #define ICLS_ICONTITLE 20
300 #define ICLS_TOOLTIPS 21
301 #define ICLS_UNKNOWN 22
302 #define ICLS_NOTUSED 23
305 #define SRVINFO_METRICS 0x0020
307 typedef struct _SERVERINFO
310 DWORD SystemMetrics
[SM_CMETRICS
]; // System Metrics
311 COLORREF SysColors
[COLOR_MENUBAR
+1]; // GetSysColor
312 HBRUSH SysColorBrushes
[COLOR_MENUBAR
+1]; // GetSysColorBrush
313 HPEN SysColorPens
[COLOR_MENUBAR
+1]; // ReactOS exclusive
321 TEXTMETRICW tmSysFont
;
329 DWORD PUSIFlags
; // PERUSERSERVERINFO Flags.
332 UINT LastRITWasKeyboard
: 1;
333 UINT bKeyboardPref
: 1;
335 DWORD SrvEventActivity
;
336 } SERVERINFO
, *PSERVERINFO
;
338 typedef struct _PROCESSINFO
340 PVOID UserHandleTable
;
342 ULONG_PTR UserHeapDelta
;
344 PWINDOWCLASS LocalClassList
;
345 PWINDOWCLASS GlobalClassList
;
346 PWINDOWCLASS SystemClassList
;
348 UINT RegisteredSysClasses
: 1;
350 } PROCESSINFO
, *PPROCESSINFO
;
352 #define CTI_INSENDMESSAGE 0x0002
354 typedef struct _CLIENTTHREADINFO
359 WORD fsWakeBitsJournal
;
363 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
366 /* Window Client Information structure */
370 typedef struct tagHOOK
372 LIST_ENTRY Chain
; /* Hook chain entry */
373 HHOOK Self
; /* user handle for this hook */
374 struct _ETHREAD
* Thread
; /* Thread owning the hook */
375 int HookId
; /* Hook table index */
376 HOOKPROC Proc
; /* Hook function */
377 BOOLEAN Ansi
; /* Is it an Ansi hook? */
378 ULONG Flags
; /* Some internal flags */
379 UNICODE_STRING ModuleName
; /* Module name for global hooks */
382 typedef struct _CALLBACKWND
386 } CALLBACKWND
, *PCALLBACKWND
;
388 #define CI_CURTHPRHOOK 0x00000010
390 typedef struct _CLIENTINFO
396 DWORD dwCompatFlags2
;
398 PDESKTOPINFO pDeskInfo
;
399 ULONG_PTR ulClientDelta
;
402 CALLBACKWND CallbackWnd
;
404 INT cInDDEMLCallback
;
405 PCLIENTTHREADINFO pClientThreadInfo
;
406 ULONG_PTR dwHookData
;
409 DWORD dwAsyncKeyCache
;
410 DWORD afAsyncKeyState
[2];
411 DWORD afAsyncKeyStateRecentDow
[2];
416 ULONG Win32ClientInfo3
[28];
417 /* It's just a pointer reference not to be used w the structure in user space. */
419 } CLIENTINFO
, *PCLIENTINFO
;
421 /* Make sure it fits exactly into the TEB */
422 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
424 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
426 #include <pshpack1.h>
435 typedef struct _W32THREAD
437 struct _ETHREAD
* pEThread
;
444 DWORD dwEngAcquireCount
;
447 } W32THREAD
, *PW32THREAD
;
449 typedef struct _THREADINFO
451 W32THREAD XzyxW32Thread
; /* Do not use! */
454 struct _USER_MESSAGE_QUEUE
* MessageQueue
;
455 struct _KBL
* KeyboardLayout
;
456 PCLIENTTHREADINFO pcti
;
457 struct _DESKTOP
* Desktop
;
458 PDESKTOPINFO pDeskInfo
;
459 PCLIENTINFO pClientInfo
;
462 UINT cPaintsReady
; /* Count of paints pending. */
463 UINT cTimersReady
; /* Count of timers pending. */
467 CLIENTTHREADINFO cti
; /* Internal to win32k */
469 LIST_ENTRY WindowListHead
;
470 LIST_ENTRY W32CallbackListHead
;
472 SINGLE_LIST_ENTRY ReferencesList
;
474 } THREADINFO
, *PTHREADINFO
;
479 // Server event activity bits.
480 #define SRV_EVENT_MENU 0x0001
481 #define SRV_EVENT_END_APPLICATION 0x0002
482 #define SRV_EVENT_RUNNING 0x0004
483 #define SRV_EVENT_NAMECHANGE 0x0008
484 #define SRV_EVENT_VALUECHANGE 0x0010
485 #define SRV_EVENT_STATECHANGE 0x0020
486 #define SRV_EVENT_LOCATIONCHANGE 0x0040
487 #define SRV_EVENT_CREATE 0x8000
489 typedef struct _PROPLISTITEM
493 } PROPLISTITEM
, *PPROPLISTITEM
;
495 typedef struct _PROPERTY
497 LIST_ENTRY PropListEntry
;
500 } PROPERTY
, *PPROPERTY
;
502 typedef struct _BROADCASTPARM
509 } BROADCASTPARM
, *PBROADCASTPARM
;
511 PTHREADINFO
GetW32ThreadInfo(VOID
);
512 PPROCESSINFO
GetW32ProcessInfo(VOID
);
514 typedef struct _WNDMSG
520 typedef struct _SHAREDINFO
522 PSERVERINFO psi
; // global Server Info
523 PVOID aheList
; // Handle Entry List
524 PVOID pDispInfo
; // global PDISPLAYINFO pointer
525 ULONG_PTR ulSharedDelta
; // Heap delta
526 WNDMSG awmControl
[31];
527 WNDMSG DefWindowMsgs
;
528 WNDMSG DefWindowSpecMsgs
;
529 } SHAREDINFO
, *PSHAREDINFO
;
531 typedef struct _USERCONNECT
534 ULONG ulCurrentVersion
;
535 DWORD dwDispatchCount
;
537 } USERCONNECT
, *PUSERCONNECT
;
540 // Non SDK Window Message types.
542 #define WM_SYSTIMER 280
543 #define WM_POPUPSYSTEMMENU 787
546 // Non SDK DCE types.
548 #define DCX_USESTYLE 0x00010000
549 #define DCX_KEEPCLIPRGN 0x00040000
553 NtUserAssociateInputContext(
584 NtUserCtxDisplayIOCtl(
603 NtUserDrawMenuBarTemp(
612 NtUserEnableMenuItem(
623 NtUserGetMenuBarInfo(
637 NtUserGetMenuItemRect(
651 NtUserHiliteMenuItem(
659 NtUserMenuItemFromPoint(
681 NtUserSetMenuContextHelpId(
683 DWORD dwContextHelpId
);
687 NtUserSetMenuDefaultItem(
694 NtUserSetMenuFlagRtoL(
705 NtUserThunkedMenuInfo(
711 NtUserThunkedMenuItemInfo(
716 LPMENUITEMINFOW lpmii
,
717 PUNICODE_STRING lpszCaption
);
721 NtUserTrackPopupMenuEx(
731 NtUserActivateKeyboardLayout(
737 NtUserAlterWindowStyle(
744 NtUserAttachThreadInput(
750 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
785 PULONG pRequiredSize
);
795 /* apfnSimpleCall indices from Windows XP SP 2 */
796 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
797 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
799 enum SimpleCallRoutines
801 NOPARAM_ROUTINE_CREATEMENU
,
802 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
803 #if (WIN32K_VERSION >= NTDDI_VISTA)
804 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
805 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
806 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
807 NOPARAM_ROUTINE_DESTROY_CARET
,
809 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
810 #if (WIN32K_VERSION < NTDDI_VISTA)
811 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
812 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
813 NOPARAM_ROUTINE_DESTROY_CARET
,
815 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
816 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
817 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
818 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
819 #if (WIN32K_VERSION >= NTDDI_VISTA)
820 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
822 NOPARAM_ROUTINE_GETREMOTEPROCID
,
824 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
825 NOPARAM_ROUTINE_LOADCURSANDICOS
,
826 #if (WIN32K_VERSION >= NTDDI_VISTA)
827 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
828 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
830 NOPARAM_ROUTINE_RELEASECAPTURE
,
831 NOPARAM_ROUTINE_RESETDBLCLICK
,
832 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
833 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
834 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
835 NOPARAM_ROUTINE_REMOTELOGOFF
,
836 NOPARAM_ROUTINE_REMOTENTSECURITY
,
837 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
838 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
839 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
840 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
841 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
842 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
843 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
844 #if (WIN32K_VERSION >= NTDDI_VISTA)
845 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
847 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
848 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
849 #if (WIN32K_VERSION < NTDDI_VISTA)
850 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
852 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
853 #if (WIN32K_VERSION >= NTDDI_VISTA)
854 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
856 ONEPARAM_ROUTINE_WINDOWFROMDC
,
857 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
858 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
859 #if (WIN32K_VERSION < NTDDI_VISTA)
860 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
862 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
863 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
864 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
865 #if (WIN32K_VERSION < NTDDI_VISTA)
866 ONEPARAM_ROUTINE_GETCURSORPOS
,
868 ONEPARAM_ROUTINE_GETINPUTEVENT
,
869 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
870 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
871 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
872 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
873 ONEPARAM_ROUTINE_GETWINSTAINFO
,
874 #if (WIN32K_VERSION < NTDDI_VISTA)
875 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
877 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
878 ONEPARAM_ROUTINE_LOADFONTS
,
879 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
880 ONEPARAM_ROUTINE_MESSAGEBEEP
,
881 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
882 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
883 #if (WIN32K_VERSION < NTDDI_VISTA)
884 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
886 ONEPARAM_ROUTINE_REALIZEPALETTE
,
887 ONEPARAM_ROUTINE_REGISTERLPK
,
888 #if (WIN32K_VERSION >= NTDDI_VISTA)
889 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
891 ONEPARAM_ROUTINE_REMOTERECONNECT
,
892 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
893 ONEPARAM_ROUTINE_RELEASEDC
,
894 #if (WIN32K_VERSION >= NTDDI_VISTA)
895 ONEPARAM_ROUTINE_REMOTENOTIFY
,
897 ONEPARAM_ROUTINE_REPLYMESSAGE
,
898 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
899 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
900 #if (WIN32K_VERSION < NTDDI_VISTA)
901 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
903 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
904 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
905 #if (WIN32K_VERSION >= NTDDI_VISTA)
906 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
908 ONEPARAM_ROUTINE_SHOWCURSOR
,
909 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
910 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
911 X_ROUTINE_WOWMODULEUNLOAD
,
912 #if (WIN32K_VERSION < NTDDI_VISTA)
913 X_ROUTINE_REMOTENOTIFY
,
915 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
916 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
917 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
918 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
919 HWND_ROUTINE_SETMSGBOX
,
920 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
921 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
922 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
923 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
924 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
925 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
926 HWNDPARAM_ROUTINE_SETVISIBLE
,
927 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
928 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
929 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
930 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
931 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
932 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
933 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
934 HWNDLOCK_ROUTINE_REDRAWFRAME
,
935 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
936 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
937 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
938 HWNDLOCK_ROUTINE_SETSYSMENU
,
939 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
940 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
941 X_ROUTINE_IMESHOWSTATUSCHANGE
,
942 TWOPARAM_ROUTINE_ENABLEWINDOW
,
943 TWOPARAM_ROUTINE_REDRAWTITLE
,
944 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
945 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
946 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
947 TWOPARAM_ROUTINE_VALIDATERGN
,
948 #if (WIN32K_VERSION >= NTDDI_VISTA)
949 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
950 TWOPARAM_ROUTINE_GETCURSORPOS
,
952 TWOPARAM_ROUTINE_GETHDEVNAME
,
953 TWOPARAM_ROUTINE_INITANSIOEM
,
954 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
955 #if (WIN32K_VERSION >= NTDDI_VISTA)
956 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
958 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
959 #if (WIN32K_VERSION >= NTDDI_VISTA)
960 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
962 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
964 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
965 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
966 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
967 TWOPARAM_ROUTINE_SETCARETPOS
,
968 TWOPARAM_ROUTINE_SETCURSORPOS
,
969 #if (WIN32K_VERSION >= NTDDI_VISTA)
970 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
972 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
973 TWOPARAM_ROUTINE_WOWCLEANUP
1003 NtUserCallHwndParamLock(
1010 NtUserCallMsgFilter(
1016 NtUserCallNextHookEx(
1042 NtUserChangeClipboardChain(
1048 NtUserChangeDisplaySettings(
1049 PUNICODE_STRING lpszDeviceName
,
1050 LPDEVMODEW lpDevMode
,
1057 NtUserCheckImeHotKey(
1062 NtUserChildWindowFromPointEx(
1075 NtUserCloseClipboard(VOID
);
1084 NtUserCloseWindowStation(
1089 NtUserConsoleControl(
1096 NtUserConvertMemHandle(
1102 NtUserCopyAcceleratorTable(
1109 NtUserCountClipboardFormats(VOID
);
1113 NtUserCreateAcceleratorTable(
1115 SIZE_T EntriesCount
);
1127 NtUserCreateDesktop(
1128 PUNICODE_STRING lpszDesktopName
,
1130 ACCESS_MASK dwDesiredAccess
,
1131 LPSECURITY_ATTRIBUTES lpSecurity
,
1132 HWINSTA hWindowStation
);
1136 NtUserCreateInputContext(
1141 NtUserCreateLocalMemHandle(
1149 NtUserCreateWindowEx(
1151 PUNICODE_STRING lpClassName
,
1152 PUNICODE_STRING lpWindowName
,
1160 HINSTANCE hInstance
,
1163 BOOL bUnicodeWindow
,
1168 NtUserCreateWindowEx(
1170 PLARGE_STRING plstrClassName
,
1171 PLARGE_STRING plstrClsVesrion
,
1172 PLARGE_STRING plstrWindowName
,
1180 HINSTANCE hInstance
,
1188 NtUserCreateWindowStation(
1189 PUNICODE_STRING lpszWindowStationName
,
1190 ACCESS_MASK dwDesiredAccess
,
1191 LPSECURITY_ATTRIBUTES lpSecurity
,
1199 NtUserDdeGetQualityOfService(
1202 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1206 NtUserDdeInitialize(
1215 NtUserDdeSetQualityOfService(
1217 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1218 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1221 NtUserDeferWindowPos(HDWP WinPosInfo
,
1223 HWND WndInsertAfter
,
1230 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1234 NtUserDestroyAcceleratorTable(
1239 NtUserDestroyCursor(
1245 NtUserDestroyInputContext(
1249 NtUserDestroyWindow(HWND Wnd
);
1253 NtUserDisableThreadIme(
1258 NtUserDispatchMessage(PMSG pMsg
);
1277 NtUserDrawAnimatedRects(
1293 NtUserDrawCaptionTemp(
1299 const PUNICODE_STRING str
,
1312 HBRUSH hbrFlickerFreeDraw
,
1319 NtUserEmptyClipboard(VOID
);
1323 NtUserEnableScrollBar(
1330 NtUserEndDeferWindowPosEx(
1335 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1339 NtUserEnumDisplayDevices (
1340 PUNICODE_STRING lpDevice
, /* device name */
1341 DWORD iDevNum
, /* display device */
1342 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1343 DWORD dwFlags
); /* reserved */
1347 NtUserEnumDisplayMonitors (
1350 MONITORENUMPROC lpfnEnum,
1352 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1355 NtUserEnumDisplayMonitors(
1356 OPTIONAL IN HDC hDC
,
1357 OPTIONAL IN LPCRECT pRect
,
1358 OPTIONAL OUT HMONITOR
*hMonitorList
,
1359 OPTIONAL OUT LPRECT monitorRectList
,
1360 OPTIONAL IN DWORD listSize
);
1365 NtUserEnumDisplaySettings(
1366 PUNICODE_STRING lpszDeviceName
,
1368 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1378 NtUserExcludeUpdateRgn(
1392 NtUserFindExistingCursorIcon(
1402 HWND hwndChildAfter
,
1403 PUNICODE_STRING ucClassName
,
1404 PUNICODE_STRING ucWindowName
,
1410 NtUserFlashWindowEx(
1411 IN PFLASHWINFO pfwi
);
1415 NtUserGetAltTabInfo(
1424 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1428 NtUserGetAppImeLevel(
1433 NtUserGetAsyncKeyState(
1444 NtUserGetCaretBlinkTime(VOID
);
1452 NtUserGetClassInfo(HINSTANCE hInstance
,
1453 PUNICODE_STRING ClassName
,
1455 LPWSTR
*ppszMenuName
,
1460 NtUserGetClassName(HWND hWnd
,
1461 PUNICODE_STRING ClassName
,
1463 #if 0 // Real NtUserGetClassName
1466 NtUserGetClassName(HWND hWnd
,
1467 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1468 PUNICODE_STRING ClassName
);
1473 NtUserGetClipboardData(
1479 NtUserGetClipboardFormatName(
1481 PUNICODE_STRING FormatName
,
1486 NtUserGetClipboardOwner(VOID
);
1490 NtUserGetClipboardSequenceNumber(VOID
);
1494 NtUserGetClipboardViewer(VOID
);
1498 NtUserGetClipCursor(
1503 NtUserGetComboBoxInfo(
1505 PCOMBOBOXINFO pcbi
);
1509 NtUserGetControlBrush(
1516 NtUserGetControlColor(
1531 NtUserGetCursorFrameInfo(
1539 NtUserGetCursorInfo(
1556 NtUserGetDoubleClickTime(VOID
);
1560 NtUserGetForegroundWindow(VOID
);
1564 NtUserGetGuiResources(
1570 NtUserGetGUIThreadInfo(
1572 LPGUITHREADINFO lpgui
);
1579 PUNICODE_STRING lpInstName
,
1580 PUNICODE_STRING lpResName
,
1608 NtUserGetInternalWindowPos(
1615 NtUserGetKeyboardLayout(
1620 NtUserGetKeyboardLayoutList(
1626 NtUserGetKeyboardLayoutName(
1631 NtUserGetKeyboardState(
1636 NtUserGetKeyboardType(
1641 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1650 NtUserGetLayeredWindowAttributes(
1658 NtUserGetListBoxInfo(
1661 typedef struct tagNTUSERGETMESSAGEINFO
1665 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1670 PNTUSERGETMESSAGEINFO MsgInfo
,
1673 UINT wMsgFilterMax
);
1677 NtUserGetMouseMovePointsEx(
1679 LPMOUSEMOVEPOINT lppt
,
1680 LPMOUSEMOVEPOINT lpptBuf
,
1686 NtUserGetObjectInformation(
1689 PVOID pvInformation
,
1691 PDWORD nLengthNeeded
);
1695 NtUserGetOpenClipboardWindow(VOID
);
1699 NtUserGetPriorityClipboardFormat(
1700 UINT
*paFormatPriorityList
,
1705 NtUserGetProcessWindowStation(VOID
);
1709 NtUserGetRawInputBuffer(
1716 NtUserGetRawInputData(
1717 HRAWINPUT hRawInput
,
1725 NtUserGetRawInputDeviceInfo(
1733 NtUserGetRawInputDeviceList(
1734 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1735 PUINT puiNumDevices
,
1740 NtUserGetRegisteredRawInputDevices(
1741 PRAWINPUTDEVICE pRawInputDevices
,
1742 PUINT puiNumDevices
,
1747 NtUserGetScrollBarInfo(
1750 PSCROLLBARINFO psbi
);
1754 NtUserGetThreadDesktop(
1759 enum ThreadStateRoutines
1761 THREADSTATE_GETTHREADINFO
,
1762 THREADSTATE_INSENDMESSAGE
,
1763 THREADSTATE_FOCUSWINDOW
,
1764 THREADSTATE_ACTIVEWINDOW
,
1765 THREADSTATE_CAPTUREWINDOW
,
1766 THREADSTATE_PROGMANWINDOW
,
1767 THREADSTATE_TASKMANWINDOW
1772 NtUserGetThreadState(
1777 NtUserGetTitleBarInfo(
1782 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
1798 NtUserGetWindowPlacement(
1800 WINDOWPLACEMENT
*lpwndpl
);
1810 NtUserHardErrorControl(
1817 NtUserImpersonateDdeClientWindow(
1825 HANDLE hPowerRequestEvent
,
1826 HANDLE hMediaRequestEvent
);
1830 NtUserInitializeClientPfnArrays(
1831 PPFNCLIENT pfnClientA
,
1832 PPFNCLIENT pfnClientW
,
1833 PPFNCLIENTWORKER pfnClientWorker
,
1834 HINSTANCE hmodUser
);
1854 NtUserInternalGetWindowText(
1861 NtUserInvalidateRect(
1868 NtUserInvalidateRgn(
1875 NtUserIsClipboardFormatAvailable(
1888 NtUserLoadKeyboardLayoutEx(
1891 IN PUNICODE_STRING puszKeyboardName
,
1893 IN PUNICODE_STRING puszKLID
,
1899 NtUserLockWindowStation(
1900 HWINSTA hWindowStation
);
1904 NtUserLockWindowUpdate(
1909 NtUserLockWorkStation(VOID
);
1913 NtUserMapVirtualKeyEx( UINT keyCode
,
1924 ULONG_PTR ResultInfo
,
1925 DWORD dwType
, // FNID_XX types
1932 UINT cmd
, // Wine SW_ commands
1937 NtUserMNDragLeave(VOID
);
1947 NtUserModifyUserStartupInfoFlags(
1964 NtUserNotifyIMEStatus(
1971 NtUserNotifyProcessCreate(
1979 NtUserNotifyWinEvent(
1987 NtUserOpenClipboard(
1994 PUNICODE_STRING lpszDesktopName
,
1996 ACCESS_MASK dwDesiredAccess
);
2000 NtUserOpenInputDesktop(
2003 ACCESS_MASK dwDesiredAccess
);
2007 NtUserOpenWindowStation(
2008 PUNICODE_STRING lpszWindowStationName
,
2009 ACCESS_MASK dwDesiredAccess
);
2029 PNTUSERGETMESSAGEINFO MsgInfo
,
2045 NtUserPostThreadMessage(
2060 NtUserProcessConnect(
2062 OUT PUSERCONNECT pUserConnect
,
2063 IN DWORD dwSize
); // sizeof(USERCONNECT)
2067 NtUserQueryInformationThread(
2076 NtUserQueryInputContext(
2082 NtUserQuerySendMessage(
2087 NtUserQueryUserCounters(
2094 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2095 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2096 #define QUERY_WINDOW_ACTIVE 0x02
2097 #define QUERY_WINDOW_FOCUS 0x03
2098 #define QUERY_WINDOW_ISHUNG 0x04
2107 NtUserRealInternalGetMessage(
2117 NtUserRealChildWindowFromPoint(
2124 NtUserRealWaitMessageEx(
2133 CONST RECT
*lprcUpdate
,
2140 NtUserRegisterClassExWOW(
2142 PUNICODE_STRING pustrClassName
,
2143 PUNICODE_STRING pustrCNVersion
,
2144 PCLSMENUNAME pClassMenuName
,
2151 NtUserRegisterRawInputDevices(
2152 IN PCRAWINPUTDEVICE pRawInputDevices
,
2153 IN UINT uiNumDevices
,
2158 NtUserRegisterUserApiHook(
2164 NtUserRegisterHotKey(HWND hWnd
,
2171 NtUserRegisterTasklist(
2175 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2179 NtUserRemoteConnect(
2186 NtUserRemoteRedrawRectangle(
2194 NtUserRemoteRedrawScreen(VOID
);
2198 NtUserRemoteStopScreenUpdates(VOID
);
2201 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2205 NtUserResolveDesktop(
2213 NtUserResolveDesktopForWOW(
2230 CONST RECT
*lprcScroll
,
2231 CONST RECT
*lprcClip
,
2236 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2237 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2247 NtUserSetActiveWindow(HWND Wnd
);
2251 NtUserSetAppImeLevel(
2256 NtUserSetCapture(HWND Wnd
);
2262 ULONG_PTR dwNewLong
,
2274 NtUserSetClipboardData(
2281 NtUserSetClipboardViewer(
2282 HWND hWndNewViewer
);
2286 NtUserSelectPalette(
2289 BOOL ForceBackground
2294 NtUserSetConsoleReserveKeys(
2305 NtUserSetCursorContents(
2307 PICONINFO IconInfo
);
2311 NtUserSetCursorIconData(
2346 NtUserSetImeOwnerWindow(
2352 NtUserSetInformationProcess(
2360 NtUserSetInformationThread(
2368 NtUserSetInternalWindowPos(
2376 NtUserSetKeyboardState(
2381 NtUserSetLayeredWindowAttributes(
2389 NtUserSetLogonNotifyWindow(
2394 NtUserSetObjectInformation(
2397 PVOID pvInformation
,
2404 HWND hWndNewParent
);
2408 NtUserSetProcessWindowStation(
2409 HWINSTA hWindowStation
);
2412 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2422 NtUserSetScrollInfo(
2430 NtUserSetShellWindowEx(
2432 HWND hwndShellListView
);
2438 IN CONST INT
*lpaElements
,
2439 IN CONST COLORREF
*lpaRgbValues
,
2444 NtUserSetSystemCursor(
2450 NtUserSetThreadDesktop(
2455 NtUserSetThreadState(
2461 NtUserSetSystemTimer
2466 TIMERPROC lpTimerFunc
2471 NtUserSetThreadLayoutHandles(
2482 TIMERPROC lpTimerFunc
2487 NtUserSetWindowFNID(
2493 NtUserSetWindowLong(
2501 NtUserSetWindowPlacement(
2503 WINDOWPLACEMENT
*lpwndpl
);
2506 NTAPI
NtUserSetWindowPos(
2508 HWND hWndInsertAfter
,
2525 NtUserSetWindowsHookAW(
2532 NtUserSetWindowsHookEx(
2534 PUNICODE_STRING ModuleName
,
2542 NtUserSetWindowStationUser(
2549 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2553 NtUserSetWinEventHook(
2556 HMODULE hmodWinEventProc
,
2557 PUNICODE_STRING puString
,
2558 WINEVENTPROC lpfnWinEventProc
,
2575 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2585 NtUserShowWindowAsync(
2591 NtUserSoundSentry(VOID
);
2595 NtUserSwitchDesktop(
2600 NtUserSystemParametersInfo(
2608 NtUserTestForInteractiveUser(
2624 NtUserTrackMouseEvent(
2625 LPTRACKMOUSEEVENT lpEventTrack
);
2629 NtUserTranslateAccelerator(
2636 NtUserTranslateMessage(
2642 NtUserUnhookWindowsHookEx(
2647 NtUserUnhookWinEvent(
2648 HWINEVENTHOOK hWinEventHook
);
2652 NtUserUnloadKeyboardLayout(
2657 NtUserUnlockWindowStation(
2658 HWINSTA hWindowStation
);
2662 NtUserUnregisterClass(
2663 PUNICODE_STRING ClassNameOrAtom
,
2664 HINSTANCE hInstance
,
2665 PCLSMENUNAME pClassMenuName
);
2669 NtUserUnregisterHotKey(HWND hWnd
,
2674 NtUserUnregisterUserApiHook(VOID
);
2678 NtUserUpdateInputContext(
2685 NtUserUpdateInstance(
2692 NtUserUpdateLayeredWindow(
2700 BLENDFUNCTION
*pblend
,
2705 NtUserUpdatePerUserSystemParameters(
2711 NtUserUserHandleGrantAccess(
2712 IN HANDLE hUserHandle
,
2718 NtUserValidateHandleSecure(
2726 CONST RECT
*lpRect
);
2730 NtUserValidateTimerCallback(
2744 NtUserWaitForInputIdle(
2746 IN DWORD dwMilliseconds
,
2747 IN BOOL Unknown2
); // Always FALSE
2751 NtUserWaitForMsgAndEvent(
2756 NtUserWaitMessage(VOID
);
2760 NtUserWin32PoolAllocationStats(
2770 NtUserWindowFromPoint(
2776 NtUserYieldTask(VOID
);
2778 /* lParam of DDE messages */
2779 typedef struct tagKMDDEEXECUTEDATA
2783 /* BYTE Data[DataSize] */
2784 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
2786 typedef struct tagKMDDELPARAM
2798 } KMDDELPARAM
, *PKMDDELPARAM
;
2805 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
2808 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
2809 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
2810 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
2811 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
2812 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
2813 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
2814 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
2815 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
2816 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
2817 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
2818 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
2819 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
2820 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
2821 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
2822 #define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031
2823 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0xfffe0047 // use HWND_ROUTINE_GETWNDCONTEXTHLPID
2824 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
2825 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
2826 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
2827 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
2828 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
2829 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
2830 #define MSQ_STATE_CAPTURE 0x1
2831 #define MSQ_STATE_ACTIVE 0x2
2832 #define MSQ_STATE_FOCUS 0x3
2833 #define MSQ_STATE_MENUOWNER 0x4
2834 #define MSQ_STATE_MOVESIZE 0x5
2835 #define MSQ_STATE_CARET 0x6
2836 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
2837 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
2838 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
2839 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
2840 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0xfffd0063
2841 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0xfffd0064
2842 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0xfffd0065
2843 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
2844 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
2845 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
2846 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
2850 NtUserBuildMenuItemList(
2856 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
2859 NtUserCreateCursorIconHandle(
2864 /* Should be done in usermode */
2867 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
2871 NtUserGetMenuDefaultItem(
2878 NtUserGetLastInputInfo(
2879 PLASTINPUTINFO plii
);
2883 NtUserGetMinMaxInfo(
2885 MINMAXINFO
*MinMaxInfo
,
2890 NtUserGetMonitorInfo(
2891 IN HMONITOR hMonitor
,
2892 OUT LPMONITORINFO pMonitorInfo
);
2894 /* Should be done in usermode */
2897 NtUserGetScrollInfo(
2904 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
2906 /* Should be done in usermode */
2909 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
2912 /* (other FocusedItem values give the position of the focused item) */
2913 #define NO_SELECTED_ITEM 0xffff
2915 typedef struct tagROSMENUINFO
2917 /* ----------- MENUINFO ----------- */
2923 DWORD dwContextHelpID
;
2924 ULONG_PTR dwMenuData
;
2925 /* ----------- Extra ----------- */
2926 HMENU Self
; /* Handle of this menu */
2927 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
2928 UINT FocusedItem
; /* Currently focused item */
2929 UINT MenuItemCount
; /* Number of items in the menu */
2930 HWND Wnd
; /* Window containing the menu */
2931 WORD Width
; /* Width of the whole menu */
2932 WORD Height
; /* Height of the whole menu */
2933 HWND WndOwner
; /* window receiving the messages for ownerdraw */
2934 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
2935 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
2936 } ROSMENUINFO
, *PROSMENUINFO
;
2948 typedef struct tagROSMENUITEMINFO
2950 /* ----------- MENUITEMINFOW ----------- */
2957 HBITMAP hbmpChecked
;
2958 HBITMAP hbmpUnchecked
;
2963 /* ----------- Extra ----------- */
2964 RECT Rect
; /* Item area (relative to menu window) */
2965 UINT XTab
; /* X position of text after Tab */
2966 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
2967 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
2975 PROSMENUITEMINFO lpmii
,
2981 NtUserMonitorFromPoint(
2987 NtUserMonitorFromRect(
2993 NtUserMonitorFromWindow(
2998 /* FIXME: These flag constans aren't what Windows uses. */
2999 #define REGISTERCLASS_ANSI 2
3000 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI)
3004 NtUserRegisterClassEx( // Need to use NtUserRegisterClassExWOW.
3005 CONST WNDCLASSEXW
* lpwcx
,
3006 PUNICODE_STRING ClassName
,
3007 PUNICODE_STRING MenuName
,
3014 typedef struct tagNTUSERSENDMESSAGEINFO
3016 BOOL HandledByKernel
;
3019 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3021 /* use NtUserMessageCall */
3023 NtUserSendMessage(HWND hWnd
,
3027 PNTUSERSENDMESSAGEINFO Info
);
3029 /* use NtUserMessageCall */
3031 NtUserSendMessageTimeout(HWND hWnd
,
3038 PNTUSERSENDMESSAGEINFO Info
);
3040 /* use NtUserMessageCall */
3043 NtUserSendNotifyMessage(
3050 typedef struct _SETSCROLLBARINFO
3054 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3055 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3059 NtUserSetScrollBarInfo(
3062 SETSCROLLBARINFO
*info
);
3066 #endif /* __WIN32K_NTUSER_H */