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 #define CSF_SERVERSIDEPROC 0x0001
102 #define CSF_ANSIPROC 0x0002
103 #define CSF_WOWDEFERDESTROY 0x0004
104 #define CSF_SYSTEMCLASS 0x0008
105 #define CSF_WOWCLASS 0x0010
106 #define CSF_WOWEXTRA 0x0020
107 #define CSF_CACHEDSMICON 0x0040
108 #define CSF_WIN40COMPAT 0x0080
112 struct _CLS
*pclsNext
;
113 RTL_ATOM atomClassName
;
114 ATOM atomNVClassName
;
115 DWORD fnid
; // New ClassId
116 struct _DESKTOP
*rpdeskParent
;
119 PSTR lpszClientAnsiMenuName
;
120 PWSTR lpszClientUnicodeMenuName
;
121 PCALLPROC spcpdFirst
;
122 struct _CLS
*pclsBase
;
123 struct _CLS
*pclsClone
;
124 ULONG cWndReferenceCount
;
129 WNDPROC WndProcExtra
;
135 HANDLE hIcon
; /* FIXME - Use pointer! */
136 HANDLE hCursor
; /* FIXME - Use pointer! */
137 HBRUSH hbrBackground
;
140 HANDLE hIconSm
; /* FIXME - Use pointer! */
144 UINT System
: 1; // CSF_SYSTEMCLASS
145 UINT Global
: 1; // CS_GLOBALCLASS
146 UINT MenuNameIsString
: 1;
151 // State Flags !Not Implemented!
152 #define WNDS_HASMENU 0X00000001
153 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
154 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
155 #define WNDS_HASCAPTION 0X00000008
156 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
157 #define WNDS_MSGBOX 0X00000020
158 #define WNDS_ACTIVEFRAME 0X00000040
159 #define WNDS_HASSPB 0X00000080
160 #define WNDS_NONCPAINT 0X00000100
161 #define WNDS_SENDERASEBACKGROUND 0X00000200
162 #define WNDS_ERASEBACKGROUND 0X00000400
163 #define WNDS_SENDNCPAINT 0X00000800
164 #define WNDS_INTERNALPAINT 0X00001000
165 #define WNDS_UPDATEDIRTY 0X00002000
166 #define WNDS_HIDDENPOPUP 0X00004000
167 #define WNDS_FORCEMENUDRAW 0X00008000
168 #define WNDS_DIALOGWINDOW 0X00010000
169 #define WNDS_HASCREATESTRUCTNAME 0X00020000
170 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
171 #define WNDS_ANSIWINDOWPROC 0x00080000
172 #define WNDS_BEGINGACTIVATED 0x00100000
173 #define WNDS_HASPALETTE 0x00200000
174 #define WNDS_PAINTNOTPROCESSED 0x00400000
175 #define WNDS_SYNCPAINTPENDING 0x00800000
176 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
177 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
178 #define WNDS_TOGGLETOPMOST 0x04000000
179 #define WNDS_REDRAWIFHUNG 0x08000000
180 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
181 #define WNDS_ANSICREATOR 0x20000000
182 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
183 #define WNDS_DESTROYED 0x80000000
185 // State2 Flags !Not Implemented!
186 #define WNDS2_WMPAINTSENT 0X00000001
187 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
188 #define WNDS2_STARTPAINT 0X00000004
189 #define WNDS2_OLDUI 0X00000008
190 #define WNDS2_HASCLIENTEDGE 0X00000010
191 #define WNDS2_BOTTOMMOST 0X00000020
192 #define WNDS2_FULLSCREEN 0X00000040
193 #define WNDS2_INDESTROY 0X00000080
194 #define WNDS2_WIN31COMPAT 0X00000100
195 #define WNDS2_WIN40COMPAT 0X00000200
196 #define WNDS2_WIN50COMPAT 0X00000400
197 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
198 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
199 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
200 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
201 #define WNDS2_HELPBUTTONDOWN 0X00008000
202 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
203 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
204 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
205 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
206 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
207 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
208 #define WNDS2_FORCENCPAINT 0X00400000
209 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
210 #define WNDS2_FULLSCREENMODE 0X01000000
211 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
212 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
213 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
214 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
215 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
217 /* Non SDK ExStyles */
218 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
219 #define WS_EX_UISTATEACTIVE 0x04000000
220 #define WS_EX_REDIRECTED 0X20000000
221 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
222 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
225 #define WS_MAXIMIZED 0X01000000
226 #define WS_MINIMIZED 0X20000000
229 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
230 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
231 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
232 #define WS_EX2_LINKED 0X00000008
233 #define WS_EX2_LAYEREDFORDWM 0X00000010
234 #define WS_EX2_LAYEREDLIMBO 0X00000020
235 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
236 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
237 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
238 #define WS_EX2_HASOVERLAY 0X00000200
239 #define WS_EX2_CONSOLEWINDOW 0X00000400
240 #define WS_EX2_CHILDNOACTIVATE 0X00000800
244 USER_OBJHDR hdr
; /* FIXME: Move out of the structure once new handle manager is implemented */
245 /* NOTE: This structure is located in the desktop heap and will
246 eventually replace WINDOW_OBJECT. Right now WINDOW_OBJECT
247 keeps a reference to this structure until all the information
248 is moved to this structure */
249 struct _PROCESSINFO
*pi
; /* FIXME: Move to object header some day */
250 struct _W32THREADINFO
*ti
;
251 struct _DESKTOP
*pdesktop
;
255 /* Extended style. */
259 /* Handle of the module that created the window. */
262 struct _WND
*spwndNext
;
263 struct _WND
*spwndPrev
;
264 struct _WND
*spwndParent
;
265 struct _WND
*spwndChild
;
266 struct _WND
*spwndOwner
;
272 /* Pointer to a call procedure handle */
274 /* Extra Wnd proc (windows of system classes) */
275 WNDPROC WndProcExtra
;
278 /* Pointer to the window class. */
281 /* Property list head.*/
282 LIST_ENTRY PropListHead
;
284 /* Window menu handle or window id */
285 UINT IDMenu
; // Use spmenu
290 UNICODE_STRING strName
;
291 /* Size of the extra data associated with the window. */
294 struct _WND
*spwndLastActive
;
295 //HIMC hImc; // Input context associated with this window.
297 //PACTIVATION_CONTEXT pActCtx;
298 //PD3DMATRIX pTransForm;
299 struct _WND
*spwndClipboardListener
;
309 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
310 /* Indicates whether the window is derived from a system class */
311 UINT IsSystem
: 1; // System class ?
312 UINT InternalPosInitialized
: 1;
313 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
314 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
317 typedef struct _PFNCLIENT
319 WNDPROC pfnScrollBarWndProc
;
320 WNDPROC pfnTitleWndProc
;
321 WNDPROC pfnMenuWndProc
;
322 WNDPROC pfnDesktopWndProc
;
323 WNDPROC pfnDefWindowProc
;
324 WNDPROC pfnMessageWindowProc
;
325 WNDPROC pfnSwitchWindowProc
;
326 WNDPROC pfnButtonWndProc
;
327 WNDPROC pfnComboBoxWndProc
;
328 WNDPROC pfnComboListBoxProc
;
329 WNDPROC pfnDialogWndProc
;
330 WNDPROC pfnEditWndProc
;
331 WNDPROC pfnListBoxWndProc
;
332 WNDPROC pfnMDIClientWndProc
;
333 WNDPROC pfnStaticWndProc
;
334 WNDPROC pfnImeWndProc
;
335 WNDPROC pfnGhostWndProc
;
336 WNDPROC pfnHkINLPCWPSTRUCT
;
337 WNDPROC pfnHkINLPCWPRETSTRUCT
;
338 WNDPROC pfnDispatchHook
;
339 WNDPROC pfnDispatchDefWindowProc
;
340 WNDPROC pfnDispatchMessage
;
341 WNDPROC pfnMDIActivateDlgProc
;
342 } PFNCLIENT
, *PPFNCLIENT
;
345 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
346 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
349 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
351 typedef struct _PFNCLIENTWORKER
353 WNDPROC_EX pfnButtonWndProc
;
354 WNDPROC_EX pfnComboBoxWndProc
;
355 WNDPROC_EX pfnComboListBoxProc
;
356 WNDPROC_EX pfnDialogWndProc
;
357 WNDPROC_EX pfnEditWndProc
;
358 WNDPROC_EX pfnListBoxWndProc
;
359 WNDPROC_EX pfnMDIClientWndProc
;
360 WNDPROC_EX pfnStaticWndProc
;
361 WNDPROC_EX pfnImeWndProc
;
362 WNDPROC_EX pfnGhostWndProc
;
363 WNDPROC_EX pfnCtfHookProc
;
364 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
367 typedef LONG_PTR (NTAPI
*PFN_FNID
)(struct _WND
*, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
369 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
370 #define FNID_FIRST 0x029A
371 #define FNID_SCROLLBAR 0x029A
372 #define FNID_ICONTITLE 0x029B
373 #define FNID_MENU 0x029C
374 #define FNID_DESKTOP 0x029D
375 #define FNID_DEFWINDOWPROC 0x029E
376 #define FNID_SWITCH 0x02A0
377 #define FNID_BUTTON 0x02A1
378 #define FNID_COMBOBOX 0x02A2
379 #define FNID_COMBOLBOX 0x02A3
380 #define FNID_DIALOG 0x02A4
381 #define FNID_EDIT 0x02A5
382 #define FNID_LISTBOX 0x02A6
383 #define FNID_MDICLIENT 0x02A7
384 #define FNID_STATIC 0x02A8
385 #define FNID_IME 0x02A9
386 #define FNID_CALLWNDPROC 0x02AA
387 #define FNID_CALLWNDPROCRET 0x02AB
388 #define FNID_HKINLPCWPEXSTRUCT 0x02AC
389 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AD
390 #define FNID_SENDMESSAGE 0x02B0
391 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
392 #define FNID_SENDMESSAGEWTOOPTION 0x02B1
393 #define FNID_SENDMESSAGETIMEOUT 0x02B2
394 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B4
395 #define FNID_TOOLTIPS 0x02B5
396 #define FNID_UNKNOWN 0x02B6
397 #define FNID_SENDNOTIFYMESSAGE 0x02B7
398 #define FNID_SENDMESSAGECALLBACK 0x02B8
399 #define FNID_LAST 0x02B9
401 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
403 #define FNID_DDEML 0x2000 // Registers DDEML
404 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
405 // Seen during WM_CREATE on error exit too.
407 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
408 #define ICLS_BUTTON 0
410 #define ICLS_STATIC 2
411 #define ICLS_LISTBOX 3
412 #define ICLS_SCROLLBAR 4
413 #define ICLS_COMBOBOX 5
414 #define ICLS_MDICLIENT 6
415 #define ICLS_COMBOLBOX 7
416 #define ICLS_DDEMLEVENT 8
417 #define ICLS_DDEMLMOTHER 9
418 #define ICLS_DDEML16BIT 10
419 #define ICLS_DDEMLCLIENTA 11
420 #define ICLS_DDEMLCLIENTW 12
421 #define ICLS_DDEMLSERVERA 13
422 #define ICLS_DDEMLSERVERW 14
424 #define ICLS_DESKTOP 16
425 #define ICLS_DIALOG 17
427 #define ICLS_SWITCH 19
428 #define ICLS_ICONTITLE 20
429 #define ICLS_TOOLTIPS 21
430 #if (_WIN32_WINNT <= 0x0501)
431 #define ICLS_UNKNOWN 22
432 #define ICLS_NOTUSED 23
434 #define ICLS_SYSSHADOW 22
435 #define ICLS_HWNDMESSAGE 23
436 #define ICLS_UNKNOWN 24
437 #define ICLS_NOTUSED 25
441 #define COLOR_LAST COLOR_MENUBAR
442 #define MAX_MB_STRINGS 11
444 #define SRVINFO_METRICS 0x0020
446 typedef struct tagOEMBITMAPINFO
452 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
454 typedef struct tagMBSTRING
459 } MBSTRING
, *PMBSTRING
;
461 typedef struct tagDPISERVERINFO
463 INT gclBorder
; /* 000 */
464 HFONT hCaptionFont
; /* 004 */
465 HFONT hMsgFont
; /* 008 */
466 INT cxMsgFontChar
; /* 00C */
467 INT cyMsgFontChar
; /* 010 */
468 UINT wMaxBtnSize
; /* 014 */
469 } DPISERVERINFO
, *PDPISERVERINFO
;
471 typedef struct _PERUSERSERVERINFO
473 INT aiSysMet
[SM_CMETRICS
];
474 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
475 COLORREF argbSystem
[COLOR_LAST
+1];
476 HBRUSH ahbrSystem
[COLOR_LAST
+1];
480 DWORD dwLastRITEventTickCount
;
485 UINT ucWheelScrollLines
;
486 UINT ucWheelScrollChars
;
487 INT wMaxLeftOverlapChars
;
488 INT wMaxRightOverlapChars
;
491 TEXTMETRICW tmSysFont
;
492 DPISERVERINFO dpiSystem
;
493 HICON hIconSmWindows
;
496 DWORD dwAsyncKeyCache
;
498 OEMBITMAPINFO oembmi
[93];
507 DWORD dwLastSystemRITEventTickCountUpdate
;
508 ULONG adwDBGTAGFlags
[35];
511 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
513 typedef struct tagSERVERINFO
516 ULONG_PTR cHandleEntries
;
517 PFN_FNID mpFnidPfn
[FNID_NUM
];
518 WNDPROC aStoCidPfn
[7];
519 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
520 PFNCLIENT apfnClientA
;
521 PFNCLIENT apfnClientW
;
522 PFNCLIENTWORKER apfnClientWorker
;
524 ATOM atomSysClass
[ICLS_NOTUSED
+1];
525 DWORD dwDefaultHeapBase
;
526 DWORD dwDefaultHeapSize
;
528 MBSTRING MBStrings
[MAX_MB_STRINGS
];
531 ATOM atomContextHelpIdProp
;
532 ATOM atomFrostedWindowProp
;
533 CHAR acOemToAnsi
[256];
534 CHAR acAnsiToOem
[256];
535 DWORD dwInstalledEventHooks
;
537 } SERVERINFO
, *PSERVERINFO
;
539 #define CTI_INSENDMESSAGE 0x0002
541 typedef struct _CLIENTTHREADINFO
546 WORD fsWakeBitsJournal
;
550 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
552 typedef struct _W32THREADINFO
554 PPROCESSINFO ppi
; /* [KERNEL] */
555 PDESKTOPINFO pDeskInfo
;
557 } W32THREADINFO
, *PW32THREADINFO
;
559 /* Window Client Information structure */
563 typedef struct tagHOOK
565 LIST_ENTRY Chain
; /* Hook chain entry */
566 HHOOK Self
; /* user handle for this hook */
567 struct _ETHREAD
* Thread
; /* Thread owning the hook */
568 int HookId
; /* Hook table index */
569 HOOKPROC Proc
; /* Hook function */
570 BOOLEAN Ansi
; /* Is it an Ansi hook? */
571 ULONG Flags
; /* Some internal flags */
572 UNICODE_STRING ModuleName
; /* Module name for global hooks */
575 typedef struct _CALLBACKWND
579 } CALLBACKWND
, *PCALLBACKWND
;
581 #define CI_CURTHPRHOOK 0x00000010
583 typedef struct _CLIENTINFO
589 DWORD dwCompatFlags2
;
591 PDESKTOPINFO pDeskInfo
;
592 ULONG_PTR ulClientDelta
;
595 CALLBACKWND CallbackWnd
;
597 INT cInDDEMLCallback
;
598 PCLIENTTHREADINFO pClientThreadInfo
;
599 ULONG_PTR dwHookData
;
602 DWORD dwAsyncKeyCache
;
603 DWORD afAsyncKeyState
[2];
604 DWORD afAsyncKeyStateRecentDow
[2];
609 ULONG Win32ClientInfo3
[28];
610 /* It's just a pointer reference not to be used w the structure in user space. */
612 } CLIENTINFO
, *PCLIENTINFO
;
614 /* Make sure it fits exactly into the TEB */
615 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
617 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
619 // Server event activity bits.
620 #define SRV_EVENT_MENU 0x0001
621 #define SRV_EVENT_END_APPLICATION 0x0002
622 #define SRV_EVENT_RUNNING 0x0004
623 #define SRV_EVENT_NAMECHANGE 0x0008
624 #define SRV_EVENT_VALUECHANGE 0x0010
625 #define SRV_EVENT_STATECHANGE 0x0020
626 #define SRV_EVENT_LOCATIONCHANGE 0x0040
627 #define SRV_EVENT_CREATE 0x8000
629 typedef struct _PROPLISTITEM
633 } PROPLISTITEM
, *PPROPLISTITEM
;
635 typedef struct _PROPERTY
637 LIST_ENTRY PropListEntry
;
640 } PROPERTY
, *PPROPERTY
;
642 typedef struct _BROADCASTPARM
649 } BROADCASTPARM
, *PBROADCASTPARM
;
651 PW32THREADINFO
GetW32ThreadInfo(VOID
);
652 PPROCESSINFO
GetW32ProcessInfo(VOID
);
654 typedef struct _WNDMSG
660 typedef struct _SHAREDINFO
662 PSERVERINFO psi
; // global Server Info
663 PVOID aheList
; // Handle Entry List
664 PVOID pDispInfo
; // global PDISPLAYINFO pointer
665 ULONG_PTR ulSharedDelta
; // Heap delta
666 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
667 WNDMSG DefWindowMsgs
;
668 WNDMSG DefWindowSpecMsgs
;
669 } SHAREDINFO
, *PSHAREDINFO
;
671 typedef struct _USERCONNECT
674 ULONG ulCurrentVersion
;
675 DWORD dwDispatchCount
;
677 } USERCONNECT
, *PUSERCONNECT
;
680 // Non SDK Window Message types.
682 #define WM_CLIENTSHUTDOWN 59
683 #define WM_COPYGLOBALDATA 73
684 #define WM_SYSTIMER 280
685 #define WM_POPUPSYSTEMMENU 787
686 #define WM_CBT 1023 // ReactOS only.
687 #define WM_MAXIMUM 0x0001FFFF
690 // Non SDK DCE types.
692 #define DCX_USESTYLE 0x00010000
693 #define DCX_KEEPCLIPRGN 0x00040000
696 // Non SDK Queue message types.
698 #define QS_SMRESULT 0x8000
702 NtUserAssociateInputContext(
733 NtUserCtxDisplayIOCtl(
752 NtUserDrawMenuBarTemp(
761 NtUserEnableMenuItem(
772 NtUserGetMenuBarInfo(
786 NtUserGetMenuItemRect(
800 NtUserHiliteMenuItem(
808 NtUserMenuItemFromPoint(
830 NtUserSetMenuContextHelpId(
832 DWORD dwContextHelpId
);
836 NtUserSetMenuDefaultItem(
843 NtUserSetMenuFlagRtoL(
854 NtUserThunkedMenuInfo(
860 NtUserThunkedMenuItemInfo(
865 LPMENUITEMINFOW lpmii
,
866 PUNICODE_STRING lpszCaption
);
870 NtUserTrackPopupMenuEx(
880 NtUserActivateKeyboardLayout(
886 NtUserAlterWindowStyle(
893 NtUserAttachThreadInput(
899 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
934 PULONG pRequiredSize
);
944 /* apfnSimpleCall indices from Windows XP SP 2 */
945 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
946 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
948 enum SimpleCallRoutines
950 NOPARAM_ROUTINE_CREATEMENU
,
951 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
952 #if (WIN32K_VERSION >= NTDDI_VISTA)
953 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
954 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
955 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
956 NOPARAM_ROUTINE_DESTROY_CARET
,
958 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
959 #if (WIN32K_VERSION < NTDDI_VISTA)
960 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
961 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
962 NOPARAM_ROUTINE_DESTROY_CARET
,
964 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
965 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
966 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
967 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
968 #if (WIN32K_VERSION >= NTDDI_VISTA)
969 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
971 NOPARAM_ROUTINE_GETREMOTEPROCID
,
973 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
974 NOPARAM_ROUTINE_LOADCURSANDICOS
,
975 #if (WIN32K_VERSION >= NTDDI_VISTA)
976 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
977 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
979 NOPARAM_ROUTINE_RELEASECAPTURE
,
980 NOPARAM_ROUTINE_RESETDBLCLICK
,
981 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
982 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
983 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
984 NOPARAM_ROUTINE_REMOTELOGOFF
,
985 NOPARAM_ROUTINE_REMOTENTSECURITY
,
986 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
987 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
988 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
989 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
990 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
991 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
992 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
993 #if (WIN32K_VERSION >= NTDDI_VISTA)
994 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
996 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
997 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
998 #if (WIN32K_VERSION < NTDDI_VISTA)
999 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1001 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1002 #if (WIN32K_VERSION >= NTDDI_VISTA)
1003 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1005 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1006 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1007 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1008 #if (WIN32K_VERSION < NTDDI_VISTA)
1009 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1011 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1012 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1013 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1014 #if (WIN32K_VERSION < NTDDI_VISTA)
1015 ONEPARAM_ROUTINE_GETCURSORPOS
,
1017 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1018 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1019 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1020 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1021 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1022 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1023 #if (WIN32K_VERSION < NTDDI_VISTA)
1024 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1026 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1027 ONEPARAM_ROUTINE_LOADFONTS
,
1028 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1029 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1030 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1031 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1032 #if (WIN32K_VERSION < NTDDI_VISTA)
1033 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1035 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1036 ONEPARAM_ROUTINE_REGISTERLPK
,
1037 #if (WIN32K_VERSION >= NTDDI_VISTA)
1038 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1040 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1041 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1042 ONEPARAM_ROUTINE_RELEASEDC
,
1043 #if (WIN32K_VERSION >= NTDDI_VISTA)
1044 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1046 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1047 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1048 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1049 #if (WIN32K_VERSION < NTDDI_VISTA)
1050 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1052 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1053 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1054 #if (WIN32K_VERSION >= NTDDI_VISTA)
1055 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1057 ONEPARAM_ROUTINE_SHOWCURSOR
,
1058 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1059 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1060 X_ROUTINE_WOWMODULEUNLOAD
,
1061 #if (WIN32K_VERSION < NTDDI_VISTA)
1062 X_ROUTINE_REMOTENOTIFY
,
1064 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1065 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1066 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1067 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1068 HWND_ROUTINE_SETMSGBOX
,
1069 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1070 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1071 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1072 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1073 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1074 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1075 HWNDPARAM_ROUTINE_SETVISIBLE
,
1076 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1077 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1078 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1079 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1080 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1081 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1082 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1083 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1084 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1085 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1086 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1087 HWNDLOCK_ROUTINE_SETSYSMENU
,
1088 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1089 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1090 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1091 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1092 TWOPARAM_ROUTINE_REDRAWTITLE
,
1093 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1094 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1095 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1096 TWOPARAM_ROUTINE_VALIDATERGN
,
1097 #if (WIN32K_VERSION >= NTDDI_VISTA)
1098 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1099 TWOPARAM_ROUTINE_GETCURSORPOS
,
1101 TWOPARAM_ROUTINE_GETHDEVNAME
,
1102 TWOPARAM_ROUTINE_INITANSIOEM
,
1103 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1104 #if (WIN32K_VERSION >= NTDDI_VISTA)
1105 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1107 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1108 #if (WIN32K_VERSION >= NTDDI_VISTA)
1109 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1111 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1113 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1114 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1115 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1116 TWOPARAM_ROUTINE_SETCARETPOS
,
1117 TWOPARAM_ROUTINE_SETCURSORPOS
,
1118 #if (WIN32K_VERSION >= NTDDI_VISTA)
1119 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1121 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1122 TWOPARAM_ROUTINE_WOWCLEANUP
1145 NtUserCallHwndParam(
1152 NtUserCallHwndParamLock(
1159 NtUserCallMsgFilter(
1165 NtUserCallNextHookEx(
1191 NtUserChangeClipboardChain(
1197 NtUserChangeDisplaySettings(
1198 PUNICODE_STRING lpszDeviceName
,
1199 LPDEVMODEW lpDevMode
,
1206 NtUserCheckDesktopByThreadId(
1211 NtUserCheckWindowThreadDesktop(
1218 NtUserCheckImeHotKey(
1223 NtUserChildWindowFromPointEx(
1236 NtUserCloseClipboard(VOID
);
1245 NtUserCloseWindowStation(
1250 NtUserConsoleControl(
1257 NtUserConvertMemHandle(
1263 NtUserCopyAcceleratorTable(
1270 NtUserCountClipboardFormats(VOID
);
1274 NtUserCreateAcceleratorTable(
1276 SIZE_T EntriesCount
);
1288 NtUserCreateDesktop(
1289 POBJECT_ATTRIBUTES poa
,
1290 PUNICODE_STRING lpszDesktopDevice
,
1293 ACCESS_MASK dwDesiredAccess
);
1297 NtUserCreateInputContext(
1302 NtUserCreateLocalMemHandle(
1310 NtUserCreateWindowEx(
1312 PUNICODE_STRING lpClassName
,
1313 PUNICODE_STRING lpWindowName
,
1321 HINSTANCE hInstance
,
1324 BOOL bUnicodeWindow
,
1329 NtUserCreateWindowEx(
1331 PLARGE_STRING plstrClassName
,
1332 PLARGE_STRING plstrClsVesrion
,
1333 PLARGE_STRING plstrWindowName
,
1341 HINSTANCE hInstance
,
1343 DWORD dwFlags
, // |= 1 == Ansi
1349 NtUserCreateWindowStation(
1350 PUNICODE_STRING lpszWindowStationName
,
1351 ACCESS_MASK dwDesiredAccess
,
1352 LPSECURITY_ATTRIBUTES lpSecurity
,
1360 NtUserDdeGetQualityOfService(
1363 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1367 NtUserDdeInitialize(
1376 NtUserDdeSetQualityOfService(
1378 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1379 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1382 NtUserDeferWindowPos(HDWP WinPosInfo
,
1384 HWND WndInsertAfter
,
1391 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1395 NtUserDestroyAcceleratorTable(
1400 NtUserDestroyCursor(
1406 NtUserDestroyInputContext(
1410 NtUserDestroyWindow(HWND Wnd
);
1414 NtUserDisableThreadIme(
1419 NtUserDispatchMessage(PMSG pMsg
);
1438 NtUserDrawAnimatedRects(
1454 NtUserDrawCaptionTemp(
1460 const PUNICODE_STRING str
,
1473 HBRUSH hbrFlickerFreeDraw
,
1480 NtUserEmptyClipboard(VOID
);
1484 NtUserEnableScrollBar(
1491 NtUserEndDeferWindowPosEx(
1496 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1500 NtUserEnumDisplayDevices (
1501 PUNICODE_STRING lpDevice
, /* device name */
1502 DWORD iDevNum
, /* display device */
1503 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1504 DWORD dwFlags
); /* reserved */
1508 NtUserEnumDisplayMonitors (
1511 MONITORENUMPROC lpfnEnum,
1513 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1516 NtUserEnumDisplayMonitors(
1517 OPTIONAL IN HDC hDC
,
1518 OPTIONAL IN LPCRECT pRect
,
1519 OPTIONAL OUT HMONITOR
*hMonitorList
,
1520 OPTIONAL OUT LPRECT monitorRectList
,
1521 OPTIONAL IN DWORD listSize
);
1526 NtUserEnumDisplaySettings(
1527 PUNICODE_STRING lpszDeviceName
,
1529 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1539 NtUserExcludeUpdateRgn(
1553 NtUserFindExistingCursorIcon(
1563 HWND hwndChildAfter
,
1564 PUNICODE_STRING ucClassName
,
1565 PUNICODE_STRING ucWindowName
,
1571 NtUserFlashWindowEx(
1572 IN PFLASHWINFO pfwi
);
1576 NtUserGetAltTabInfo(
1585 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1589 NtUserGetAppImeLevel(
1594 NtUserGetAsyncKeyState(
1605 NtUserGetCaretBlinkTime(VOID
);
1613 NtUserGetClassInfo(HINSTANCE hInstance
,
1614 PUNICODE_STRING ClassName
,
1616 LPWSTR
*ppszMenuName
,
1621 NtUserGetClassName(HWND hWnd
,
1622 PUNICODE_STRING ClassName
,
1624 #if 0 // Real NtUserGetClassName
1627 NtUserGetClassName(HWND hWnd
,
1628 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1629 PUNICODE_STRING ClassName
);
1634 NtUserGetClipboardData(
1640 NtUserGetClipboardFormatName(
1642 PUNICODE_STRING FormatName
,
1647 NtUserGetClipboardOwner(VOID
);
1651 NtUserGetClipboardSequenceNumber(VOID
);
1655 NtUserGetClipboardViewer(VOID
);
1659 NtUserGetClipCursor(
1664 NtUserGetComboBoxInfo(
1666 PCOMBOBOXINFO pcbi
);
1670 NtUserGetControlBrush(
1677 NtUserGetControlColor(
1692 NtUserGetCursorFrameInfo(
1700 NtUserGetCursorInfo(
1717 NtUserGetDoubleClickTime(VOID
);
1721 NtUserGetForegroundWindow(VOID
);
1725 NtUserGetGuiResources(
1731 NtUserGetGUIThreadInfo(
1733 LPGUITHREADINFO lpgui
);
1740 PUNICODE_STRING lpInstName
,
1741 PUNICODE_STRING lpResName
,
1769 NtUserGetInternalWindowPos(
1776 NtUserGetKeyboardLayout(
1781 NtUserGetKeyboardLayoutList(
1787 NtUserGetKeyboardLayoutName(
1792 NtUserGetKeyboardState(
1797 NtUserGetKeyboardType(
1802 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1811 NtUserGetLayeredWindowAttributes(
1819 NtUserGetListBoxInfo(
1822 typedef struct tagNTUSERGETMESSAGEINFO
1826 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1831 PNTUSERGETMESSAGEINFO MsgInfo
,
1834 UINT wMsgFilterMax
);
1838 NtUserGetMouseMovePointsEx(
1840 LPMOUSEMOVEPOINT lppt
,
1841 LPMOUSEMOVEPOINT lpptBuf
,
1847 NtUserGetObjectInformation(
1850 PVOID pvInformation
,
1852 PDWORD nLengthNeeded
);
1856 NtUserGetOpenClipboardWindow(VOID
);
1860 NtUserGetPriorityClipboardFormat(
1861 UINT
*paFormatPriorityList
,
1866 NtUserGetProcessWindowStation(VOID
);
1870 NtUserGetRawInputBuffer(
1877 NtUserGetRawInputData(
1878 HRAWINPUT hRawInput
,
1886 NtUserGetRawInputDeviceInfo(
1894 NtUserGetRawInputDeviceList(
1895 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1896 PUINT puiNumDevices
,
1901 NtUserGetRegisteredRawInputDevices(
1902 PRAWINPUTDEVICE pRawInputDevices
,
1903 PUINT puiNumDevices
,
1908 NtUserGetScrollBarInfo(
1911 PSCROLLBARINFO psbi
);
1915 NtUserGetThreadDesktop(
1920 enum ThreadStateRoutines
1922 THREADSTATE_GETTHREADINFO
,
1923 THREADSTATE_INSENDMESSAGE
,
1924 THREADSTATE_FOCUSWINDOW
,
1925 THREADSTATE_ACTIVEWINDOW
,
1926 THREADSTATE_CAPTUREWINDOW
,
1927 THREADSTATE_PROGMANWINDOW
,
1928 THREADSTATE_TASKMANWINDOW
,
1929 THREADSTATE_GETMESSAGETIME
,
1930 THREADSTATE_GETINPUTSTATE
1935 NtUserGetThreadState(
1940 NtUserGetTitleBarInfo(
1945 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
1961 NtUserGetWindowPlacement(
1963 WINDOWPLACEMENT
*lpwndpl
);
1973 NtUserHardErrorControl(
1980 NtUserImpersonateDdeClientWindow(
1988 HANDLE hPowerRequestEvent
,
1989 HANDLE hMediaRequestEvent
);
1993 NtUserInitializeClientPfnArrays(
1994 PPFNCLIENT pfnClientA
,
1995 PPFNCLIENT pfnClientW
,
1996 PPFNCLIENTWORKER pfnClientWorker
,
1997 HINSTANCE hmodUser
);
2017 NtUserInternalGetWindowText(
2024 NtUserInvalidateRect(
2031 NtUserInvalidateRgn(
2038 NtUserIsClipboardFormatAvailable(
2051 NtUserLoadKeyboardLayoutEx(
2054 IN PUNICODE_STRING puszKeyboardName
,
2056 IN PUNICODE_STRING puszKLID
,
2062 NtUserLockWindowStation(
2063 HWINSTA hWindowStation
);
2067 NtUserLockWindowUpdate(
2072 NtUserLockWorkStation(VOID
);
2076 NtUserMapVirtualKeyEx( UINT keyCode
,
2087 ULONG_PTR ResultInfo
,
2088 DWORD dwType
, // FNID_XX types
2095 UINT cmd
, // Wine SW_ commands
2100 NtUserMNDragLeave(VOID
);
2110 NtUserModifyUserStartupInfoFlags(
2127 NtUserNotifyIMEStatus(
2134 NtUserNotifyProcessCreate(
2142 NtUserNotifyWinEvent(
2150 NtUserOpenClipboard(
2157 PUNICODE_STRING lpszDesktopName
,
2159 ACCESS_MASK dwDesiredAccess
);
2163 NtUserOpenInputDesktop(
2166 ACCESS_MASK dwDesiredAccess
);
2170 NtUserOpenWindowStation(
2171 PUNICODE_STRING lpszWindowStationName
,
2172 ACCESS_MASK dwDesiredAccess
);
2192 PNTUSERGETMESSAGEINFO MsgInfo
,
2208 NtUserPostThreadMessage(
2223 NtUserProcessConnect(
2225 OUT PUSERCONNECT pUserConnect
,
2226 IN DWORD dwSize
); // sizeof(USERCONNECT)
2230 NtUserQueryInformationThread(
2239 NtUserQueryInputContext(
2245 NtUserQuerySendMessage(
2250 NtUserQueryUserCounters(
2257 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2258 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2259 #define QUERY_WINDOW_ACTIVE 0x02
2260 #define QUERY_WINDOW_FOCUS 0x03
2261 #define QUERY_WINDOW_ISHUNG 0x04
2270 NtUserRealInternalGetMessage(
2280 NtUserRealChildWindowFromPoint(
2287 NtUserRealWaitMessageEx(
2296 CONST RECT
*lprcUpdate
,
2303 NtUserRegisterClassExWOW(
2305 PUNICODE_STRING pustrClassName
,
2306 PUNICODE_STRING pustrCNVersion
,
2307 PCLSMENUNAME pClassMenuName
,
2314 NtUserRegisterRawInputDevices(
2315 IN PCRAWINPUTDEVICE pRawInputDevices
,
2316 IN UINT uiNumDevices
,
2321 NtUserRegisterUserApiHook(
2327 NtUserRegisterHotKey(HWND hWnd
,
2334 NtUserRegisterTasklist(
2338 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2342 NtUserRemoteConnect(
2349 NtUserRemoteRedrawRectangle(
2357 NtUserRemoteRedrawScreen(VOID
);
2361 NtUserRemoteStopScreenUpdates(VOID
);
2364 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2368 NtUserResolveDesktop(
2376 NtUserResolveDesktopForWOW(
2393 CONST RECT
*lprcScroll
,
2394 CONST RECT
*lprcClip
,
2399 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2400 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2410 NtUserSetActiveWindow(HWND Wnd
);
2414 NtUserSetAppImeLevel(
2419 NtUserSetCapture(HWND Wnd
);
2425 ULONG_PTR dwNewLong
,
2437 NtUserSetClipboardData(
2444 NtUserSetClipboardViewer(
2445 HWND hWndNewViewer
);
2449 NtUserSelectPalette(
2452 BOOL ForceBackground
2457 NtUserSetConsoleReserveKeys(
2468 NtUserSetCursorContents(
2470 PICONINFO IconInfo
);
2474 NtUserSetCursorIconData(
2509 NtUserSetImeOwnerWindow(
2515 NtUserSetInformationProcess(
2523 NtUserSetInformationThread(
2531 NtUserSetInternalWindowPos(
2539 NtUserSetKeyboardState(
2544 NtUserSetLayeredWindowAttributes(
2552 NtUserSetLogonNotifyWindow(
2557 NtUserSetObjectInformation(
2560 PVOID pvInformation
,
2567 HWND hWndNewParent
);
2571 NtUserSetProcessWindowStation(
2572 HWINSTA hWindowStation
);
2575 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2585 NtUserSetScrollInfo(
2593 NtUserSetShellWindowEx(
2595 HWND hwndShellListView
);
2601 IN CONST INT
*lpaElements
,
2602 IN CONST COLORREF
*lpaRgbValues
,
2607 NtUserSetSystemCursor(
2613 NtUserSetThreadDesktop(
2618 NtUserSetThreadState(
2624 NtUserSetSystemTimer
2629 TIMERPROC lpTimerFunc
2634 NtUserSetThreadLayoutHandles(
2645 TIMERPROC lpTimerFunc
2650 NtUserSetWindowFNID(
2656 NtUserSetWindowLong(
2664 NtUserSetWindowPlacement(
2666 WINDOWPLACEMENT
*lpwndpl
);
2669 NTAPI
NtUserSetWindowPos(
2671 HWND hWndInsertAfter
,
2688 NtUserSetWindowsHookAW(
2695 NtUserSetWindowsHookEx(
2697 PUNICODE_STRING ModuleName
,
2705 NtUserSetWindowStationUser(
2712 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2716 NtUserSetWinEventHook(
2719 HMODULE hmodWinEventProc
,
2720 PUNICODE_STRING puString
,
2721 WINEVENTPROC lpfnWinEventProc
,
2738 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2748 NtUserShowWindowAsync(
2754 NtUserSoundSentry(VOID
);
2758 NtUserSwitchDesktop(
2763 NtUserSystemParametersInfo(
2771 NtUserTestForInteractiveUser(
2787 NtUserTrackMouseEvent(
2788 LPTRACKMOUSEEVENT lpEventTrack
);
2792 NtUserTranslateAccelerator(
2799 NtUserTranslateMessage(
2805 NtUserUnhookWindowsHookEx(
2810 NtUserUnhookWinEvent(
2811 HWINEVENTHOOK hWinEventHook
);
2815 NtUserUnloadKeyboardLayout(
2820 NtUserUnlockWindowStation(
2821 HWINSTA hWindowStation
);
2825 NtUserUnregisterClass(
2826 PUNICODE_STRING ClassNameOrAtom
,
2827 HINSTANCE hInstance
,
2828 PCLSMENUNAME pClassMenuName
);
2832 NtUserUnregisterHotKey(HWND hWnd
,
2837 NtUserUnregisterUserApiHook(VOID
);
2841 NtUserUpdateInputContext(
2848 NtUserUpdateInstance(
2855 NtUserUpdateLayeredWindow(
2863 BLENDFUNCTION
*pblend
,
2869 NtUserUpdatePerUserSystemParameters(
2875 NtUserUserHandleGrantAccess(
2876 IN HANDLE hUserHandle
,
2882 NtUserValidateHandleSecure(
2890 CONST RECT
*lpRect
);
2894 NtUserValidateTimerCallback(
2908 NtUserWaitForInputIdle(
2910 IN DWORD dwMilliseconds
,
2911 IN BOOL Unknown2
); // Always FALSE
2915 NtUserWaitForMsgAndEvent(
2920 NtUserWaitMessage(VOID
);
2924 NtUserWin32PoolAllocationStats(
2934 NtUserWindowFromPhysicalPoint(
2939 NtUserWindowFromPoint(
2945 NtUserYieldTask(VOID
);
2947 /* lParam of DDE messages */
2948 typedef struct tagKMDDEEXECUTEDATA
2952 /* BYTE Data[DataSize] */
2953 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
2955 typedef struct tagKMDDELPARAM
2967 } KMDDELPARAM
, *PKMDDELPARAM
;
2974 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
2977 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
2978 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
2979 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
2980 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
2981 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
2982 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
2983 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
2984 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
2985 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
2986 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
2987 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
2988 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
2989 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
2990 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
2991 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
2992 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
2993 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
2994 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
2995 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
2996 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
2997 #define MSQ_STATE_CAPTURE 0x1
2998 #define MSQ_STATE_ACTIVE 0x2
2999 #define MSQ_STATE_FOCUS 0x3
3000 #define MSQ_STATE_MENUOWNER 0x4
3001 #define MSQ_STATE_MOVESIZE 0x5
3002 #define MSQ_STATE_CARET 0x6
3003 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
3004 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3005 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
3006 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3007 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
3008 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
3009 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
3010 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3014 NtUserBuildMenuItemList(
3020 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3023 NtUserCreateCursorIconHandle(
3028 /* Should be done in usermode */
3031 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3035 NtUserGetMenuDefaultItem(
3042 NtUserGetLastInputInfo(
3043 PLASTINPUTINFO plii
);
3047 NtUserGetMinMaxInfo(
3049 MINMAXINFO
*MinMaxInfo
,
3054 NtUserGetMonitorInfo(
3055 IN HMONITOR hMonitor
,
3056 OUT LPMONITORINFO pMonitorInfo
);
3058 /* Should be done in usermode */
3061 NtUserGetScrollInfo(
3068 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
3070 /* Should be done in usermode */
3073 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
3076 /* (other FocusedItem values give the position of the focused item) */
3077 #define NO_SELECTED_ITEM 0xffff
3079 typedef struct tagROSMENUINFO
3081 /* ----------- MENUINFO ----------- */
3087 DWORD dwContextHelpID
;
3088 ULONG_PTR dwMenuData
;
3089 /* ----------- Extra ----------- */
3090 HMENU Self
; /* Handle of this menu */
3091 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3092 UINT FocusedItem
; /* Currently focused item */
3093 UINT MenuItemCount
; /* Number of items in the menu */
3094 HWND Wnd
; /* Window containing the menu */
3095 WORD Width
; /* Width of the whole menu */
3096 WORD Height
; /* Height of the whole menu */
3097 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3098 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3099 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3100 } ROSMENUINFO
, *PROSMENUINFO
;
3112 typedef struct tagROSMENUITEMINFO
3114 /* ----------- MENUITEMINFOW ----------- */
3121 HBITMAP hbmpChecked
;
3122 HBITMAP hbmpUnchecked
;
3127 /* ----------- Extra ----------- */
3128 RECT Rect
; /* Item area (relative to menu window) */
3129 UINT XTab
; /* X position of text after Tab */
3130 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3131 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3139 PROSMENUITEMINFO lpmii
,
3145 NtUserMonitorFromPoint(
3151 NtUserMonitorFromRect(
3157 NtUserMonitorFromWindow(
3162 typedef struct tagNTUSERSENDMESSAGEINFO
3164 BOOL HandledByKernel
;
3167 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3169 /* use NtUserMessageCall */
3171 NtUserSendMessage(HWND hWnd
,
3175 PNTUSERSENDMESSAGEINFO Info
);
3177 /* use NtUserMessageCall */
3179 NtUserSendMessageTimeout(HWND hWnd
,
3186 PNTUSERSENDMESSAGEINFO Info
);
3188 typedef struct _SETSCROLLBARINFO
3192 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3193 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3197 NtUserSetScrollBarInfo(
3200 SETSCROLLBARINFO
*info
);
3204 #endif /* __WIN32K_NTUSER_H */