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 typedef struct _DESKTOPINFO
55 UINT LastInputWasKbd
: 1;
59 WCHAR szDesktopName
[1];
60 } DESKTOPINFO
, *PDESKTOPINFO
;
62 #define CTI_INSENDMESSAGE 0x0002
64 typedef struct _CLIENTTHREADINFO
69 WORD fsWakeBitsJournal
;
71 ULONG tickLastMsgChecked
;
73 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
75 typedef struct _W32THREADINFO
77 PPROCESSINFO ppi
; /* [KERNEL] */
78 PDESKTOPINFO pDeskInfo
;
80 } W32THREADINFO
, *PW32THREADINFO
;
88 typedef struct _THRDESKHEAD
93 struct _DESKTOP
*rpdesk
;
95 } THRDESKHEAD
, *PTHRDESKHEAD
;
97 typedef struct _PROCDESKHEAD
102 struct _DESKTOP
*rpdesk
;
104 } PROCDESKHEAD
, *PPROCDESKHEAD
;
106 #define UserHMGetHandle(obj) ((obj)->head.h)
108 /* Window Client Information structure */
111 typedef struct tagHOOK
114 LIST_ENTRY Chain
; /* Hook chain entry */
115 struct _ETHREAD
* Thread
; /* Thread owning the hook */
116 int HookId
; /* Hook table index */
117 HOOKPROC Proc
; /* Hook function */
118 BOOLEAN Ansi
; /* Is it an Ansi hook? */
119 ULONG Flags
; /* Some internal flags */
120 UNICODE_STRING ModuleName
; /* Module name for global hooks */
123 typedef struct _CALLBACKWND
127 } CALLBACKWND
, *PCALLBACKWND
;
129 #define CI_CURTHPRHOOK 0x00000010
131 typedef struct _CLIENTINFO
137 DWORD dwCompatFlags2
;
139 PDESKTOPINFO pDeskInfo
;
140 ULONG_PTR ulClientDelta
;
143 CALLBACKWND CallbackWnd
;
145 INT cInDDEMLCallback
;
146 PCLIENTTHREADINFO pClientThreadInfo
;
147 ULONG_PTR dwHookData
;
150 DWORD dwAsyncKeyCache
;
151 DWORD afAsyncKeyState
[2];
152 DWORD afAsyncKeyStateRecentDow
[2];
157 ULONG Win32ClientInfo3
[28];
158 /* It's just a pointer reference not to be used w the structure in user space. */
160 } CLIENTINFO
, *PCLIENTINFO
;
162 /* Make sure it fits exactly into the TEB */
163 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
165 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
167 typedef struct _REGISTER_SYSCLASS
169 /* This is a reactos specific class used to initialize the
170 system window classes during user32 initialization */
171 UNICODE_STRING ClassName
;
179 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
181 typedef struct _CLSMENUNAME
183 LPSTR pszClientAnsiMenuName
;
184 LPWSTR pwszClientUnicodeMenuName
;
185 PUNICODE_STRING pusMenuName
;
186 } CLSMENUNAME
, *PCLSMENUNAME
;
188 typedef struct tagSBDATA
196 typedef struct tagSBINFO
205 UserGetCPDU2A
= 0x01,
206 UserGetCPDA2U
= 0X02,
207 UserGetCPDClass
= 0X10,
208 UserGetCPDWindow
= 0X20,
209 UserGetCPDDialog
= 0X40,
210 UserGetCPDWndtoCls
= 0X80
213 typedef struct _CALLPROCDATA
216 struct _CALLPROCDATA
*spcpdNext
;
217 WNDPROC pfnClientPrevious
;
223 } CALLPROCDATA
, *PCALLPROCDATA
;
225 #define CSF_SERVERSIDEPROC 0x0001
226 #define CSF_ANSIPROC 0x0002
227 #define CSF_WOWDEFERDESTROY 0x0004
228 #define CSF_SYSTEMCLASS 0x0008
229 #define CSF_WOWCLASS 0x0010
230 #define CSF_WOWEXTRA 0x0020
231 #define CSF_CACHEDSMICON 0x0040
232 #define CSF_WIN40COMPAT 0x0080
236 struct _CLS
*pclsNext
;
237 RTL_ATOM atomClassName
;
238 ATOM atomNVClassName
;
240 struct _DESKTOP
*rpdeskParent
;
243 PSTR lpszClientAnsiMenuName
; // For client use
244 PWSTR lpszClientUnicodeMenuName
; // " " "
245 PCALLPROCDATA spcpdFirst
;
246 struct _CLS
*pclsBase
;
247 struct _CLS
*pclsClone
;
248 ULONG cWndReferenceCount
;
253 WNDPROC WndProcExtra
;
254 PCALLPROCDATA CallProc
;
259 HANDLE hIcon
; /* FIXME - Use pointer! */
261 HANDLE hCursor
; /* FIXME - Use pointer! */
263 HBRUSH hbrBackground
;
264 PWSTR lpszMenuName
; // kernel use
265 PSTR lpszAnsiClassName
; // "
266 HANDLE hIconSm
; /* FIXME - Use pointer! */
269 UINT Destroying
: 1; // CSF_WOWDEFERDESTROY
270 UINT Unicode
: 1; // !CSF_ANSIPROC
271 UINT System
: 1; // CSF_SYSTEMCLASS
272 UINT Global
: 1; // CS_GLOBALCLASS
273 UINT MenuNameIsString
: 1;
278 // State Flags !Not Implemented!
279 #define WNDS_HASMENU 0X00000001
280 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
281 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
282 #define WNDS_HASCAPTION 0X00000008
283 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
284 #define WNDS_MSGBOX 0X00000020
285 #define WNDS_ACTIVEFRAME 0X00000040
286 #define WNDS_HASSPB 0X00000080
287 #define WNDS_NONCPAINT 0X00000100
288 #define WNDS_SENDERASEBACKGROUND 0X00000200
289 #define WNDS_ERASEBACKGROUND 0X00000400
290 #define WNDS_SENDNCPAINT 0X00000800
291 #define WNDS_INTERNALPAINT 0X00001000
292 #define WNDS_UPDATEDIRTY 0X00002000
293 #define WNDS_HIDDENPOPUP 0X00004000
294 #define WNDS_FORCEMENUDRAW 0X00008000
295 #define WNDS_DIALOGWINDOW 0X00010000
296 #define WNDS_HASCREATESTRUCTNAME 0X00020000
297 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
298 #define WNDS_ANSIWINDOWPROC 0x00080000
299 #define WNDS_BEGINGACTIVATED 0x00100000
300 #define WNDS_HASPALETTE 0x00200000
301 #define WNDS_PAINTNOTPROCESSED 0x00400000
302 #define WNDS_SYNCPAINTPENDING 0x00800000
303 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
304 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
305 #define WNDS_TOGGLETOPMOST 0x04000000
306 #define WNDS_REDRAWIFHUNG 0x08000000
307 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
308 #define WNDS_ANSICREATOR 0x20000000
309 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
310 #define WNDS_DESTROYED 0x80000000
312 // State2 Flags !Not Implemented!
313 #define WNDS2_WMPAINTSENT 0X00000001
314 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
315 #define WNDS2_STARTPAINT 0X00000004
316 #define WNDS2_OLDUI 0X00000008
317 #define WNDS2_HASCLIENTEDGE 0X00000010
318 #define WNDS2_BOTTOMMOST 0X00000020
319 #define WNDS2_FULLSCREEN 0X00000040
320 #define WNDS2_INDESTROY 0X00000080
321 #define WNDS2_WIN31COMPAT 0X00000100
322 #define WNDS2_WIN40COMPAT 0X00000200
323 #define WNDS2_WIN50COMPAT 0X00000400
324 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
325 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
326 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
327 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
328 #define WNDS2_HELPBUTTONDOWN 0X00008000
329 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
330 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
331 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
332 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
333 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
334 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
335 #define WNDS2_FORCENCPAINT 0X00400000
336 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
337 #define WNDS2_FULLSCREENMODE 0X01000000
338 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
339 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
340 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
341 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
342 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
344 /* Non SDK ExStyles */
345 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
346 #define WS_EX_UISTATEACTIVE 0x04000000
347 #define WS_EX_REDIRECTED 0X20000000
348 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
349 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
352 #define WS_MAXIMIZED 0X01000000
353 #define WS_MINIMIZED 0X20000000
356 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
357 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
358 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
359 #define WS_EX2_LINKED 0X00000008
360 #define WS_EX2_LAYEREDFORDWM 0X00000010
361 #define WS_EX2_LAYEREDLIMBO 0X00000020
362 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
363 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
364 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
365 #define WS_EX2_HASOVERLAY 0X00000200
366 #define WS_EX2_CONSOLEWINDOW 0X00000400
367 #define WS_EX2_CHILDNOACTIVATE 0X00000800
374 /* Extended style. */
378 /* Handle of the module that created the window. */
381 struct _WND
*spwndNext
;
382 struct _WND
*spwndPrev
;
383 struct _WND
*spwndParent
;
384 struct _WND
*spwndChild
;
385 struct _WND
*spwndOwner
;
391 /* Pointer to a call procedure handle */
392 PCALLPROCDATA CallProc
;
393 /* Extra Wnd proc (windows of system classes) */
394 WNDPROC WndProcExtra
;
397 /* Pointer to the window class. */
400 /* Property list head.*/
401 LIST_ENTRY PropListHead
;
405 /* system menu handle. */
408 /* Window menu handle or window id */
409 UINT IDMenu
; // Use spmenu
414 UNICODE_STRING strName
;
415 /* Size of the extra data associated with the window. */
418 struct _WND
*spwndLastActive
;
419 //HIMC hImc; // Input context associated with this window.
421 //PACTIVATION_CONTEXT pActCtx;
422 //PD3DMATRIX pTransForm;
423 struct _WND
*spwndClipboardListener
;
433 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
434 /* Indicates whether the window is derived from a system class */
435 UINT IsSystem
: 1; // System class ?
436 UINT InternalPosInitialized
: 1;
437 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
438 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
441 typedef struct _PFNCLIENT
443 WNDPROC pfnScrollBarWndProc
;
444 WNDPROC pfnTitleWndProc
;
445 WNDPROC pfnMenuWndProc
;
446 WNDPROC pfnDesktopWndProc
;
447 WNDPROC pfnDefWindowProc
;
448 WNDPROC pfnMessageWindowProc
;
449 WNDPROC pfnSwitchWindowProc
;
450 WNDPROC pfnButtonWndProc
;
451 WNDPROC pfnComboBoxWndProc
;
452 WNDPROC pfnComboListBoxProc
;
453 WNDPROC pfnDialogWndProc
;
454 WNDPROC pfnEditWndProc
;
455 WNDPROC pfnListBoxWndProc
;
456 WNDPROC pfnMDIClientWndProc
;
457 WNDPROC pfnStaticWndProc
;
458 WNDPROC pfnImeWndProc
;
459 WNDPROC pfnGhostWndProc
;
460 WNDPROC pfnHkINLPCWPSTRUCT
;
461 WNDPROC pfnHkINLPCWPRETSTRUCT
;
462 WNDPROC pfnDispatchHook
;
463 WNDPROC pfnDispatchDefWindowProc
;
464 WNDPROC pfnDispatchMessage
;
465 WNDPROC pfnMDIActivateDlgProc
;
466 } PFNCLIENT
, *PPFNCLIENT
;
469 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
470 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
473 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
475 typedef struct _PFNCLIENTWORKER
477 WNDPROC_EX pfnButtonWndProc
;
478 WNDPROC_EX pfnComboBoxWndProc
;
479 WNDPROC_EX pfnComboListBoxProc
;
480 WNDPROC_EX pfnDialogWndProc
;
481 WNDPROC_EX pfnEditWndProc
;
482 WNDPROC_EX pfnListBoxWndProc
;
483 WNDPROC_EX pfnMDIClientWndProc
;
484 WNDPROC_EX pfnStaticWndProc
;
485 WNDPROC_EX pfnImeWndProc
;
486 WNDPROC_EX pfnGhostWndProc
;
487 WNDPROC_EX pfnCtfHookProc
;
488 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
490 typedef LONG_PTR (NTAPI
*PFN_FNID
)(PWND
, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
492 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
493 #define FNID_FIRST 0x029A
494 #define FNID_SCROLLBAR 0x029A
495 #define FNID_ICONTITLE 0x029B
496 #define FNID_MENU 0x029C
497 #define FNID_DESKTOP 0x029D
498 #define FNID_DEFWINDOWPROC 0x029E
499 #define FNID_MESSAGEWND 0x029F
500 #define FNID_SWITCH 0x02A0
501 #define FNID_BUTTON 0x02A1
502 #define FNID_COMBOBOX 0x02A2
503 #define FNID_COMBOLBOX 0x02A3
504 #define FNID_DIALOG 0x02A4
505 #define FNID_EDIT 0x02A5
506 #define FNID_LISTBOX 0x02A6
507 #define FNID_MDICLIENT 0x02A7
508 #define FNID_STATIC 0x02A8
509 #define FNID_IME 0x02A9
510 #define FNID_GHOST 0x02AA
511 #define FNID_CALLWNDPROC 0x02AB
512 #define FNID_CALLWNDPROCRET 0x02AC
513 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
514 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
515 #define FNID_MB_DLGPROC 0x02AF
516 #define FNID_MDIACTIVATEDLGPROC 0x02B0
517 #define FNID_SENDMESSAGE 0x02B1
518 #define FNID_SENDMESSAGEFF 0x02B2
519 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
520 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
521 #define FNID_SENDMESSAGETIMEOUT 0x02B4
522 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
523 #define FNID_TOOLTIPS 0x02B6
524 #define FNID_SENDNOTIFYMESSAGE 0x02B7
525 #define FNID_SENDMESSAGECALLBACK 0x02B8
526 #define FNID_LAST 0x02B9
528 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
530 #define FNID_DDEML 0x2000 // Registers DDEML
531 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
532 // Seen during WM_CREATE on error exit too.
534 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
535 #define ICLS_BUTTON 0
537 #define ICLS_STATIC 2
538 #define ICLS_LISTBOX 3
539 #define ICLS_SCROLLBAR 4
540 #define ICLS_COMBOBOX 5
541 #define ICLS_MDICLIENT 6
542 #define ICLS_COMBOLBOX 7
543 #define ICLS_DDEMLEVENT 8
544 #define ICLS_DDEMLMOTHER 9
545 #define ICLS_DDEML16BIT 10
546 #define ICLS_DDEMLCLIENTA 11
547 #define ICLS_DDEMLCLIENTW 12
548 #define ICLS_DDEMLSERVERA 13
549 #define ICLS_DDEMLSERVERW 14
551 #define ICLS_DESKTOP 16
552 #define ICLS_DIALOG 17
554 #define ICLS_SWITCH 19
555 #define ICLS_ICONTITLE 20
556 #define ICLS_TOOLTIPS 21
557 #if (_WIN32_WINNT <= 0x0501)
558 #define ICLS_UNKNOWN 22
559 #define ICLS_NOTUSED 23
561 #define ICLS_SYSSHADOW 22
562 #define ICLS_HWNDMESSAGE 23
563 #define ICLS_UNKNOWN 24
564 #define ICLS_NOTUSED 25
568 #define COLOR_LAST COLOR_MENUBAR
569 #define MAX_MB_STRINGS 11
571 #define SRVINFO_METRICS 0x0020
573 typedef struct tagOEMBITMAPINFO
579 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
581 typedef struct tagMBSTRING
586 } MBSTRING
, *PMBSTRING
;
588 typedef struct tagDPISERVERINFO
590 INT gclBorder
; /* 000 */
591 HFONT hCaptionFont
; /* 004 */
592 HFONT hMsgFont
; /* 008 */
593 INT cxMsgFontChar
; /* 00C */
594 INT cyMsgFontChar
; /* 010 */
595 UINT wMaxBtnSize
; /* 014 */
596 } DPISERVERINFO
, *PDPISERVERINFO
;
598 typedef struct _PERUSERSERVERINFO
600 INT aiSysMet
[SM_CMETRICS
];
601 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
602 COLORREF argbSystem
[COLOR_LAST
+1];
603 HBRUSH ahbrSystem
[COLOR_LAST
+1];
607 DWORD dwLastRITEventTickCount
;
612 UINT ucWheelScrollLines
;
613 UINT ucWheelScrollChars
;
614 INT wMaxLeftOverlapChars
;
615 INT wMaxRightOverlapChars
;
618 TEXTMETRICW tmSysFont
;
619 DPISERVERINFO dpiSystem
;
620 HICON hIconSmWindows
;
623 DWORD dwAsyncKeyCache
;
625 OEMBITMAPINFO oembmi
[93];
634 DWORD dwLastSystemRITEventTickCountUpdate
;
635 ULONG adwDBGTAGFlags
[35];
638 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
640 typedef struct tagSERVERINFO
643 ULONG_PTR cHandleEntries
;
644 PFN_FNID mpFnidPfn
[FNID_NUM
];
645 WNDPROC aStoCidPfn
[7];
646 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
647 PFNCLIENT apfnClientA
;
648 PFNCLIENT apfnClientW
;
649 PFNCLIENTWORKER apfnClientWorker
;
651 ATOM atomSysClass
[ICLS_NOTUSED
+1];
652 DWORD dwDefaultHeapBase
;
653 DWORD dwDefaultHeapSize
;
655 MBSTRING MBStrings
[MAX_MB_STRINGS
];
658 ATOM atomContextHelpIdProp
;
659 ATOM atomFrostedWindowProp
;
660 CHAR acOemToAnsi
[256];
661 CHAR acAnsiToOem
[256];
662 DWORD dwInstalledEventHooks
;
664 } SERVERINFO
, *PSERVERINFO
;
667 // Server event activity bits.
668 #define SRV_EVENT_MENU 0x0001
669 #define SRV_EVENT_END_APPLICATION 0x0002
670 #define SRV_EVENT_RUNNING 0x0004
671 #define SRV_EVENT_NAMECHANGE 0x0008
672 #define SRV_EVENT_VALUECHANGE 0x0010
673 #define SRV_EVENT_STATECHANGE 0x0020
674 #define SRV_EVENT_LOCATIONCHANGE 0x0040
675 #define SRV_EVENT_CREATE 0x8000
677 typedef struct _PROPLISTITEM
681 } PROPLISTITEM
, *PPROPLISTITEM
;
683 typedef struct _PROPERTY
685 LIST_ENTRY PropListEntry
;
688 } PROPERTY
, *PPROPERTY
;
690 typedef struct _BROADCASTPARM
697 } BROADCASTPARM
, *PBROADCASTPARM
;
699 PW32THREADINFO
GetW32ThreadInfo(VOID
);
700 PPROCESSINFO
GetW32ProcessInfo(VOID
);
702 typedef struct _WNDMSG
708 typedef struct _SHAREDINFO
710 PSERVERINFO psi
; // global Server Info
711 PVOID aheList
; // Handle Entry List
712 PVOID pDispInfo
; // global PDISPLAYINFO pointer
713 ULONG_PTR ulSharedDelta
; // Heap delta
714 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
715 WNDMSG DefWindowMsgs
;
716 WNDMSG DefWindowSpecMsgs
;
717 } SHAREDINFO
, *PSHAREDINFO
;
719 typedef struct _USERCONNECT
722 ULONG ulCurrentVersion
;
723 DWORD dwDispatchCount
;
725 } USERCONNECT
, *PUSERCONNECT
;
728 // Non SDK Window Message types.
730 #define WM_CLIENTSHUTDOWN 59
731 #define WM_COPYGLOBALDATA 73
732 #define WM_SYSTIMER 280
733 #define WM_POPUPSYSTEMMENU 787
734 #define WM_CBT 1023 // ReactOS only.
735 #define WM_MAXIMUM 0x0001FFFF
738 // Non SDK DCE types.
740 #define DCX_USESTYLE 0x00010000
741 #define DCX_KEEPCLIPRGN 0x00040000
744 // Non SDK Queue message types.
746 #define QS_SMRESULT 0x8000
750 NtUserAssociateInputContext(
781 NtUserCtxDisplayIOCtl(
800 NtUserDrawMenuBarTemp(
809 NtUserEnableMenuItem(
820 NtUserGetMenuBarInfo(
834 NtUserGetMenuItemRect(
848 NtUserHiliteMenuItem(
856 NtUserMenuItemFromPoint(
878 NtUserSetMenuContextHelpId(
880 DWORD dwContextHelpId
);
884 NtUserSetMenuDefaultItem(
891 NtUserSetMenuFlagRtoL(
902 NtUserThunkedMenuInfo(
908 NtUserThunkedMenuItemInfo(
913 LPMENUITEMINFOW lpmii
,
914 PUNICODE_STRING lpszCaption
);
918 NtUserTrackPopupMenuEx(
928 NtUserActivateKeyboardLayout(
934 NtUserAlterWindowStyle(
941 NtUserAttachThreadInput(
947 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
982 PULONG pRequiredSize
);
992 /* apfnSimpleCall indices from Windows XP SP 2 */
993 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
994 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
996 enum SimpleCallRoutines
998 NOPARAM_ROUTINE_CREATEMENU
,
999 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1000 #if (WIN32K_VERSION >= NTDDI_VISTA)
1001 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1002 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1003 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1004 NOPARAM_ROUTINE_DESTROY_CARET
,
1006 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1007 #if (WIN32K_VERSION < NTDDI_VISTA)
1008 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1009 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1010 NOPARAM_ROUTINE_DESTROY_CARET
,
1012 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1013 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1014 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1015 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1016 #if (WIN32K_VERSION >= NTDDI_VISTA)
1017 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1019 NOPARAM_ROUTINE_GETREMOTEPROCID
,
1021 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1022 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1023 #if (WIN32K_VERSION >= NTDDI_VISTA)
1024 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1025 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1027 NOPARAM_ROUTINE_RELEASECAPTURE
,
1028 NOPARAM_ROUTINE_RESETDBLCLICK
,
1029 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1030 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1031 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1032 NOPARAM_ROUTINE_REMOTELOGOFF
,
1033 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1034 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1035 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1036 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1037 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1038 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1039 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1040 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1041 #if (WIN32K_VERSION >= NTDDI_VISTA)
1042 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1044 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1045 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1046 #if (WIN32K_VERSION < NTDDI_VISTA)
1047 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1049 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1050 #if (WIN32K_VERSION >= NTDDI_VISTA)
1051 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1053 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1054 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1055 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1056 #if (WIN32K_VERSION < NTDDI_VISTA)
1057 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1059 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1060 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1061 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1062 #if (WIN32K_VERSION < NTDDI_VISTA)
1063 ONEPARAM_ROUTINE_GETCURSORPOS
,
1065 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1066 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1067 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1068 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1069 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1070 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1071 #if (WIN32K_VERSION < NTDDI_VISTA)
1072 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1074 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1075 ONEPARAM_ROUTINE_LOADFONTS
,
1076 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1077 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1078 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1079 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1080 #if (WIN32K_VERSION < NTDDI_VISTA)
1081 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1083 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1084 ONEPARAM_ROUTINE_REGISTERLPK
,
1085 #if (WIN32K_VERSION >= NTDDI_VISTA)
1086 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1088 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1089 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1090 ONEPARAM_ROUTINE_RELEASEDC
,
1091 #if (WIN32K_VERSION >= NTDDI_VISTA)
1092 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1094 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1095 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1096 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1097 #if (WIN32K_VERSION < NTDDI_VISTA)
1098 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1100 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1101 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1102 #if (WIN32K_VERSION >= NTDDI_VISTA)
1103 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1105 ONEPARAM_ROUTINE_SHOWCURSOR
,
1106 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1107 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1108 X_ROUTINE_WOWMODULEUNLOAD
,
1109 #if (WIN32K_VERSION < NTDDI_VISTA)
1110 X_ROUTINE_REMOTENOTIFY
,
1112 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1113 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1114 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1115 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1116 HWND_ROUTINE_SETMSGBOX
,
1117 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1118 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1119 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1120 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1121 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1122 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1123 HWNDPARAM_ROUTINE_SETVISIBLE
,
1124 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1125 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1126 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1127 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1128 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1129 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1130 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1131 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1132 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1133 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1134 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1135 HWNDLOCK_ROUTINE_SETSYSMENU
,
1136 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1137 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1138 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1139 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1140 TWOPARAM_ROUTINE_REDRAWTITLE
,
1141 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1142 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1143 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1144 TWOPARAM_ROUTINE_VALIDATERGN
,
1145 #if (WIN32K_VERSION >= NTDDI_VISTA)
1146 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1147 TWOPARAM_ROUTINE_GETCURSORPOS
,
1149 TWOPARAM_ROUTINE_GETHDEVNAME
,
1150 TWOPARAM_ROUTINE_INITANSIOEM
,
1151 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1152 #if (WIN32K_VERSION >= NTDDI_VISTA)
1153 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1155 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1156 #if (WIN32K_VERSION >= NTDDI_VISTA)
1157 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1159 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1161 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1162 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1163 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1164 TWOPARAM_ROUTINE_SETCARETPOS
,
1165 TWOPARAM_ROUTINE_SETCURSORPOS
,
1166 #if (WIN32K_VERSION >= NTDDI_VISTA)
1167 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1169 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1170 TWOPARAM_ROUTINE_WOWCLEANUP
1193 NtUserCallHwndParam(
1200 NtUserCallHwndParamLock(
1207 NtUserCallMsgFilter(
1213 NtUserCallNextHookEx(
1239 NtUserChangeClipboardChain(
1245 NtUserChangeDisplaySettings(
1246 PUNICODE_STRING lpszDeviceName
,
1247 LPDEVMODEW lpDevMode
,
1254 NtUserCheckDesktopByThreadId(
1259 NtUserCheckWindowThreadDesktop(
1266 NtUserCheckImeHotKey(
1271 NtUserChildWindowFromPointEx(
1284 NtUserCloseClipboard(VOID
);
1293 NtUserCloseWindowStation(
1298 NtUserConsoleControl(
1305 NtUserConvertMemHandle(
1311 NtUserCopyAcceleratorTable(
1318 NtUserCountClipboardFormats(VOID
);
1322 NtUserCreateAcceleratorTable(
1324 SIZE_T EntriesCount
);
1336 NtUserCreateDesktop(
1337 POBJECT_ATTRIBUTES poa
,
1338 PUNICODE_STRING lpszDesktopDevice
,
1341 ACCESS_MASK dwDesiredAccess
);
1345 NtUserCreateInputContext(
1350 NtUserCreateLocalMemHandle(
1358 NtUserCreateWindowEx(
1360 PUNICODE_STRING lpClassName
,
1361 PUNICODE_STRING lpWindowName
,
1369 HINSTANCE hInstance
,
1372 BOOL bUnicodeWindow
,
1377 NtUserCreateWindowEx(
1379 PLARGE_STRING plstrClassName
,
1380 PLARGE_STRING plstrClsVesrion
,
1381 PLARGE_STRING plstrWindowName
,
1389 HINSTANCE hInstance
,
1391 DWORD dwFlags
, // |= 1 == Ansi
1397 NtUserCreateWindowStation(
1398 PUNICODE_STRING lpszWindowStationName
,
1399 ACCESS_MASK dwDesiredAccess
,
1400 LPSECURITY_ATTRIBUTES lpSecurity
,
1408 NtUserDdeGetQualityOfService(
1411 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1415 NtUserDdeInitialize(
1424 NtUserDdeSetQualityOfService(
1426 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1427 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1430 NtUserDeferWindowPos(
1433 HWND WndInsertAfter
,
1441 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1445 NtUserDestroyAcceleratorTable(
1450 NtUserDestroyCursor(
1456 NtUserDestroyInputContext(
1460 NtUserDestroyWindow(HWND Wnd
);
1464 NtUserDisableThreadIme(
1469 NtUserDispatchMessage(PMSG pMsg
);
1488 NtUserDrawAnimatedRects(
1504 NtUserDrawCaptionTemp(
1510 const PUNICODE_STRING str
,
1523 HBRUSH hbrFlickerFreeDraw
,
1530 NtUserEmptyClipboard(VOID
);
1534 NtUserEnableScrollBar(
1541 NtUserEndDeferWindowPosEx(
1546 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1550 NtUserEnumDisplayDevices (
1551 PUNICODE_STRING lpDevice
, /* device name */
1552 DWORD iDevNum
, /* display device */
1553 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1554 DWORD dwFlags
); /* reserved */
1558 NtUserEnumDisplayMonitors (
1561 MONITORENUMPROC lpfnEnum,
1563 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1566 NtUserEnumDisplayMonitors(
1567 OPTIONAL IN HDC hDC
,
1568 OPTIONAL IN LPCRECT pRect
,
1569 OPTIONAL OUT HMONITOR
*hMonitorList
,
1570 OPTIONAL OUT LPRECT monitorRectList
,
1571 OPTIONAL IN DWORD listSize
);
1576 NtUserEnumDisplaySettings(
1577 PUNICODE_STRING lpszDeviceName
,
1579 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1589 NtUserExcludeUpdateRgn(
1603 NtUserFindExistingCursorIcon(
1613 HWND hwndChildAfter
,
1614 PUNICODE_STRING ucClassName
,
1615 PUNICODE_STRING ucWindowName
,
1621 NtUserFlashWindowEx(
1622 IN PFLASHWINFO pfwi
);
1626 NtUserGetAltTabInfo(
1635 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1639 NtUserGetAppImeLevel(
1644 NtUserGetAsyncKeyState(
1655 NtUserGetCaretBlinkTime(VOID
);
1663 NtUserGetClassInfo(HINSTANCE hInstance
,
1664 PUNICODE_STRING ClassName
,
1666 LPWSTR
*ppszMenuName
,
1671 NtUserGetClassName(HWND hWnd
,
1672 PUNICODE_STRING ClassName
,
1674 #if 0 // Real NtUserGetClassName
1677 NtUserGetClassName(HWND hWnd
,
1678 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1679 PUNICODE_STRING ClassName
);
1684 NtUserGetClipboardData(
1690 NtUserGetClipboardFormatName(
1692 PUNICODE_STRING FormatName
,
1697 NtUserGetClipboardOwner(VOID
);
1701 NtUserGetClipboardSequenceNumber(VOID
);
1705 NtUserGetClipboardViewer(VOID
);
1709 NtUserGetClipCursor(
1714 NtUserGetComboBoxInfo(
1716 PCOMBOBOXINFO pcbi
);
1720 NtUserGetControlBrush(
1727 NtUserGetControlColor(
1742 NtUserGetCursorFrameInfo(
1750 NtUserGetCursorInfo(
1767 NtUserGetDoubleClickTime(VOID
);
1771 NtUserGetForegroundWindow(VOID
);
1775 NtUserGetGuiResources(
1781 NtUserGetGUIThreadInfo(
1783 LPGUITHREADINFO lpgui
);
1790 PUNICODE_STRING lpInstName
,
1791 PUNICODE_STRING lpResName
,
1819 NtUserGetInternalWindowPos(
1826 NtUserGetKeyboardLayout(
1831 NtUserGetKeyboardLayoutList(
1837 NtUserGetKeyboardLayoutName(
1842 NtUserGetKeyboardState(
1847 NtUserGetKeyboardType(
1852 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1861 NtUserGetLayeredWindowAttributes(
1869 NtUserGetListBoxInfo(
1872 typedef struct tagNTUSERGETMESSAGEINFO
1876 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1881 PNTUSERGETMESSAGEINFO MsgInfo
,
1884 UINT wMsgFilterMax
);
1888 NtUserGetMouseMovePointsEx(
1890 LPMOUSEMOVEPOINT lppt
,
1891 LPMOUSEMOVEPOINT lpptBuf
,
1897 NtUserGetObjectInformation(
1900 PVOID pvInformation
,
1902 PDWORD nLengthNeeded
);
1906 NtUserGetOpenClipboardWindow(VOID
);
1910 NtUserGetPriorityClipboardFormat(
1911 UINT
*paFormatPriorityList
,
1916 NtUserGetProcessWindowStation(VOID
);
1920 NtUserGetRawInputBuffer(
1927 NtUserGetRawInputData(
1928 HRAWINPUT hRawInput
,
1936 NtUserGetRawInputDeviceInfo(
1944 NtUserGetRawInputDeviceList(
1945 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1946 PUINT puiNumDevices
,
1951 NtUserGetRegisteredRawInputDevices(
1952 PRAWINPUTDEVICE pRawInputDevices
,
1953 PUINT puiNumDevices
,
1958 NtUserGetScrollBarInfo(
1961 PSCROLLBARINFO psbi
);
1965 NtUserGetThreadDesktop(
1970 enum ThreadStateRoutines
1972 THREADSTATE_GETTHREADINFO
,
1973 THREADSTATE_INSENDMESSAGE
,
1974 THREADSTATE_FOCUSWINDOW
,
1975 THREADSTATE_ACTIVEWINDOW
,
1976 THREADSTATE_CAPTUREWINDOW
,
1977 THREADSTATE_PROGMANWINDOW
,
1978 THREADSTATE_TASKMANWINDOW
,
1979 THREADSTATE_GETMESSAGETIME
,
1980 THREADSTATE_GETINPUTSTATE
1985 NtUserGetThreadState(
1990 NtUserGetTitleBarInfo(
1995 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
2011 NtUserGetWindowPlacement(
2013 WINDOWPLACEMENT
*lpwndpl
);
2018 HINSTANCE hInstance
,
2019 PUNICODE_STRING ClassName
);
2023 NtUserHardErrorControl(
2030 NtUserImpersonateDdeClientWindow(
2038 HANDLE hPowerRequestEvent
,
2039 HANDLE hMediaRequestEvent
);
2043 NtUserInitializeClientPfnArrays(
2044 PPFNCLIENT pfnClientA
,
2045 PPFNCLIENT pfnClientW
,
2046 PPFNCLIENTWORKER pfnClientWorker
,
2047 HINSTANCE hmodUser
);
2067 NtUserInternalGetWindowText(
2074 NtUserInvalidateRect(
2081 NtUserInvalidateRgn(
2088 NtUserIsClipboardFormatAvailable(
2101 NtUserLoadKeyboardLayoutEx(
2104 IN PUNICODE_STRING puszKeyboardName
,
2106 IN PUNICODE_STRING puszKLID
,
2112 NtUserLockWindowStation(
2113 HWINSTA hWindowStation
);
2117 NtUserLockWindowUpdate(
2122 NtUserLockWorkStation(VOID
);
2126 NtUserMapVirtualKeyEx( UINT keyCode
,
2137 ULONG_PTR ResultInfo
,
2138 DWORD dwType
, // FNID_XX types
2145 UINT cmd
, // Wine SW_ commands
2150 NtUserMNDragLeave(VOID
);
2160 NtUserModifyUserStartupInfoFlags(
2177 NtUserNotifyIMEStatus(
2184 NtUserNotifyProcessCreate(
2192 NtUserNotifyWinEvent(
2200 NtUserOpenClipboard(
2207 PUNICODE_STRING lpszDesktopName
,
2209 ACCESS_MASK dwDesiredAccess
);
2213 NtUserOpenInputDesktop(
2216 ACCESS_MASK dwDesiredAccess
);
2220 NtUserOpenWindowStation(
2221 PUNICODE_STRING lpszWindowStationName
,
2222 ACCESS_MASK dwDesiredAccess
);
2242 PNTUSERGETMESSAGEINFO MsgInfo
,
2258 NtUserPostThreadMessage(
2273 NtUserProcessConnect(
2275 OUT PUSERCONNECT pUserConnect
,
2276 IN DWORD dwSize
); // sizeof(USERCONNECT)
2280 NtUserQueryInformationThread(
2289 NtUserQueryInputContext(
2295 NtUserQuerySendMessage(
2300 NtUserQueryUserCounters(
2307 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2308 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2309 #define QUERY_WINDOW_ACTIVE 0x02
2310 #define QUERY_WINDOW_FOCUS 0x03
2311 #define QUERY_WINDOW_ISHUNG 0x04
2320 NtUserRealInternalGetMessage(
2330 NtUserRealChildWindowFromPoint(
2337 NtUserRealWaitMessageEx(
2346 CONST RECT
*lprcUpdate
,
2353 NtUserRegisterClassExWOW(
2355 PUNICODE_STRING pustrClassName
,
2356 PUNICODE_STRING pustrCNVersion
,
2357 PCLSMENUNAME pClassMenuName
,
2364 NtUserRegisterRawInputDevices(
2365 IN PCRAWINPUTDEVICE pRawInputDevices
,
2366 IN UINT uiNumDevices
,
2371 NtUserRegisterUserApiHook(
2377 NtUserRegisterHotKey(HWND hWnd
,
2384 NtUserRegisterTasklist(
2388 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2392 NtUserRemoteConnect(
2399 NtUserRemoteRedrawRectangle(
2407 NtUserRemoteRedrawScreen(VOID
);
2411 NtUserRemoteStopScreenUpdates(VOID
);
2414 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2418 NtUserResolveDesktop(
2426 NtUserResolveDesktopForWOW(
2443 CONST RECT
*lprcScroll
,
2444 CONST RECT
*lprcClip
,
2449 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2450 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2460 NtUserSetActiveWindow(HWND Wnd
);
2464 NtUserSetAppImeLevel(
2469 NtUserSetCapture(HWND Wnd
);
2475 ULONG_PTR dwNewLong
,
2487 NtUserSetClipboardData(
2494 NtUserSetClipboardViewer(
2495 HWND hWndNewViewer
);
2499 NtUserSelectPalette(
2502 BOOL ForceBackground
2507 NtUserSetConsoleReserveKeys(
2518 NtUserSetCursorContents(
2520 PICONINFO IconInfo
);
2524 NtUserSetCursorIconData(
2559 NtUserSetImeOwnerWindow(
2565 NtUserSetInformationProcess(
2573 NtUserSetInformationThread(
2581 NtUserSetInternalWindowPos(
2589 NtUserSetKeyboardState(
2594 NtUserSetLayeredWindowAttributes(
2602 NtUserSetLogonNotifyWindow(
2607 NtUserSetObjectInformation(
2610 PVOID pvInformation
,
2617 HWND hWndNewParent
);
2621 NtUserSetProcessWindowStation(
2622 HWINSTA hWindowStation
);
2625 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2635 NtUserSetScrollInfo(
2643 NtUserSetShellWindowEx(
2645 HWND hwndShellListView
);
2651 IN CONST INT
*lpaElements
,
2652 IN CONST COLORREF
*lpaRgbValues
,
2657 NtUserSetSystemCursor(
2663 NtUserSetThreadDesktop(
2668 NtUserSetThreadState(
2674 NtUserSetSystemTimer
2679 TIMERPROC lpTimerFunc
2684 NtUserSetThreadLayoutHandles(
2695 TIMERPROC lpTimerFunc
2700 NtUserSetWindowFNID(
2706 NtUserSetWindowLong(
2714 NtUserSetWindowPlacement(
2716 WINDOWPLACEMENT
*lpwndpl
);
2719 NTAPI
NtUserSetWindowPos(
2721 HWND hWndInsertAfter
,
2738 NtUserSetWindowsHookAW(
2745 NtUserSetWindowsHookEx(
2747 PUNICODE_STRING ModuleName
,
2755 NtUserSetWindowStationUser(
2762 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2766 NtUserSetWinEventHook(
2769 HMODULE hmodWinEventProc
,
2770 PUNICODE_STRING puString
,
2771 WINEVENTPROC lpfnWinEventProc
,
2788 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2798 NtUserShowWindowAsync(
2804 NtUserSoundSentry(VOID
);
2808 NtUserSwitchDesktop(
2813 NtUserSystemParametersInfo(
2821 NtUserTestForInteractiveUser(
2837 NtUserTrackMouseEvent(
2838 LPTRACKMOUSEEVENT lpEventTrack
);
2842 NtUserTranslateAccelerator(
2849 NtUserTranslateMessage(
2855 NtUserUnhookWindowsHookEx(
2860 NtUserUnhookWinEvent(
2861 HWINEVENTHOOK hWinEventHook
);
2865 NtUserUnloadKeyboardLayout(
2870 NtUserUnlockWindowStation(
2871 HWINSTA hWindowStation
);
2875 NtUserUnregisterClass(
2876 PUNICODE_STRING ClassNameOrAtom
,
2877 HINSTANCE hInstance
,
2878 PCLSMENUNAME pClassMenuName
);
2882 NtUserUnregisterHotKey(HWND hWnd
,
2887 NtUserUnregisterUserApiHook(VOID
);
2891 NtUserUpdateInputContext(
2898 NtUserUpdateInstance(
2905 NtUserUpdateLayeredWindow(
2913 BLENDFUNCTION
*pblend
,
2919 NtUserUpdatePerUserSystemParameters(
2925 NtUserUserHandleGrantAccess(
2926 IN HANDLE hUserHandle
,
2932 NtUserValidateHandleSecure(
2940 CONST RECT
*lpRect
);
2944 NtUserValidateTimerCallback(
2958 NtUserWaitForInputIdle(
2960 IN DWORD dwMilliseconds
,
2961 IN BOOL Unknown2
); // Always FALSE
2965 NtUserWaitForMsgAndEvent(
2970 NtUserWaitMessage(VOID
);
2974 NtUserWin32PoolAllocationStats(
2984 NtUserWindowFromPhysicalPoint(
2989 NtUserWindowFromPoint(
2995 NtUserYieldTask(VOID
);
2997 /* lParam of DDE messages */
2998 typedef struct tagKMDDEEXECUTEDATA
3002 /* BYTE Data[DataSize] */
3003 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
3005 typedef struct tagKMDDELPARAM
3017 } KMDDELPARAM
, *PKMDDELPARAM
;
3024 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3027 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3028 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3029 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
3030 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3031 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
3032 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
3033 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
3034 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3035 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3036 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3037 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3038 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
3039 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3040 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3041 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3042 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3043 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3044 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3045 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
3046 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3047 #define MSQ_STATE_CAPTURE 0x1
3048 #define MSQ_STATE_ACTIVE 0x2
3049 #define MSQ_STATE_FOCUS 0x3
3050 #define MSQ_STATE_MENUOWNER 0x4
3051 #define MSQ_STATE_MOVESIZE 0x5
3052 #define MSQ_STATE_CARET 0x6
3053 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
3054 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3055 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
3056 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3057 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
3058 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
3059 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
3060 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3064 NtUserBuildMenuItemList(
3070 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3073 NtUserCreateCursorIconHandle(
3078 /* Should be done in usermode and use NtUserGetCPD. */
3081 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3085 NtUserGetMenuDefaultItem(
3092 NtUserGetLastInputInfo(
3093 PLASTINPUTINFO plii
);
3097 NtUserGetMinMaxInfo(
3099 MINMAXINFO
*MinMaxInfo
,
3104 NtUserGetMonitorInfo(
3105 IN HMONITOR hMonitor
,
3106 OUT LPMONITORINFO pMonitorInfo
);
3108 /* Should be done in usermode */
3111 NtUserGetScrollInfo(
3118 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
3120 /* Should be done in usermode and use NtUserGetCPD. */
3123 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
3126 /* (other FocusedItem values give the position of the focused item) */
3127 #define NO_SELECTED_ITEM 0xffff
3129 typedef struct tagROSMENUINFO
3131 /* ----------- MENUINFO ----------- */
3137 DWORD dwContextHelpID
;
3138 ULONG_PTR dwMenuData
;
3139 /* ----------- Extra ----------- */
3140 HMENU Self
; /* Handle of this menu */
3141 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3142 UINT FocusedItem
; /* Currently focused item */
3143 UINT MenuItemCount
; /* Number of items in the menu */
3144 HWND Wnd
; /* Window containing the menu */
3145 WORD Width
; /* Width of the whole menu */
3146 WORD Height
; /* Height of the whole menu */
3147 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3148 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3149 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3150 } ROSMENUINFO
, *PROSMENUINFO
;
3162 typedef struct tagROSMENUITEMINFO
3164 /* ----------- MENUITEMINFOW ----------- */
3171 HBITMAP hbmpChecked
;
3172 HBITMAP hbmpUnchecked
;
3177 /* ----------- Extra ----------- */
3178 RECT Rect
; /* Item area (relative to menu window) */
3179 UINT XTab
; /* X position of text after Tab */
3180 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3181 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3189 PROSMENUITEMINFO lpmii
,
3195 NtUserMonitorFromPoint(
3201 NtUserMonitorFromRect(
3207 NtUserMonitorFromWindow(
3212 typedef struct tagNTUSERSENDMESSAGEINFO
3214 BOOL HandledByKernel
;
3217 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3219 /* use NtUserMessageCall */
3221 NtUserSendMessage(HWND hWnd
,
3225 PNTUSERSENDMESSAGEINFO Info
);
3227 /* use NtUserMessageCall */
3229 NtUserSendMessageTimeout(HWND hWnd
,
3236 PNTUSERSENDMESSAGEINFO Info
);
3238 typedef struct _SETSCROLLBARINFO
3242 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3243 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3247 NtUserSetScrollBarInfo(
3250 SETSCROLLBARINFO
*info
);
3254 #endif /* __WIN32K_NTUSER_H */