1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
4 typedef struct _PROCESSINFO
*PPROCESSINFO
;
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 // State Flags !Not Implemented!
141 #define WNDS_HASMENU 0X00000001
142 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
143 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
144 #define WNDS_HASCAPTION 0X00000008
145 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
146 #define WNDS_MSGBOX 0X00000020
147 #define WNDS_ACTIVEFRAME 0X00000040
148 #define WNDS_HASSPB 0X00000080
149 #define WNDS_NONCPAINT 0X00000100
150 #define WNDS_SENDERASEBACKGROUND 0X00000200
151 #define WNDS_ERASEBACKGROUND 0X00000400
152 #define WNDS_SENDNCPAINT 0X00000800
153 #define WNDS_INTERNALPAINT 0X00001000
154 #define WNDS_UPDATEDIRTY 0X00002000
155 #define WNDS_HIDDENPOPUP 0X00004000
156 #define WNDS_FORCEMENUDRAW 0X00008000
157 #define WNDS_DIALOGWINDOW 0X00010000
158 #define WNDS_HASCREATESTRUCTNAME 0X00020000
159 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
160 #define WNDS_ANSIWINDOWPROC 0x00080000
161 #define WNDS_BEGINGACTIVATED 0x00100000
162 #define WNDS_HASPALETTE 0x00200000
163 #define WNDS_PAINTNOTPROCESSED 0x00400000
164 #define WNDS_SYNCPAINTPENDING 0x00800000
165 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
166 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
167 #define WNDS_TOGGLETOPMOST 0x04000000
168 #define WNDS_REDRAWIFHUNG 0x08000000
169 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
170 #define WNDS_ANSICREATOR 0x20000000
171 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
172 #define WNDS_DESTROYED 0x80000000
174 // State2 Flags !Not Implemented!
175 #define WNDS2_WMPAINTSENT 0X00000001
176 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
177 #define WNDS2_STARTPAINT 0X00000004
178 #define WNDS2_OLDUI 0X00000008
179 #define WNDS2_HASCLIENTEDGE 0X00000010
180 #define WNDS2_BOTTOMMOST 0X00000020
181 #define WNDS2_FULLSCREEN 0X00000040
182 #define WNDS2_INDESTROY 0X00000080
183 #define WNDS2_WIN31COMPAT 0X00000100
184 #define WNDS2_WIN40COMPAT 0X00000200
185 #define WNDS2_WIN50COMPAT 0X00000400
186 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
187 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
188 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
189 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
190 #define WNDS2_HELPBUTTONDOWN 0X00008000
191 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
192 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
193 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
194 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
195 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
196 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
197 #define WNDS2_FORCENCPAINT 0X00400000
198 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
199 #define WNDS2_FULLSCREENMODE 0X01000000
200 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
201 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
202 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
203 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
204 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
206 /* Non SDK ExStyles */
207 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
208 #define WS_EX_UISTATEACTIVE 0x04000000
209 #define WS_EX_REDIRECTED 0X20000000
210 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
211 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
214 #define WS_MAXIMIZED 0X01000000
215 #define WS_MINIMIZED 0X20000000
218 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
219 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
220 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
221 #define WS_EX2_LINKED 0X00000008
222 #define WS_EX2_LAYEREDFORDWM 0X00000010
223 #define WS_EX2_LAYEREDLIMBO 0X00000020
224 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
225 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
226 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
227 #define WS_EX2_HASOVERLAY 0X00000200
228 #define WS_EX2_CONSOLEWINDOW 0X00000400
229 #define WS_EX2_CHILDNOACTIVATE 0X00000800
231 typedef struct _WINDOW
233 USER_OBJHDR hdr
; /* FIXME: Move out of the structure once new handle manager is implemented */
234 /* NOTE: This structure is located in the desktop heap and will
235 eventually replace WINDOW_OBJECT. Right now WINDOW_OBJECT
236 keeps a reference to this structure until all the information
237 is moved to this structure */
238 struct _PROCESSINFO
*pi
; /* FIXME: Move to object header some day */
239 struct _W32THREADINFO
*ti
;
240 struct _DESKTOP
*pdesktop
;
244 /* Extended style. */
248 /* Handle of the module that created the window. */
251 struct _WINDOW
*spwndNext
;
252 struct _WINDOW
*spwndPrev
;
253 struct _WINDOW
*spwndParent
;
254 struct _WINDOW
*spwndChild
;
255 struct _WINDOW
*spwndOwner
;
261 /* Pointer to a call procedure handle */
263 /* Extra Wnd proc (windows of system classes) */
264 WNDPROC WndProcExtra
;
267 /* Pointer to the window class. */
270 /* Property list head.*/
271 LIST_ENTRY PropListHead
;
273 /* Window menu handle or window id */
279 UNICODE_STRING strName
;
280 /* Size of the extra data associated with the window. */
283 struct _WINDOW
*spwndLastActive
;
284 //HIMC hImc; // Input context associated with this window.
286 //PACTIVATION_CONTEXT pActCtx;
287 //PD3DMATRIX pTransForm;
288 struct _WINDOW
*spwndClipboardListener
;
291 /* Context help id */
301 UINT Unicode
: 1; // !WNDS_ANSICREATOR ?
302 /* Indicates whether the window is derived from a system class */
303 UINT IsSystem
: 1; // System class ?
304 UINT InternalPosInitialized
: 1;
305 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
306 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
309 typedef struct _PFNCLIENT
311 WNDPROC pfnScrollBarWndProc
;
312 WNDPROC pfnTitleWndProc
;
313 WNDPROC pfnMenuWndProc
;
314 WNDPROC pfnDesktopWndProc
;
315 WNDPROC pfnDefWindowProc
;
316 WNDPROC pfnMessageWindowProc
;
317 WNDPROC pfnSwitchWindowProc
;
318 WNDPROC pfnButtonWndProc
;
319 WNDPROC pfnComboBoxWndProc
;
320 WNDPROC pfnComboListBoxProc
;
321 WNDPROC pfnDialogWndProc
;
322 WNDPROC pfnEditWndProc
;
323 WNDPROC pfnListBoxWndProc
;
324 WNDPROC pfnMDIClientWndProc
;
325 WNDPROC pfnStaticWndProc
;
326 WNDPROC pfnImeWndProc
;
327 WNDPROC pfnGhostWndProc
;
328 WNDPROC pfnHkINLPCWPSTRUCT
;
329 WNDPROC pfnHkINLPCWPRETSTRUCT
;
330 WNDPROC pfnDispatchHook
;
331 WNDPROC pfnDispatchDefWindowProc
;
332 WNDPROC pfnDispatchMessage
;
333 WNDPROC pfnMDIActivateDlgProc
;
334 } PFNCLIENT
, *PPFNCLIENT
;
337 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
338 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
341 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
343 typedef struct _PFNCLIENTWORKER
345 WNDPROC_EX pfnButtonWndProc
;
346 WNDPROC_EX pfnComboBoxWndProc
;
347 WNDPROC_EX pfnComboListBoxProc
;
348 WNDPROC_EX pfnDialogWndProc
;
349 WNDPROC_EX pfnEditWndProc
;
350 WNDPROC_EX pfnListBoxWndProc
;
351 WNDPROC_EX pfnMDIClientWndProc
;
352 WNDPROC_EX pfnStaticWndProc
;
353 WNDPROC_EX pfnImeWndProc
;
354 WNDPROC_EX pfnGhostWndProc
;
355 WNDPROC_EX pfnCtfHookProc
;
356 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
359 typedef LONG_PTR (NTAPI
*PFN_FNID
)(struct _WND
*, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
361 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
362 #define FNID_FIRST 0x029A
363 #define FNID_SCROLLBAR 0x029A
364 #define FNID_ICONTITLE 0x029B
365 #define FNID_MENU 0x029C
366 #define FNID_DESKTOP 0x029D
367 #define FNID_DEFWINDOWPROC 0x029E
368 #define FNID_SWITCH 0x02A0
369 #define FNID_BUTTON 0x02A1
370 #define FNID_COMBOBOX 0x02A2
371 #define FNID_COMBOLBOX 0x02A3
372 #define FNID_DIALOG 0x02A4
373 #define FNID_EDIT 0x02A5
374 #define FNID_LISTBOX 0x02A6
375 #define FNID_MDICLIENT 0x02A7
376 #define FNID_STATIC 0x02A8
377 #define FNID_IME 0x02A9
378 #define FNID_CALLWNDPROC 0x02AA
379 #define FNID_CALLWNDPROCRET 0x02AB
380 #define FNID_HKINLPCWPEXSTRUCT 0x02AC
381 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AD
382 #define FNID_SENDMESSAGE 0x02B0
383 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
384 #define FNID_SENDMESSAGEWTOOPTION 0x02B1
385 #define FNID_SENDMESSAGETIMEOUT 0x02B2
386 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B4
387 #define FNID_TOOLTIPS 0x02B5
388 #define FNID_UNKNOWN 0x02B6
389 #define FNID_SENDNOTIFYMESSAGE 0x02B7
390 #define FNID_SENDMESSAGECALLBACK 0x02B8
391 #define FNID_LAST 0x02B9
393 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
395 #define FNID_DDEML 0x2000 // Registers DDEML
396 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
397 // Seen during WM_CREATE on error exit too.
399 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
400 #define ICLS_BUTTON 0
402 #define ICLS_STATIC 2
403 #define ICLS_LISTBOX 3
404 #define ICLS_SCROLLBAR 4
405 #define ICLS_COMBOBOX 5
406 #define ICLS_MDICLIENT 6
407 #define ICLS_COMBOLBOX 7
408 #define ICLS_DDEMLEVENT 8
409 #define ICLS_DDEMLMOTHER 9
410 #define ICLS_DDEML16BIT 10
411 #define ICLS_DDEMLCLIENTA 11
412 #define ICLS_DDEMLCLIENTW 12
413 #define ICLS_DDEMLSERVERA 13
414 #define ICLS_DDEMLSERVERW 14
416 #define ICLS_DESKTOP 16
417 #define ICLS_DIALOG 17
419 #define ICLS_SWITCH 19
420 #define ICLS_ICONTITLE 20
421 #define ICLS_TOOLTIPS 21
422 #if (_WIN32_WINNT <= 0x0501)
423 #define ICLS_UNKNOWN 22
424 #define ICLS_NOTUSED 23
426 #define ICLS_SYSSHADOW 22
427 #define ICLS_HWNDMESSAGE 23
428 #define ICLS_UNKNOWN 24
429 #define ICLS_NOTUSED 25
433 #define COLOR_LAST COLOR_MENUBAR
434 #define MAX_MB_STRINGS 11
436 #define SRVINFO_METRICS 0x0020
438 typedef struct tagOEMBITMAPINFO
444 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
446 typedef struct tagMBSTRING
451 } MBSTRING
, *PMBSTRING
;
453 typedef struct tagDPISERVERINFO
455 INT gclBorder
; /* 000 */
456 HFONT hCaptionFont
; /* 004 */
457 HFONT hMsgFont
; /* 008 */
458 INT cxMsgFontChar
; /* 00C */
459 INT cyMsgFontChar
; /* 010 */
460 UINT wMaxBtnSize
; /* 014 */
461 } DPISERVERINFO
, *PDPISERVERINFO
;
463 typedef struct _PERUSERSERVERINFO
465 INT aiSysMet
[SM_CMETRICS
];
466 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
467 COLORREF argbSystem
[COLOR_LAST
+1];
468 HBRUSH ahbrSystem
[COLOR_LAST
+1];
472 DWORD dwLastRITEventTickCount
;
477 UINT ucWheelScrollLines
;
478 UINT ucWheelScrollChars
;
479 INT wMaxLeftOverlapChars
;
480 INT wMaxRightOverlapChars
;
483 TEXTMETRICW tmSysFont
;
484 DPISERVERINFO dpiSystem
;
485 HICON hIconSmWindows
;
488 DWORD dwAsyncKeyCache
;
490 OEMBITMAPINFO oembmi
[93];
499 DWORD dwLastSystemRITEventTickCountUpdate
;
500 ULONG adwDBGTAGFlags
[35];
503 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
505 typedef struct tagSERVERINFO
508 ULONG_PTR cHandleEntries
;
509 PFN_FNID mpFnidPfn
[FNID_NUM
];
510 WNDPROC aStoCidPfn
[7];
511 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
512 PFNCLIENT apfnClientA
;
513 PFNCLIENT apfnClientW
;
514 PFNCLIENTWORKER apfnClientWorker
;
516 ATOM atomSysClass
[ICLS_NOTUSED
+1];
517 DWORD dwDefaultHeapBase
;
518 DWORD dwDefaultHeapSize
;
520 MBSTRING MBStrings
[MAX_MB_STRINGS
];
523 ATOM atomContextHelpIdProp
;
524 ATOM atomFrostedWindowProp
;
525 CHAR acOemToAnsi
[256];
526 CHAR acAnsiToOem
[256];
527 DWORD dwInstalledEventHooks
;
529 } SERVERINFO
, *PSERVERINFO
;
531 #define CTI_INSENDMESSAGE 0x0002
533 typedef struct _CLIENTTHREADINFO
538 WORD fsWakeBitsJournal
;
542 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
544 typedef struct _W32THREADINFO
546 PPROCESSINFO ppi
; /* [KERNEL] */
547 PDESKTOPINFO pDeskInfo
;
549 } W32THREADINFO
, *PW32THREADINFO
;
551 /* Window Client Information structure */
555 typedef struct tagHOOK
557 LIST_ENTRY Chain
; /* Hook chain entry */
558 HHOOK Self
; /* user handle for this hook */
559 struct _ETHREAD
* Thread
; /* Thread owning the hook */
560 int HookId
; /* Hook table index */
561 HOOKPROC Proc
; /* Hook function */
562 BOOLEAN Ansi
; /* Is it an Ansi hook? */
563 ULONG Flags
; /* Some internal flags */
564 UNICODE_STRING ModuleName
; /* Module name for global hooks */
567 typedef struct _CALLBACKWND
571 } CALLBACKWND
, *PCALLBACKWND
;
573 #define CI_CURTHPRHOOK 0x00000010
575 typedef struct _CLIENTINFO
581 DWORD dwCompatFlags2
;
583 PDESKTOPINFO pDeskInfo
;
584 ULONG_PTR ulClientDelta
;
587 CALLBACKWND CallbackWnd
;
589 INT cInDDEMLCallback
;
590 PCLIENTTHREADINFO pClientThreadInfo
;
591 ULONG_PTR dwHookData
;
594 DWORD dwAsyncKeyCache
;
595 DWORD afAsyncKeyState
[2];
596 DWORD afAsyncKeyStateRecentDow
[2];
601 ULONG Win32ClientInfo3
[28];
602 /* It's just a pointer reference not to be used w the structure in user space. */
604 } CLIENTINFO
, *PCLIENTINFO
;
606 /* Make sure it fits exactly into the TEB */
607 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
609 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
611 // Server event activity bits.
612 #define SRV_EVENT_MENU 0x0001
613 #define SRV_EVENT_END_APPLICATION 0x0002
614 #define SRV_EVENT_RUNNING 0x0004
615 #define SRV_EVENT_NAMECHANGE 0x0008
616 #define SRV_EVENT_VALUECHANGE 0x0010
617 #define SRV_EVENT_STATECHANGE 0x0020
618 #define SRV_EVENT_LOCATIONCHANGE 0x0040
619 #define SRV_EVENT_CREATE 0x8000
621 typedef struct _PROPLISTITEM
625 } PROPLISTITEM
, *PPROPLISTITEM
;
627 typedef struct _PROPERTY
629 LIST_ENTRY PropListEntry
;
632 } PROPERTY
, *PPROPERTY
;
634 typedef struct _BROADCASTPARM
641 } BROADCASTPARM
, *PBROADCASTPARM
;
643 PW32THREADINFO
GetW32ThreadInfo(VOID
);
644 PPROCESSINFO
GetW32ProcessInfo(VOID
);
646 typedef struct _WNDMSG
652 typedef struct _SHAREDINFO
654 PSERVERINFO psi
; // global Server Info
655 PVOID aheList
; // Handle Entry List
656 PVOID pDispInfo
; // global PDISPLAYINFO pointer
657 ULONG_PTR ulSharedDelta
; // Heap delta
658 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
659 WNDMSG DefWindowMsgs
;
660 WNDMSG DefWindowSpecMsgs
;
661 } SHAREDINFO
, *PSHAREDINFO
;
663 typedef struct _USERCONNECT
666 ULONG ulCurrentVersion
;
667 DWORD dwDispatchCount
;
669 } USERCONNECT
, *PUSERCONNECT
;
672 // Non SDK Window Message types.
674 #define WM_CLIENTSHUTDOWN 59
675 #define WM_COPYGLOBALDATA 73
676 #define WM_SYSTIMER 280
677 #define WM_POPUPSYSTEMMENU 787
678 #define WM_CBT 1023 // ReactOS only.
679 #define WM_MAXIMUM 0x0001FFFF
682 // Non SDK DCE types.
684 #define DCX_USESTYLE 0x00010000
685 #define DCX_KEEPCLIPRGN 0x00040000
688 // Non SDK Queue message types.
690 #define QS_SMRESULT 0x8000
694 NtUserAssociateInputContext(
725 NtUserCtxDisplayIOCtl(
744 NtUserDrawMenuBarTemp(
753 NtUserEnableMenuItem(
764 NtUserGetMenuBarInfo(
778 NtUserGetMenuItemRect(
792 NtUserHiliteMenuItem(
800 NtUserMenuItemFromPoint(
822 NtUserSetMenuContextHelpId(
824 DWORD dwContextHelpId
);
828 NtUserSetMenuDefaultItem(
835 NtUserSetMenuFlagRtoL(
846 NtUserThunkedMenuInfo(
852 NtUserThunkedMenuItemInfo(
857 LPMENUITEMINFOW lpmii
,
858 PUNICODE_STRING lpszCaption
);
862 NtUserTrackPopupMenuEx(
872 NtUserActivateKeyboardLayout(
878 NtUserAlterWindowStyle(
885 NtUserAttachThreadInput(
891 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
926 PULONG pRequiredSize
);
936 /* apfnSimpleCall indices from Windows XP SP 2 */
937 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
938 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
940 enum SimpleCallRoutines
942 NOPARAM_ROUTINE_CREATEMENU
,
943 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
944 #if (WIN32K_VERSION >= NTDDI_VISTA)
945 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
946 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
947 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
948 NOPARAM_ROUTINE_DESTROY_CARET
,
950 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
951 #if (WIN32K_VERSION < NTDDI_VISTA)
952 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
953 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
954 NOPARAM_ROUTINE_DESTROY_CARET
,
956 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
957 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
958 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
959 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
960 #if (WIN32K_VERSION >= NTDDI_VISTA)
961 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
963 NOPARAM_ROUTINE_GETREMOTEPROCID
,
965 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
966 NOPARAM_ROUTINE_LOADCURSANDICOS
,
967 #if (WIN32K_VERSION >= NTDDI_VISTA)
968 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
969 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
971 NOPARAM_ROUTINE_RELEASECAPTURE
,
972 NOPARAM_ROUTINE_RESETDBLCLICK
,
973 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
974 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
975 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
976 NOPARAM_ROUTINE_REMOTELOGOFF
,
977 NOPARAM_ROUTINE_REMOTENTSECURITY
,
978 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
979 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
980 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
981 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
982 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
983 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
984 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
985 #if (WIN32K_VERSION >= NTDDI_VISTA)
986 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
988 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
989 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
990 #if (WIN32K_VERSION < NTDDI_VISTA)
991 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
993 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
994 #if (WIN32K_VERSION >= NTDDI_VISTA)
995 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
997 ONEPARAM_ROUTINE_WINDOWFROMDC
,
998 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
999 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1000 #if (WIN32K_VERSION < NTDDI_VISTA)
1001 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1003 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1004 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1005 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1006 #if (WIN32K_VERSION < NTDDI_VISTA)
1007 ONEPARAM_ROUTINE_GETCURSORPOS
,
1009 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1010 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1011 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1012 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1013 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1014 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1015 #if (WIN32K_VERSION < NTDDI_VISTA)
1016 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1018 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1019 ONEPARAM_ROUTINE_LOADFONTS
,
1020 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1021 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1022 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1023 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1024 #if (WIN32K_VERSION < NTDDI_VISTA)
1025 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1027 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1028 ONEPARAM_ROUTINE_REGISTERLPK
,
1029 #if (WIN32K_VERSION >= NTDDI_VISTA)
1030 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1032 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1033 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1034 ONEPARAM_ROUTINE_RELEASEDC
,
1035 #if (WIN32K_VERSION >= NTDDI_VISTA)
1036 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1038 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1039 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1040 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1041 #if (WIN32K_VERSION < NTDDI_VISTA)
1042 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1044 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1045 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1046 #if (WIN32K_VERSION >= NTDDI_VISTA)
1047 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1049 ONEPARAM_ROUTINE_SHOWCURSOR
,
1050 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1051 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1052 X_ROUTINE_WOWMODULEUNLOAD
,
1053 #if (WIN32K_VERSION < NTDDI_VISTA)
1054 X_ROUTINE_REMOTENOTIFY
,
1056 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1057 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1058 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1059 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1060 HWND_ROUTINE_SETMSGBOX
,
1061 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1062 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1063 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1064 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1065 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1066 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1067 HWNDPARAM_ROUTINE_SETVISIBLE
,
1068 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1069 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1070 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1071 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1072 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1073 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1074 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1075 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1076 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1077 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1078 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1079 HWNDLOCK_ROUTINE_SETSYSMENU
,
1080 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1081 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1082 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1083 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1084 TWOPARAM_ROUTINE_REDRAWTITLE
,
1085 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1086 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1087 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1088 TWOPARAM_ROUTINE_VALIDATERGN
,
1089 #if (WIN32K_VERSION >= NTDDI_VISTA)
1090 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1091 TWOPARAM_ROUTINE_GETCURSORPOS
,
1093 TWOPARAM_ROUTINE_GETHDEVNAME
,
1094 TWOPARAM_ROUTINE_INITANSIOEM
,
1095 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1096 #if (WIN32K_VERSION >= NTDDI_VISTA)
1097 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1099 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1100 #if (WIN32K_VERSION >= NTDDI_VISTA)
1101 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1103 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1105 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1106 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1107 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1108 TWOPARAM_ROUTINE_SETCARETPOS
,
1109 TWOPARAM_ROUTINE_SETCURSORPOS
,
1110 #if (WIN32K_VERSION >= NTDDI_VISTA)
1111 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1113 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1114 TWOPARAM_ROUTINE_WOWCLEANUP
1137 NtUserCallHwndParam(
1144 NtUserCallHwndParamLock(
1151 NtUserCallMsgFilter(
1157 NtUserCallNextHookEx(
1183 NtUserChangeClipboardChain(
1189 NtUserChangeDisplaySettings(
1190 PUNICODE_STRING lpszDeviceName
,
1191 LPDEVMODEW lpDevMode
,
1198 NtUserCheckDesktopByThreadId(
1203 NtUserCheckWindowThreadDesktop(
1210 NtUserCheckImeHotKey(
1215 NtUserChildWindowFromPointEx(
1228 NtUserCloseClipboard(VOID
);
1237 NtUserCloseWindowStation(
1242 NtUserConsoleControl(
1249 NtUserConvertMemHandle(
1255 NtUserCopyAcceleratorTable(
1262 NtUserCountClipboardFormats(VOID
);
1266 NtUserCreateAcceleratorTable(
1268 SIZE_T EntriesCount
);
1280 NtUserCreateDesktop(
1281 POBJECT_ATTRIBUTES poa
,
1282 PUNICODE_STRING lpszDesktopDevice
,
1285 ACCESS_MASK dwDesiredAccess
);
1289 NtUserCreateInputContext(
1294 NtUserCreateLocalMemHandle(
1302 NtUserCreateWindowEx(
1304 PUNICODE_STRING lpClassName
,
1305 PUNICODE_STRING lpWindowName
,
1313 HINSTANCE hInstance
,
1316 BOOL bUnicodeWindow
,
1321 NtUserCreateWindowEx(
1323 PLARGE_STRING plstrClassName
,
1324 PLARGE_STRING plstrClsVesrion
,
1325 PLARGE_STRING plstrWindowName
,
1333 HINSTANCE hInstance
,
1341 NtUserCreateWindowStation(
1342 PUNICODE_STRING lpszWindowStationName
,
1343 ACCESS_MASK dwDesiredAccess
,
1344 LPSECURITY_ATTRIBUTES lpSecurity
,
1352 NtUserDdeGetQualityOfService(
1355 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1359 NtUserDdeInitialize(
1368 NtUserDdeSetQualityOfService(
1370 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1371 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1374 NtUserDeferWindowPos(HDWP WinPosInfo
,
1376 HWND WndInsertAfter
,
1383 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1387 NtUserDestroyAcceleratorTable(
1392 NtUserDestroyCursor(
1398 NtUserDestroyInputContext(
1402 NtUserDestroyWindow(HWND Wnd
);
1406 NtUserDisableThreadIme(
1411 NtUserDispatchMessage(PMSG pMsg
);
1430 NtUserDrawAnimatedRects(
1446 NtUserDrawCaptionTemp(
1452 const PUNICODE_STRING str
,
1465 HBRUSH hbrFlickerFreeDraw
,
1472 NtUserEmptyClipboard(VOID
);
1476 NtUserEnableScrollBar(
1483 NtUserEndDeferWindowPosEx(
1488 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1492 NtUserEnumDisplayDevices (
1493 PUNICODE_STRING lpDevice
, /* device name */
1494 DWORD iDevNum
, /* display device */
1495 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1496 DWORD dwFlags
); /* reserved */
1500 NtUserEnumDisplayMonitors (
1503 MONITORENUMPROC lpfnEnum,
1505 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1508 NtUserEnumDisplayMonitors(
1509 OPTIONAL IN HDC hDC
,
1510 OPTIONAL IN LPCRECT pRect
,
1511 OPTIONAL OUT HMONITOR
*hMonitorList
,
1512 OPTIONAL OUT LPRECT monitorRectList
,
1513 OPTIONAL IN DWORD listSize
);
1518 NtUserEnumDisplaySettings(
1519 PUNICODE_STRING lpszDeviceName
,
1521 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1531 NtUserExcludeUpdateRgn(
1545 NtUserFindExistingCursorIcon(
1555 HWND hwndChildAfter
,
1556 PUNICODE_STRING ucClassName
,
1557 PUNICODE_STRING ucWindowName
,
1563 NtUserFlashWindowEx(
1564 IN PFLASHWINFO pfwi
);
1568 NtUserGetAltTabInfo(
1577 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1581 NtUserGetAppImeLevel(
1586 NtUserGetAsyncKeyState(
1597 NtUserGetCaretBlinkTime(VOID
);
1605 NtUserGetClassInfo(HINSTANCE hInstance
,
1606 PUNICODE_STRING ClassName
,
1608 LPWSTR
*ppszMenuName
,
1613 NtUserGetClassName(HWND hWnd
,
1614 PUNICODE_STRING ClassName
,
1616 #if 0 // Real NtUserGetClassName
1619 NtUserGetClassName(HWND hWnd
,
1620 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1621 PUNICODE_STRING ClassName
);
1626 NtUserGetClipboardData(
1632 NtUserGetClipboardFormatName(
1634 PUNICODE_STRING FormatName
,
1639 NtUserGetClipboardOwner(VOID
);
1643 NtUserGetClipboardSequenceNumber(VOID
);
1647 NtUserGetClipboardViewer(VOID
);
1651 NtUserGetClipCursor(
1656 NtUserGetComboBoxInfo(
1658 PCOMBOBOXINFO pcbi
);
1662 NtUserGetControlBrush(
1669 NtUserGetControlColor(
1684 NtUserGetCursorFrameInfo(
1692 NtUserGetCursorInfo(
1709 NtUserGetDoubleClickTime(VOID
);
1713 NtUserGetForegroundWindow(VOID
);
1717 NtUserGetGuiResources(
1723 NtUserGetGUIThreadInfo(
1725 LPGUITHREADINFO lpgui
);
1732 PUNICODE_STRING lpInstName
,
1733 PUNICODE_STRING lpResName
,
1761 NtUserGetInternalWindowPos(
1768 NtUserGetKeyboardLayout(
1773 NtUserGetKeyboardLayoutList(
1779 NtUserGetKeyboardLayoutName(
1784 NtUserGetKeyboardState(
1789 NtUserGetKeyboardType(
1794 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1803 NtUserGetLayeredWindowAttributes(
1811 NtUserGetListBoxInfo(
1814 typedef struct tagNTUSERGETMESSAGEINFO
1818 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1823 PNTUSERGETMESSAGEINFO MsgInfo
,
1826 UINT wMsgFilterMax
);
1830 NtUserGetMouseMovePointsEx(
1832 LPMOUSEMOVEPOINT lppt
,
1833 LPMOUSEMOVEPOINT lpptBuf
,
1839 NtUserGetObjectInformation(
1842 PVOID pvInformation
,
1844 PDWORD nLengthNeeded
);
1848 NtUserGetOpenClipboardWindow(VOID
);
1852 NtUserGetPriorityClipboardFormat(
1853 UINT
*paFormatPriorityList
,
1858 NtUserGetProcessWindowStation(VOID
);
1862 NtUserGetRawInputBuffer(
1869 NtUserGetRawInputData(
1870 HRAWINPUT hRawInput
,
1878 NtUserGetRawInputDeviceInfo(
1886 NtUserGetRawInputDeviceList(
1887 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1888 PUINT puiNumDevices
,
1893 NtUserGetRegisteredRawInputDevices(
1894 PRAWINPUTDEVICE pRawInputDevices
,
1895 PUINT puiNumDevices
,
1900 NtUserGetScrollBarInfo(
1903 PSCROLLBARINFO psbi
);
1907 NtUserGetThreadDesktop(
1912 enum ThreadStateRoutines
1914 THREADSTATE_GETTHREADINFO
,
1915 THREADSTATE_INSENDMESSAGE
,
1916 THREADSTATE_FOCUSWINDOW
,
1917 THREADSTATE_ACTIVEWINDOW
,
1918 THREADSTATE_CAPTUREWINDOW
,
1919 THREADSTATE_PROGMANWINDOW
,
1920 THREADSTATE_TASKMANWINDOW
,
1921 THREADSTATE_GETMESSAGETIME
,
1922 THREADSTATE_GETINPUTSTATE
1927 NtUserGetThreadState(
1932 NtUserGetTitleBarInfo(
1937 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
1953 NtUserGetWindowPlacement(
1955 WINDOWPLACEMENT
*lpwndpl
);
1965 NtUserHardErrorControl(
1972 NtUserImpersonateDdeClientWindow(
1980 HANDLE hPowerRequestEvent
,
1981 HANDLE hMediaRequestEvent
);
1985 NtUserInitializeClientPfnArrays(
1986 PPFNCLIENT pfnClientA
,
1987 PPFNCLIENT pfnClientW
,
1988 PPFNCLIENTWORKER pfnClientWorker
,
1989 HINSTANCE hmodUser
);
2009 NtUserInternalGetWindowText(
2016 NtUserInvalidateRect(
2023 NtUserInvalidateRgn(
2030 NtUserIsClipboardFormatAvailable(
2043 NtUserLoadKeyboardLayoutEx(
2046 IN PUNICODE_STRING puszKeyboardName
,
2048 IN PUNICODE_STRING puszKLID
,
2054 NtUserLockWindowStation(
2055 HWINSTA hWindowStation
);
2059 NtUserLockWindowUpdate(
2064 NtUserLockWorkStation(VOID
);
2068 NtUserMapVirtualKeyEx( UINT keyCode
,
2079 ULONG_PTR ResultInfo
,
2080 DWORD dwType
, // FNID_XX types
2087 UINT cmd
, // Wine SW_ commands
2092 NtUserMNDragLeave(VOID
);
2102 NtUserModifyUserStartupInfoFlags(
2119 NtUserNotifyIMEStatus(
2126 NtUserNotifyProcessCreate(
2134 NtUserNotifyWinEvent(
2142 NtUserOpenClipboard(
2149 PUNICODE_STRING lpszDesktopName
,
2151 ACCESS_MASK dwDesiredAccess
);
2155 NtUserOpenInputDesktop(
2158 ACCESS_MASK dwDesiredAccess
);
2162 NtUserOpenWindowStation(
2163 PUNICODE_STRING lpszWindowStationName
,
2164 ACCESS_MASK dwDesiredAccess
);
2184 PNTUSERGETMESSAGEINFO MsgInfo
,
2200 NtUserPostThreadMessage(
2215 NtUserProcessConnect(
2217 OUT PUSERCONNECT pUserConnect
,
2218 IN DWORD dwSize
); // sizeof(USERCONNECT)
2222 NtUserQueryInformationThread(
2231 NtUserQueryInputContext(
2237 NtUserQuerySendMessage(
2242 NtUserQueryUserCounters(
2249 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2250 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2251 #define QUERY_WINDOW_ACTIVE 0x02
2252 #define QUERY_WINDOW_FOCUS 0x03
2253 #define QUERY_WINDOW_ISHUNG 0x04
2262 NtUserRealInternalGetMessage(
2272 NtUserRealChildWindowFromPoint(
2279 NtUserRealWaitMessageEx(
2288 CONST RECT
*lprcUpdate
,
2295 NtUserRegisterClassExWOW(
2297 PUNICODE_STRING pustrClassName
,
2298 PUNICODE_STRING pustrCNVersion
,
2299 PCLSMENUNAME pClassMenuName
,
2306 NtUserRegisterRawInputDevices(
2307 IN PCRAWINPUTDEVICE pRawInputDevices
,
2308 IN UINT uiNumDevices
,
2313 NtUserRegisterUserApiHook(
2319 NtUserRegisterHotKey(HWND hWnd
,
2326 NtUserRegisterTasklist(
2330 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2334 NtUserRemoteConnect(
2341 NtUserRemoteRedrawRectangle(
2349 NtUserRemoteRedrawScreen(VOID
);
2353 NtUserRemoteStopScreenUpdates(VOID
);
2356 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2360 NtUserResolveDesktop(
2368 NtUserResolveDesktopForWOW(
2385 CONST RECT
*lprcScroll
,
2386 CONST RECT
*lprcClip
,
2391 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2392 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2402 NtUserSetActiveWindow(HWND Wnd
);
2406 NtUserSetAppImeLevel(
2411 NtUserSetCapture(HWND Wnd
);
2417 ULONG_PTR dwNewLong
,
2429 NtUserSetClipboardData(
2436 NtUserSetClipboardViewer(
2437 HWND hWndNewViewer
);
2441 NtUserSelectPalette(
2444 BOOL ForceBackground
2449 NtUserSetConsoleReserveKeys(
2460 NtUserSetCursorContents(
2462 PICONINFO IconInfo
);
2466 NtUserSetCursorIconData(
2501 NtUserSetImeOwnerWindow(
2507 NtUserSetInformationProcess(
2515 NtUserSetInformationThread(
2523 NtUserSetInternalWindowPos(
2531 NtUserSetKeyboardState(
2536 NtUserSetLayeredWindowAttributes(
2544 NtUserSetLogonNotifyWindow(
2549 NtUserSetObjectInformation(
2552 PVOID pvInformation
,
2559 HWND hWndNewParent
);
2563 NtUserSetProcessWindowStation(
2564 HWINSTA hWindowStation
);
2567 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2577 NtUserSetScrollInfo(
2585 NtUserSetShellWindowEx(
2587 HWND hwndShellListView
);
2593 IN CONST INT
*lpaElements
,
2594 IN CONST COLORREF
*lpaRgbValues
,
2599 NtUserSetSystemCursor(
2605 NtUserSetThreadDesktop(
2610 NtUserSetThreadState(
2616 NtUserSetSystemTimer
2621 TIMERPROC lpTimerFunc
2626 NtUserSetThreadLayoutHandles(
2637 TIMERPROC lpTimerFunc
2642 NtUserSetWindowFNID(
2648 NtUserSetWindowLong(
2656 NtUserSetWindowPlacement(
2658 WINDOWPLACEMENT
*lpwndpl
);
2661 NTAPI
NtUserSetWindowPos(
2663 HWND hWndInsertAfter
,
2680 NtUserSetWindowsHookAW(
2687 NtUserSetWindowsHookEx(
2689 PUNICODE_STRING ModuleName
,
2697 NtUserSetWindowStationUser(
2704 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2708 NtUserSetWinEventHook(
2711 HMODULE hmodWinEventProc
,
2712 PUNICODE_STRING puString
,
2713 WINEVENTPROC lpfnWinEventProc
,
2730 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2740 NtUserShowWindowAsync(
2746 NtUserSoundSentry(VOID
);
2750 NtUserSwitchDesktop(
2755 NtUserSystemParametersInfo(
2763 NtUserTestForInteractiveUser(
2779 NtUserTrackMouseEvent(
2780 LPTRACKMOUSEEVENT lpEventTrack
);
2784 NtUserTranslateAccelerator(
2791 NtUserTranslateMessage(
2797 NtUserUnhookWindowsHookEx(
2802 NtUserUnhookWinEvent(
2803 HWINEVENTHOOK hWinEventHook
);
2807 NtUserUnloadKeyboardLayout(
2812 NtUserUnlockWindowStation(
2813 HWINSTA hWindowStation
);
2817 NtUserUnregisterClass(
2818 PUNICODE_STRING ClassNameOrAtom
,
2819 HINSTANCE hInstance
,
2820 PCLSMENUNAME pClassMenuName
);
2824 NtUserUnregisterHotKey(HWND hWnd
,
2829 NtUserUnregisterUserApiHook(VOID
);
2833 NtUserUpdateInputContext(
2840 NtUserUpdateInstance(
2847 NtUserUpdateLayeredWindow(
2855 BLENDFUNCTION
*pblend
,
2861 NtUserUpdatePerUserSystemParameters(
2867 NtUserUserHandleGrantAccess(
2868 IN HANDLE hUserHandle
,
2874 NtUserValidateHandleSecure(
2882 CONST RECT
*lpRect
);
2886 NtUserValidateTimerCallback(
2900 NtUserWaitForInputIdle(
2902 IN DWORD dwMilliseconds
,
2903 IN BOOL Unknown2
); // Always FALSE
2907 NtUserWaitForMsgAndEvent(
2912 NtUserWaitMessage(VOID
);
2916 NtUserWin32PoolAllocationStats(
2926 NtUserWindowFromPhysicalPoint(
2931 NtUserWindowFromPoint(
2937 NtUserYieldTask(VOID
);
2939 /* lParam of DDE messages */
2940 typedef struct tagKMDDEEXECUTEDATA
2944 /* BYTE Data[DataSize] */
2945 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
2947 typedef struct tagKMDDELPARAM
2959 } KMDDELPARAM
, *PKMDDELPARAM
;
2966 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
2969 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
2970 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
2971 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
2972 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
2973 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
2974 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
2975 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
2976 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
2977 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
2978 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
2979 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
2980 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
2981 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
2982 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
2983 #define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031
2984 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0xfffe0047 // use HWND_ROUTINE_GETWNDCONTEXTHLPID
2985 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
2986 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
2987 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
2988 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
2989 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
2990 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
2991 #define MSQ_STATE_CAPTURE 0x1
2992 #define MSQ_STATE_ACTIVE 0x2
2993 #define MSQ_STATE_FOCUS 0x3
2994 #define MSQ_STATE_MENUOWNER 0x4
2995 #define MSQ_STATE_MOVESIZE 0x5
2996 #define MSQ_STATE_CARET 0x6
2997 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
2998 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
2999 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
3000 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3001 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
3002 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
3003 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
3004 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3008 NtUserBuildMenuItemList(
3014 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3017 NtUserCreateCursorIconHandle(
3022 /* Should be done in usermode */
3025 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3029 NtUserGetMenuDefaultItem(
3036 NtUserGetLastInputInfo(
3037 PLASTINPUTINFO plii
);
3041 NtUserGetMinMaxInfo(
3043 MINMAXINFO
*MinMaxInfo
,
3048 NtUserGetMonitorInfo(
3049 IN HMONITOR hMonitor
,
3050 OUT LPMONITORINFO pMonitorInfo
);
3052 /* Should be done in usermode */
3055 NtUserGetScrollInfo(
3062 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
3064 /* Should be done in usermode */
3067 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
3070 /* (other FocusedItem values give the position of the focused item) */
3071 #define NO_SELECTED_ITEM 0xffff
3073 typedef struct tagROSMENUINFO
3075 /* ----------- MENUINFO ----------- */
3081 DWORD dwContextHelpID
;
3082 ULONG_PTR dwMenuData
;
3083 /* ----------- Extra ----------- */
3084 HMENU Self
; /* Handle of this menu */
3085 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3086 UINT FocusedItem
; /* Currently focused item */
3087 UINT MenuItemCount
; /* Number of items in the menu */
3088 HWND Wnd
; /* Window containing the menu */
3089 WORD Width
; /* Width of the whole menu */
3090 WORD Height
; /* Height of the whole menu */
3091 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3092 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3093 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3094 } ROSMENUINFO
, *PROSMENUINFO
;
3106 typedef struct tagROSMENUITEMINFO
3108 /* ----------- MENUITEMINFOW ----------- */
3115 HBITMAP hbmpChecked
;
3116 HBITMAP hbmpUnchecked
;
3121 /* ----------- Extra ----------- */
3122 RECT Rect
; /* Item area (relative to menu window) */
3123 UINT XTab
; /* X position of text after Tab */
3124 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3125 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3133 PROSMENUITEMINFO lpmii
,
3139 NtUserMonitorFromPoint(
3145 NtUserMonitorFromRect(
3151 NtUserMonitorFromWindow(
3156 /* FIXME: These flag constans aren't what Windows uses. */
3157 #define REGISTERCLASS_ANSI 2
3158 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI)
3162 NtUserRegisterClassEx( // Need to use NtUserRegisterClassExWOW.
3163 CONST WNDCLASSEXW
* lpwcx
,
3164 PUNICODE_STRING ClassName
,
3165 PUNICODE_STRING MenuName
,
3172 typedef struct tagNTUSERSENDMESSAGEINFO
3174 BOOL HandledByKernel
;
3177 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3179 /* use NtUserMessageCall */
3181 NtUserSendMessage(HWND hWnd
,
3185 PNTUSERSENDMESSAGEINFO Info
);
3187 /* use NtUserMessageCall */
3189 NtUserSendMessageTimeout(HWND hWnd
,
3196 PNTUSERSENDMESSAGEINFO Info
);
3198 typedef struct _SETSCROLLBARINFO
3202 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3203 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3207 NtUserSetScrollBarInfo(
3210 SETSCROLLBARINFO
*info
);
3214 #endif /* __WIN32K_NTUSER_H */