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 BYTE afAsyncKeyState
[8];
152 BYTE afAsyncKeyStateRecentDow
[8];
157 LPDWORD lpdwRegisteredClasses
;
158 ULONG Win32ClientInfo3
[27];
159 /* It's just a pointer reference not to be used w the structure in user space. */
161 } CLIENTINFO
, *PCLIENTINFO
;
163 /* Make sure it fits exactly into the TEB */
164 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
166 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
168 typedef struct _REGISTER_SYSCLASS
170 /* This is a reactos specific class used to initialize the
171 system window classes during user32 initialization */
172 UNICODE_STRING ClassName
;
180 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
182 typedef struct _CLSMENUNAME
184 LPSTR pszClientAnsiMenuName
;
185 LPWSTR pwszClientUnicodeMenuName
;
186 PUNICODE_STRING pusMenuName
;
187 } CLSMENUNAME
, *PCLSMENUNAME
;
189 typedef struct tagSBDATA
197 typedef struct tagSBINFO
206 UserGetCPDU2A
= 0x01,
207 UserGetCPDA2U
= 0X02,
208 UserGetCPDClass
= 0X10,
209 UserGetCPDWindow
= 0X20,
210 UserGetCPDDialog
= 0X40,
211 UserGetCPDWndtoCls
= 0X80
214 typedef struct _CALLPROCDATA
217 struct _CALLPROCDATA
*spcpdNext
;
218 WNDPROC pfnClientPrevious
;
224 } CALLPROCDATA
, *PCALLPROCDATA
;
226 #define CSF_SERVERSIDEPROC 0x0001
227 #define CSF_ANSIPROC 0x0002
228 #define CSF_WOWDEFERDESTROY 0x0004
229 #define CSF_SYSTEMCLASS 0x0008
230 #define CSF_WOWCLASS 0x0010
231 #define CSF_WOWEXTRA 0x0020
232 #define CSF_CACHEDSMICON 0x0040
233 #define CSF_WIN40COMPAT 0x0080
237 struct _CLS
*pclsNext
;
238 RTL_ATOM atomClassName
;
239 ATOM atomNVClassName
;
241 struct _DESKTOP
*rpdeskParent
;
244 PSTR lpszClientAnsiMenuName
; // For client use
245 PWSTR lpszClientUnicodeMenuName
; // " " "
246 PCALLPROCDATA spcpdFirst
;
247 struct _CLS
*pclsBase
;
248 struct _CLS
*pclsClone
;
249 ULONG cWndReferenceCount
;
254 WNDPROC WndProcExtra
;
255 PCALLPROCDATA CallProc
;
260 HANDLE hIcon
; /* FIXME - Use pointer! */
262 HANDLE hCursor
; /* FIXME - Use pointer! */
264 HBRUSH hbrBackground
;
265 PWSTR lpszMenuName
; // kernel use
266 PSTR lpszAnsiClassName
; // "
267 HANDLE hIconSm
; /* FIXME - Use pointer! */
270 UINT Destroying
: 1; // CSF_WOWDEFERDESTROY
271 UINT Unicode
: 1; // !CSF_ANSIPROC
272 UINT System
: 1; // CSF_SYSTEMCLASS
273 UINT Global
: 1; // CS_GLOBALCLASS
274 UINT MenuNameIsString
: 1;
279 // State Flags !Not Implemented!
280 #define WNDS_HASMENU 0X00000001
281 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
282 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
283 #define WNDS_HASCAPTION 0X00000008
284 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
285 #define WNDS_MSGBOX 0X00000020
286 #define WNDS_ACTIVEFRAME 0X00000040
287 #define WNDS_HASSPB 0X00000080
288 #define WNDS_NONCPAINT 0X00000100
289 #define WNDS_SENDERASEBACKGROUND 0X00000200
290 #define WNDS_ERASEBACKGROUND 0X00000400
291 #define WNDS_SENDNCPAINT 0X00000800
292 #define WNDS_INTERNALPAINT 0X00001000
293 #define WNDS_UPDATEDIRTY 0X00002000
294 #define WNDS_HIDDENPOPUP 0X00004000
295 #define WNDS_FORCEMENUDRAW 0X00008000
296 #define WNDS_DIALOGWINDOW 0X00010000
297 #define WNDS_HASCREATESTRUCTNAME 0X00020000
298 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
299 #define WNDS_ANSIWINDOWPROC 0x00080000
300 #define WNDS_BEGINGACTIVATED 0x00100000
301 #define WNDS_HASPALETTE 0x00200000
302 #define WNDS_PAINTNOTPROCESSED 0x00400000
303 #define WNDS_SYNCPAINTPENDING 0x00800000
304 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
305 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
306 #define WNDS_TOGGLETOPMOST 0x04000000
307 #define WNDS_REDRAWIFHUNG 0x08000000
308 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
309 #define WNDS_ANSICREATOR 0x20000000
310 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
311 #define WNDS_DESTROYED 0x80000000
313 // State2 Flags !Not Implemented!
314 #define WNDS2_WMPAINTSENT 0X00000001
315 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
316 #define WNDS2_STARTPAINT 0X00000004
317 #define WNDS2_OLDUI 0X00000008
318 #define WNDS2_HASCLIENTEDGE 0X00000010
319 #define WNDS2_BOTTOMMOST 0X00000020
320 #define WNDS2_FULLSCREEN 0X00000040
321 #define WNDS2_INDESTROY 0X00000080
322 #define WNDS2_WIN31COMPAT 0X00000100
323 #define WNDS2_WIN40COMPAT 0X00000200
324 #define WNDS2_WIN50COMPAT 0X00000400
325 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
326 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
327 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
328 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
329 #define WNDS2_HELPBUTTONDOWN 0X00008000
330 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
331 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
332 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
333 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
334 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
335 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
336 #define WNDS2_FORCENCPAINT 0X00400000
337 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
338 #define WNDS2_FULLSCREENMODE 0X01000000
339 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
340 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
341 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
342 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
343 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
345 /* Non SDK ExStyles */
346 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
347 #define WS_EX_UISTATEACTIVE 0x04000000
348 #define WS_EX_REDIRECTED 0X20000000
349 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
350 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
353 #define WS_MAXIMIZED WS_MAXIMIZE
354 #define WS_MINIMIZED WS_MINIMIZE
357 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
358 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
359 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
360 #define WS_EX2_LINKED 0X00000008
361 #define WS_EX2_LAYEREDFORDWM 0X00000010
362 #define WS_EX2_LAYEREDLIMBO 0X00000020
363 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
364 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
365 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
366 #define WS_EX2_HASOVERLAY 0X00000200
367 #define WS_EX2_CONSOLEWINDOW 0X00000400
368 #define WS_EX2_CHILDNOACTIVATE 0X00000800
375 /* Extended style. */
379 /* Handle of the module that created the window. */
382 struct _WND
*spwndNext
;
383 struct _WND
*spwndPrev
;
384 struct _WND
*spwndParent
;
385 struct _WND
*spwndChild
;
386 struct _WND
*spwndOwner
;
392 /* Pointer to a call procedure handle */
393 PCALLPROCDATA CallProc
;
394 /* Extra Wnd proc (windows of system classes) */
395 WNDPROC WndProcExtra
;
398 /* Pointer to the window class. */
401 /* Property list head.*/
402 LIST_ENTRY PropListHead
;
406 /* system menu handle. */
409 /* Window menu handle or window id */
410 UINT IDMenu
; // Use spmenu
415 UNICODE_STRING strName
;
416 /* Size of the extra data associated with the window. */
419 struct _WND
*spwndLastActive
;
420 //HIMC hImc; // Input context associated with this window.
422 //PACTIVATION_CONTEXT pActCtx;
423 //PD3DMATRIX pTransForm;
424 struct _WND
*spwndClipboardListener
;
434 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
435 /* Indicates whether the window is derived from a system class */
436 UINT IsSystem
: 1; // System class ?
437 UINT InternalPosInitialized
: 1;
438 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
439 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
442 typedef struct _PFNCLIENT
444 WNDPROC pfnScrollBarWndProc
;
445 WNDPROC pfnTitleWndProc
;
446 WNDPROC pfnMenuWndProc
;
447 WNDPROC pfnDesktopWndProc
;
448 WNDPROC pfnDefWindowProc
;
449 WNDPROC pfnMessageWindowProc
;
450 WNDPROC pfnSwitchWindowProc
;
451 WNDPROC pfnButtonWndProc
;
452 WNDPROC pfnComboBoxWndProc
;
453 WNDPROC pfnComboListBoxProc
;
454 WNDPROC pfnDialogWndProc
;
455 WNDPROC pfnEditWndProc
;
456 WNDPROC pfnListBoxWndProc
;
457 WNDPROC pfnMDIClientWndProc
;
458 WNDPROC pfnStaticWndProc
;
459 WNDPROC pfnImeWndProc
;
460 WNDPROC pfnGhostWndProc
;
461 WNDPROC pfnHkINLPCWPSTRUCT
;
462 WNDPROC pfnHkINLPCWPRETSTRUCT
;
463 WNDPROC pfnDispatchHook
;
464 WNDPROC pfnDispatchDefWindowProc
;
465 WNDPROC pfnDispatchMessage
;
466 WNDPROC pfnMDIActivateDlgProc
;
467 } PFNCLIENT
, *PPFNCLIENT
;
470 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
471 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
474 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
476 typedef struct _PFNCLIENTWORKER
478 WNDPROC_EX pfnButtonWndProc
;
479 WNDPROC_EX pfnComboBoxWndProc
;
480 WNDPROC_EX pfnComboListBoxProc
;
481 WNDPROC_EX pfnDialogWndProc
;
482 WNDPROC_EX pfnEditWndProc
;
483 WNDPROC_EX pfnListBoxWndProc
;
484 WNDPROC_EX pfnMDIClientWndProc
;
485 WNDPROC_EX pfnStaticWndProc
;
486 WNDPROC_EX pfnImeWndProc
;
487 WNDPROC_EX pfnGhostWndProc
;
488 WNDPROC_EX pfnCtfHookProc
;
489 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
491 typedef LONG_PTR (NTAPI
*PFN_FNID
)(PWND
, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
493 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
494 #define FNID_FIRST 0x029A
495 #define FNID_SCROLLBAR 0x029A
496 #define FNID_ICONTITLE 0x029B
497 #define FNID_MENU 0x029C
498 #define FNID_DESKTOP 0x029D
499 #define FNID_DEFWINDOWPROC 0x029E
500 #define FNID_MESSAGEWND 0x029F
501 #define FNID_SWITCH 0x02A0
502 #define FNID_BUTTON 0x02A1
503 #define FNID_COMBOBOX 0x02A2
504 #define FNID_COMBOLBOX 0x02A3
505 #define FNID_DIALOG 0x02A4
506 #define FNID_EDIT 0x02A5
507 #define FNID_LISTBOX 0x02A6
508 #define FNID_MDICLIENT 0x02A7
509 #define FNID_STATIC 0x02A8
510 #define FNID_IME 0x02A9
511 #define FNID_GHOST 0x02AA
512 #define FNID_CALLWNDPROC 0x02AB
513 #define FNID_CALLWNDPROCRET 0x02AC
514 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
515 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
516 #define FNID_MB_DLGPROC 0x02AF
517 #define FNID_MDIACTIVATEDLGPROC 0x02B0
518 #define FNID_SENDMESSAGE 0x02B1
519 #define FNID_SENDMESSAGEFF 0x02B2
520 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
521 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
522 #define FNID_SENDMESSAGETIMEOUT 0x02B4
523 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
524 #define FNID_TOOLTIPS 0x02B6
525 #define FNID_SENDNOTIFYMESSAGE 0x02B7
526 #define FNID_SENDMESSAGECALLBACK 0x02B8
527 #define FNID_LAST 0x02B9
529 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
531 #define FNID_DDEML 0x2000 // Registers DDEML
532 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
533 // Seen during WM_CREATE on error exit too.
535 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
536 #define ICLS_BUTTON 0
538 #define ICLS_STATIC 2
539 #define ICLS_LISTBOX 3
540 #define ICLS_SCROLLBAR 4
541 #define ICLS_COMBOBOX 5
542 #define ICLS_MDICLIENT 6
543 #define ICLS_COMBOLBOX 7
544 #define ICLS_DDEMLEVENT 8
545 #define ICLS_DDEMLMOTHER 9
546 #define ICLS_DDEML16BIT 10
547 #define ICLS_DDEMLCLIENTA 11
548 #define ICLS_DDEMLCLIENTW 12
549 #define ICLS_DDEMLSERVERA 13
550 #define ICLS_DDEMLSERVERW 14
552 #define ICLS_GHOST 16
553 #define ICLS_DESKTOP 17
554 #define ICLS_DIALOG 18
556 #define ICLS_SWITCH 20
557 #define ICLS_ICONTITLE 21
558 #define ICLS_TOOLTIPS 22
559 #if (_WIN32_WINNT <= 0x0501)
560 #define ICLS_UNKNOWN 22
561 #define ICLS_NOTUSED 23
563 #define ICLS_SYSSHADOW 23
564 #define ICLS_HWNDMESSAGE 24
565 #define ICLS_NOTUSED 25
569 #define COLOR_LAST COLOR_MENUBAR
570 #define MAX_MB_STRINGS 11
572 #define SRVINFO_METRICS 0x0020
574 typedef struct tagOEMBITMAPINFO
580 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
582 typedef struct tagMBSTRING
587 } MBSTRING
, *PMBSTRING
;
589 typedef struct tagDPISERVERINFO
591 INT gclBorder
; /* 000 */
592 HFONT hCaptionFont
; /* 004 */
593 HFONT hMsgFont
; /* 008 */
594 INT cxMsgFontChar
; /* 00C */
595 INT cyMsgFontChar
; /* 010 */
596 UINT wMaxBtnSize
; /* 014 */
597 } DPISERVERINFO
, *PDPISERVERINFO
;
599 typedef struct _PERUSERSERVERINFO
601 INT aiSysMet
[SM_CMETRICS
];
602 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
603 COLORREF argbSystem
[COLOR_LAST
+1];
604 HBRUSH ahbrSystem
[COLOR_LAST
+1];
608 DWORD dwLastRITEventTickCount
;
613 UINT ucWheelScrollLines
;
614 UINT ucWheelScrollChars
;
615 INT wMaxLeftOverlapChars
;
616 INT wMaxRightOverlapChars
;
619 TEXTMETRICW tmSysFont
;
620 DPISERVERINFO dpiSystem
;
621 HICON hIconSmWindows
;
624 DWORD dwAsyncKeyCache
;
626 OEMBITMAPINFO oembmi
[93];
635 DWORD dwLastSystemRITEventTickCountUpdate
;
636 ULONG adwDBGTAGFlags
[35];
639 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
641 typedef struct tagSERVERINFO
644 ULONG_PTR cHandleEntries
;
645 PFN_FNID mpFnidPfn
[FNID_NUM
];
646 WNDPROC aStoCidPfn
[7];
647 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
648 PFNCLIENT apfnClientA
;
649 PFNCLIENT apfnClientW
;
650 PFNCLIENTWORKER apfnClientWorker
;
652 ATOM atomSysClass
[ICLS_NOTUSED
+1];
653 DWORD dwDefaultHeapBase
;
654 DWORD dwDefaultHeapSize
;
656 MBSTRING MBStrings
[MAX_MB_STRINGS
];
659 ATOM atomContextHelpIdProp
;
660 ATOM atomFrostedWindowProp
;
661 CHAR acOemToAnsi
[256];
662 CHAR acAnsiToOem
[256];
663 DWORD dwInstalledEventHooks
;
665 } SERVERINFO
, *PSERVERINFO
;
668 // Server event activity bits.
669 #define SRV_EVENT_MENU 0x0001
670 #define SRV_EVENT_END_APPLICATION 0x0002
671 #define SRV_EVENT_RUNNING 0x0004
672 #define SRV_EVENT_NAMECHANGE 0x0008
673 #define SRV_EVENT_VALUECHANGE 0x0010
674 #define SRV_EVENT_STATECHANGE 0x0020
675 #define SRV_EVENT_LOCATIONCHANGE 0x0040
676 #define SRV_EVENT_CREATE 0x8000
678 typedef struct _PROPLISTITEM
682 } PROPLISTITEM
, *PPROPLISTITEM
;
684 typedef struct _PROPERTY
686 LIST_ENTRY PropListEntry
;
689 } PROPERTY
, *PPROPERTY
;
691 typedef struct _BROADCASTPARM
698 } BROADCASTPARM
, *PBROADCASTPARM
;
700 PW32THREADINFO
GetW32ThreadInfo(VOID
);
701 PPROCESSINFO
GetW32ProcessInfo(VOID
);
703 typedef struct _WNDMSG
709 typedef struct _SHAREDINFO
711 PSERVERINFO psi
; // global Server Info
712 PVOID aheList
; // Handle Entry List
713 PVOID pDispInfo
; // global PDISPLAYINFO pointer
714 ULONG_PTR ulSharedDelta
; // Heap delta
715 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
716 WNDMSG DefWindowMsgs
;
717 WNDMSG DefWindowSpecMsgs
;
718 } SHAREDINFO
, *PSHAREDINFO
;
720 typedef struct _USERCONNECT
723 ULONG ulCurrentVersion
;
724 DWORD dwDispatchCount
;
726 } USERCONNECT
, *PUSERCONNECT
;
729 // Non SDK Window Message types.
731 #define WM_CLIENTSHUTDOWN 59
732 #define WM_COPYGLOBALDATA 73
733 #define WM_SYSTIMER 280
734 #define WM_POPUPSYSTEMMENU 787
735 #define WM_CBT 1023 // ReactOS only.
736 #define WM_MAXIMUM 0x0001FFFF
739 // Non SDK DCE types.
741 #define DCX_USESTYLE 0x00010000
742 #define DCX_KEEPCLIPRGN 0x00040000
745 // Non SDK Queue message types.
747 #define QS_SMRESULT 0x8000
751 NtUserAssociateInputContext(
782 NtUserCtxDisplayIOCtl(
801 NtUserDrawMenuBarTemp(
810 NtUserEnableMenuItem(
821 NtUserGetMenuBarInfo(
835 NtUserGetMenuItemRect(
849 NtUserHiliteMenuItem(
857 NtUserMenuItemFromPoint(
879 NtUserSetMenuContextHelpId(
881 DWORD dwContextHelpId
);
885 NtUserSetMenuDefaultItem(
892 NtUserSetMenuFlagRtoL(
903 NtUserThunkedMenuInfo(
909 NtUserThunkedMenuItemInfo(
914 LPMENUITEMINFOW lpmii
,
915 PUNICODE_STRING lpszCaption
);
919 NtUserTrackPopupMenuEx(
929 NtUserActivateKeyboardLayout(
935 NtUserAlterWindowStyle(
942 NtUserAttachThreadInput(
948 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
983 PULONG pRequiredSize
);
993 /* apfnSimpleCall indices from Windows XP SP 2 */
994 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
995 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
997 enum SimpleCallRoutines
999 NOPARAM_ROUTINE_CREATEMENU
,
1000 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1001 #if (WIN32K_VERSION >= NTDDI_VISTA)
1002 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1003 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1004 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1005 NOPARAM_ROUTINE_DESTROY_CARET
,
1007 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1008 #if (WIN32K_VERSION < NTDDI_VISTA)
1009 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1010 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1011 NOPARAM_ROUTINE_DESTROY_CARET
,
1013 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1014 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1015 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1016 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1017 #if (WIN32K_VERSION >= NTDDI_VISTA)
1018 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1020 NOPARAM_ROUTINE_GETREMOTEPROCID
,
1022 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1023 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1024 #if (WIN32K_VERSION >= NTDDI_VISTA)
1025 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1026 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1028 NOPARAM_ROUTINE_RELEASECAPTURE
,
1029 NOPARAM_ROUTINE_RESETDBLCLICK
,
1030 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1031 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1032 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1033 NOPARAM_ROUTINE_REMOTELOGOFF
,
1034 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1035 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1036 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1037 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1038 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1039 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1040 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1041 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1042 #if (WIN32K_VERSION >= NTDDI_VISTA)
1043 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1045 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1046 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1047 #if (WIN32K_VERSION < NTDDI_VISTA)
1048 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1050 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1051 #if (WIN32K_VERSION >= NTDDI_VISTA)
1052 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1054 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1055 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1056 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1057 #if (WIN32K_VERSION < NTDDI_VISTA)
1058 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1060 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1061 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1062 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1063 #if (WIN32K_VERSION < NTDDI_VISTA)
1064 ONEPARAM_ROUTINE_GETCURSORPOS
,
1066 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1067 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1068 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1069 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1070 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1071 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1072 #if (WIN32K_VERSION < NTDDI_VISTA)
1073 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1075 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1076 ONEPARAM_ROUTINE_LOADFONTS
,
1077 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1078 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1079 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1080 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1081 #if (WIN32K_VERSION < NTDDI_VISTA)
1082 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1084 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1085 ONEPARAM_ROUTINE_REGISTERLPK
,
1086 #if (WIN32K_VERSION >= NTDDI_VISTA)
1087 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1089 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1090 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1091 ONEPARAM_ROUTINE_RELEASEDC
,
1092 #if (WIN32K_VERSION >= NTDDI_VISTA)
1093 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1095 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1096 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1097 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1098 #if (WIN32K_VERSION < NTDDI_VISTA)
1099 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1101 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1102 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1103 #if (WIN32K_VERSION >= NTDDI_VISTA)
1104 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1106 ONEPARAM_ROUTINE_SHOWCURSOR
,
1107 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1108 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1109 X_ROUTINE_WOWMODULEUNLOAD
,
1110 #if (WIN32K_VERSION < NTDDI_VISTA)
1111 X_ROUTINE_REMOTENOTIFY
,
1113 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1114 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1115 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1116 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1117 HWND_ROUTINE_SETMSGBOX
,
1118 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1119 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1120 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1121 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1122 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1123 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1124 HWNDPARAM_ROUTINE_SETVISIBLE
,
1125 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1126 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1127 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1128 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1129 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1130 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1131 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1132 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1133 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1134 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1135 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1136 HWNDLOCK_ROUTINE_SETSYSMENU
,
1137 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1138 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1139 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1140 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1141 TWOPARAM_ROUTINE_REDRAWTITLE
,
1142 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1143 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1144 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1145 TWOPARAM_ROUTINE_VALIDATERGN
,
1146 #if (WIN32K_VERSION >= NTDDI_VISTA)
1147 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1148 TWOPARAM_ROUTINE_GETCURSORPOS
,
1150 TWOPARAM_ROUTINE_GETHDEVNAME
,
1151 TWOPARAM_ROUTINE_INITANSIOEM
,
1152 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1153 #if (WIN32K_VERSION >= NTDDI_VISTA)
1154 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1156 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1157 #if (WIN32K_VERSION >= NTDDI_VISTA)
1158 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1160 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1162 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1163 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1164 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1165 TWOPARAM_ROUTINE_SETCARETPOS
,
1166 TWOPARAM_ROUTINE_SETCURSORPOS
,
1167 #if (WIN32K_VERSION >= NTDDI_VISTA)
1168 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1170 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1171 TWOPARAM_ROUTINE_WOWCLEANUP
1194 NtUserCallHwndParam(
1201 NtUserCallHwndParamLock(
1208 NtUserCallMsgFilter(
1214 NtUserCallNextHookEx(
1240 NtUserChangeClipboardChain(
1246 NtUserChangeDisplaySettings(
1247 PUNICODE_STRING lpszDeviceName
,
1248 LPDEVMODEW lpDevMode
,
1255 NtUserCheckDesktopByThreadId(
1260 NtUserCheckWindowThreadDesktop(
1267 NtUserCheckImeHotKey(
1272 NtUserChildWindowFromPointEx(
1285 NtUserCloseClipboard(VOID
);
1294 NtUserCloseWindowStation(
1299 NtUserConsoleControl(
1306 NtUserConvertMemHandle(
1312 NtUserCopyAcceleratorTable(
1319 NtUserCountClipboardFormats(VOID
);
1323 NtUserCreateAcceleratorTable(
1325 SIZE_T EntriesCount
);
1337 NtUserCreateDesktop(
1338 POBJECT_ATTRIBUTES poa
,
1339 PUNICODE_STRING lpszDesktopDevice
,
1342 ACCESS_MASK dwDesiredAccess
);
1346 NtUserCreateInputContext(
1351 NtUserCreateLocalMemHandle(
1359 NtUserCreateWindowEx(
1361 PUNICODE_STRING lpClassName
,
1362 PUNICODE_STRING lpWindowName
,
1370 HINSTANCE hInstance
,
1373 BOOL bUnicodeWindow
,
1378 NtUserCreateWindowEx(
1380 PLARGE_STRING plstrClassName
,
1381 PLARGE_STRING plstrClsVesrion
,
1382 PLARGE_STRING plstrWindowName
,
1390 HINSTANCE hInstance
,
1392 DWORD dwFlags
, // |= 1 == Ansi
1398 NtUserCreateWindowStation(
1399 PUNICODE_STRING lpszWindowStationName
,
1400 ACCESS_MASK dwDesiredAccess
,
1401 LPSECURITY_ATTRIBUTES lpSecurity
,
1409 NtUserDdeGetQualityOfService(
1412 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1416 NtUserDdeInitialize(
1425 NtUserDdeSetQualityOfService(
1427 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1428 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1431 NtUserDeferWindowPos(
1434 HWND WndInsertAfter
,
1442 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1446 NtUserDestroyAcceleratorTable(
1451 NtUserDestroyCursor(
1457 NtUserDestroyInputContext(
1461 NtUserDestroyWindow(HWND Wnd
);
1465 NtUserDisableThreadIme(
1470 NtUserDispatchMessage(PMSG pMsg
);
1489 NtUserDrawAnimatedRects(
1505 NtUserDrawCaptionTemp(
1511 const PUNICODE_STRING str
,
1524 HBRUSH hbrFlickerFreeDraw
,
1531 NtUserEmptyClipboard(VOID
);
1535 NtUserEnableScrollBar(
1542 NtUserEndDeferWindowPosEx(
1547 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1551 NtUserEnumDisplayDevices (
1552 PUNICODE_STRING lpDevice
, /* device name */
1553 DWORD iDevNum
, /* display device */
1554 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1555 DWORD dwFlags
); /* reserved */
1559 NtUserEnumDisplayMonitors (
1562 MONITORENUMPROC lpfnEnum,
1564 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1567 NtUserEnumDisplayMonitors(
1568 OPTIONAL IN HDC hDC
,
1569 OPTIONAL IN LPCRECT pRect
,
1570 OPTIONAL OUT HMONITOR
*hMonitorList
,
1571 OPTIONAL OUT LPRECT monitorRectList
,
1572 OPTIONAL IN DWORD listSize
);
1577 NtUserEnumDisplaySettings(
1578 PUNICODE_STRING lpszDeviceName
,
1580 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1590 NtUserExcludeUpdateRgn(
1604 NtUserFindExistingCursorIcon(
1614 HWND hwndChildAfter
,
1615 PUNICODE_STRING ucClassName
,
1616 PUNICODE_STRING ucWindowName
,
1622 NtUserFlashWindowEx(
1623 IN PFLASHWINFO pfwi
);
1627 NtUserGetAltTabInfo(
1636 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1640 NtUserGetAppImeLevel(
1645 NtUserGetAsyncKeyState(
1656 NtUserGetCaretBlinkTime(VOID
);
1664 NtUserGetClassInfo(HINSTANCE hInstance
,
1665 PUNICODE_STRING ClassName
,
1667 LPWSTR
*ppszMenuName
,
1672 NtUserGetClassName(HWND hWnd
,
1673 PUNICODE_STRING ClassName
,
1675 #if 0 // Real NtUserGetClassName
1678 NtUserGetClassName(HWND hWnd
,
1679 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1680 PUNICODE_STRING ClassName
);
1685 NtUserGetClipboardData(
1691 NtUserGetClipboardFormatName(
1693 PUNICODE_STRING FormatName
,
1698 NtUserGetClipboardOwner(VOID
);
1702 NtUserGetClipboardSequenceNumber(VOID
);
1706 NtUserGetClipboardViewer(VOID
);
1710 NtUserGetClipCursor(
1715 NtUserGetComboBoxInfo(
1717 PCOMBOBOXINFO pcbi
);
1721 NtUserGetControlBrush(
1728 NtUserGetControlColor(
1743 NtUserGetCursorFrameInfo(
1751 NtUserGetCursorInfo(
1768 NtUserGetDoubleClickTime(VOID
);
1772 NtUserGetForegroundWindow(VOID
);
1776 NtUserGetGuiResources(
1782 NtUserGetGUIThreadInfo(
1784 LPGUITHREADINFO lpgui
);
1791 PUNICODE_STRING lpInstName
,
1792 PUNICODE_STRING lpResName
,
1820 NtUserGetInternalWindowPos(
1827 NtUserGetKeyboardLayout(
1832 NtUserGetKeyboardLayoutList(
1838 NtUserGetKeyboardLayoutName(
1843 NtUserGetKeyboardState(
1848 NtUserGetKeyboardType(
1853 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1862 NtUserGetLayeredWindowAttributes(
1870 NtUserGetListBoxInfo(
1873 typedef struct tagNTUSERGETMESSAGEINFO
1877 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1882 PNTUSERGETMESSAGEINFO MsgInfo
,
1885 UINT wMsgFilterMax
);
1889 NtUserGetMouseMovePointsEx(
1891 LPMOUSEMOVEPOINT lppt
,
1892 LPMOUSEMOVEPOINT lpptBuf
,
1898 NtUserGetObjectInformation(
1901 PVOID pvInformation
,
1903 PDWORD nLengthNeeded
);
1907 NtUserGetOpenClipboardWindow(VOID
);
1911 NtUserGetPriorityClipboardFormat(
1912 UINT
*paFormatPriorityList
,
1917 NtUserGetProcessWindowStation(VOID
);
1921 NtUserGetRawInputBuffer(
1928 NtUserGetRawInputData(
1929 HRAWINPUT hRawInput
,
1937 NtUserGetRawInputDeviceInfo(
1945 NtUserGetRawInputDeviceList(
1946 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1947 PUINT puiNumDevices
,
1952 NtUserGetRegisteredRawInputDevices(
1953 PRAWINPUTDEVICE pRawInputDevices
,
1954 PUINT puiNumDevices
,
1959 NtUserGetScrollBarInfo(
1962 PSCROLLBARINFO psbi
);
1966 NtUserGetThreadDesktop(
1971 enum ThreadStateRoutines
1973 THREADSTATE_GETTHREADINFO
,
1974 THREADSTATE_INSENDMESSAGE
,
1975 THREADSTATE_FOCUSWINDOW
,
1976 THREADSTATE_ACTIVEWINDOW
,
1977 THREADSTATE_CAPTUREWINDOW
,
1978 THREADSTATE_PROGMANWINDOW
,
1979 THREADSTATE_TASKMANWINDOW
,
1980 THREADSTATE_GETMESSAGETIME
,
1981 THREADSTATE_GETINPUTSTATE
1986 NtUserGetThreadState(
1991 NtUserGetTitleBarInfo(
1996 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
2012 NtUserGetWindowPlacement(
2014 WINDOWPLACEMENT
*lpwndpl
);
2019 HINSTANCE hInstance
,
2020 PUNICODE_STRING ClassName
);
2024 NtUserHardErrorControl(
2031 NtUserImpersonateDdeClientWindow(
2039 HANDLE hPowerRequestEvent
,
2040 HANDLE hMediaRequestEvent
);
2044 NtUserInitializeClientPfnArrays(
2045 PPFNCLIENT pfnClientA
,
2046 PPFNCLIENT pfnClientW
,
2047 PPFNCLIENTWORKER pfnClientWorker
,
2048 HINSTANCE hmodUser
);
2068 NtUserInternalGetWindowText(
2075 NtUserInvalidateRect(
2082 NtUserInvalidateRgn(
2089 NtUserIsClipboardFormatAvailable(
2102 NtUserLoadKeyboardLayoutEx(
2105 IN PUNICODE_STRING puszKeyboardName
,
2107 IN PUNICODE_STRING puszKLID
,
2113 NtUserLockWindowStation(
2114 HWINSTA hWindowStation
);
2118 NtUserLockWindowUpdate(
2123 NtUserLockWorkStation(VOID
);
2127 NtUserMapVirtualKeyEx( UINT keyCode
,
2138 ULONG_PTR ResultInfo
,
2139 DWORD dwType
, // FNID_XX types
2146 UINT cmd
, // Wine SW_ commands
2151 NtUserMNDragLeave(VOID
);
2161 NtUserModifyUserStartupInfoFlags(
2178 NtUserNotifyIMEStatus(
2185 NtUserNotifyProcessCreate(
2193 NtUserNotifyWinEvent(
2201 NtUserOpenClipboard(
2208 PUNICODE_STRING lpszDesktopName
,
2210 ACCESS_MASK dwDesiredAccess
);
2214 NtUserOpenInputDesktop(
2217 ACCESS_MASK dwDesiredAccess
);
2221 NtUserOpenWindowStation(
2222 PUNICODE_STRING lpszWindowStationName
,
2223 ACCESS_MASK dwDesiredAccess
);
2243 PNTUSERGETMESSAGEINFO MsgInfo
,
2259 NtUserPostThreadMessage(
2274 NtUserProcessConnect(
2276 OUT PUSERCONNECT pUserConnect
,
2277 IN DWORD dwSize
); // sizeof(USERCONNECT)
2281 NtUserQueryInformationThread(
2290 NtUserQueryInputContext(
2296 NtUserQuerySendMessage(
2301 NtUserQueryUserCounters(
2308 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2309 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2310 #define QUERY_WINDOW_ACTIVE 0x02
2311 #define QUERY_WINDOW_FOCUS 0x03
2312 #define QUERY_WINDOW_ISHUNG 0x04
2321 NtUserRealInternalGetMessage(
2331 NtUserRealChildWindowFromPoint(
2338 NtUserRealWaitMessageEx(
2347 CONST RECT
*lprcUpdate
,
2354 NtUserRegisterClassExWOW(
2356 PUNICODE_STRING pustrClassName
,
2357 PUNICODE_STRING pustrCNVersion
,
2358 PCLSMENUNAME pClassMenuName
,
2365 NtUserRegisterRawInputDevices(
2366 IN PCRAWINPUTDEVICE pRawInputDevices
,
2367 IN UINT uiNumDevices
,
2372 NtUserRegisterUserApiHook(
2378 NtUserRegisterHotKey(HWND hWnd
,
2385 NtUserRegisterTasklist(
2389 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2393 NtUserRemoteConnect(
2400 NtUserRemoteRedrawRectangle(
2408 NtUserRemoteRedrawScreen(VOID
);
2412 NtUserRemoteStopScreenUpdates(VOID
);
2415 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2419 NtUserResolveDesktop(
2427 NtUserResolveDesktopForWOW(
2444 CONST RECT
*lprcScroll
,
2445 CONST RECT
*lprcClip
,
2450 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2451 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2461 NtUserSetActiveWindow(HWND Wnd
);
2465 NtUserSetAppImeLevel(
2470 NtUserSetCapture(HWND Wnd
);
2476 ULONG_PTR dwNewLong
,
2488 NtUserSetClipboardData(
2495 NtUserSetClipboardViewer(
2496 HWND hWndNewViewer
);
2500 NtUserSelectPalette(
2503 BOOL ForceBackground
2508 NtUserSetConsoleReserveKeys(
2519 NtUserSetCursorContents(
2521 PICONINFO IconInfo
);
2525 NtUserSetCursorIconData(
2560 NtUserSetImeOwnerWindow(
2566 NtUserSetInformationProcess(
2574 NtUserSetInformationThread(
2582 NtUserSetInternalWindowPos(
2590 NtUserSetKeyboardState(
2595 NtUserSetLayeredWindowAttributes(
2603 NtUserSetLogonNotifyWindow(
2608 NtUserSetObjectInformation(
2611 PVOID pvInformation
,
2618 HWND hWndNewParent
);
2622 NtUserSetProcessWindowStation(
2623 HWINSTA hWindowStation
);
2626 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2636 NtUserSetScrollInfo(
2644 NtUserSetShellWindowEx(
2646 HWND hwndShellListView
);
2652 IN CONST INT
*lpaElements
,
2653 IN CONST COLORREF
*lpaRgbValues
,
2658 NtUserSetSystemCursor(
2664 NtUserSetThreadDesktop(
2669 NtUserSetThreadState(
2675 NtUserSetSystemTimer
2680 TIMERPROC lpTimerFunc
2685 NtUserSetThreadLayoutHandles(
2696 TIMERPROC lpTimerFunc
2701 NtUserSetWindowFNID(
2707 NtUserSetWindowLong(
2715 NtUserSetWindowPlacement(
2717 WINDOWPLACEMENT
*lpwndpl
);
2720 NTAPI
NtUserSetWindowPos(
2722 HWND hWndInsertAfter
,
2739 NtUserSetWindowsHookAW(
2746 NtUserSetWindowsHookEx(
2748 PUNICODE_STRING ModuleName
,
2756 NtUserSetWindowStationUser(
2763 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2767 NtUserSetWinEventHook(
2770 HMODULE hmodWinEventProc
,
2771 PUNICODE_STRING puString
,
2772 WINEVENTPROC lpfnWinEventProc
,
2789 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2799 NtUserShowWindowAsync(
2805 NtUserSoundSentry(VOID
);
2809 NtUserSwitchDesktop(
2814 NtUserSystemParametersInfo(
2822 NtUserTestForInteractiveUser(
2838 NtUserTrackMouseEvent(
2839 LPTRACKMOUSEEVENT lpEventTrack
);
2843 NtUserTranslateAccelerator(
2850 NtUserTranslateMessage(
2856 NtUserUnhookWindowsHookEx(
2861 NtUserUnhookWinEvent(
2862 HWINEVENTHOOK hWinEventHook
);
2866 NtUserUnloadKeyboardLayout(
2871 NtUserUnlockWindowStation(
2872 HWINSTA hWindowStation
);
2876 NtUserUnregisterClass(
2877 PUNICODE_STRING ClassNameOrAtom
,
2878 HINSTANCE hInstance
,
2879 PCLSMENUNAME pClassMenuName
);
2883 NtUserUnregisterHotKey(HWND hWnd
,
2888 NtUserUnregisterUserApiHook(VOID
);
2892 NtUserUpdateInputContext(
2899 NtUserUpdateInstance(
2906 NtUserUpdateLayeredWindow(
2914 BLENDFUNCTION
*pblend
,
2920 NtUserUpdatePerUserSystemParameters(
2926 NtUserUserHandleGrantAccess(
2927 IN HANDLE hUserHandle
,
2933 NtUserValidateHandleSecure(
2941 CONST RECT
*lpRect
);
2945 NtUserValidateTimerCallback(
2959 NtUserWaitForInputIdle(
2961 IN DWORD dwMilliseconds
,
2962 IN BOOL Unknown2
); // Always FALSE
2966 NtUserWaitForMsgAndEvent(
2971 NtUserWaitMessage(VOID
);
2975 NtUserWin32PoolAllocationStats(
2985 NtUserWindowFromPhysicalPoint(
2990 NtUserWindowFromPoint(
2996 NtUserYieldTask(VOID
);
2998 /* lParam of DDE messages */
2999 typedef struct tagKMDDEEXECUTEDATA
3003 /* BYTE Data[DataSize] */
3004 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
3006 typedef struct tagKMDDELPARAM
3018 } KMDDELPARAM
, *PKMDDELPARAM
;
3025 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3028 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3029 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3030 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
3031 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3032 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
3033 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
3034 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
3035 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3036 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3037 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3038 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3039 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
3040 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3041 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3042 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3043 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3044 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3045 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3046 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
3047 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3048 #define MSQ_STATE_CAPTURE 0x1
3049 #define MSQ_STATE_ACTIVE 0x2
3050 #define MSQ_STATE_FOCUS 0x3
3051 #define MSQ_STATE_MENUOWNER 0x4
3052 #define MSQ_STATE_MOVESIZE 0x5
3053 #define MSQ_STATE_CARET 0x6
3054 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3055 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3056 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
3057 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
3058 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
3059 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3063 NtUserBuildMenuItemList(
3069 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3072 NtUserCreateCursorIconHandle(
3077 /* Should be done in usermode and use NtUserGetCPD. */
3080 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3084 NtUserGetMenuDefaultItem(
3091 NtUserGetLastInputInfo(
3092 PLASTINPUTINFO plii
);
3096 NtUserGetMinMaxInfo(
3098 MINMAXINFO
*MinMaxInfo
,
3103 NtUserGetMonitorInfo(
3104 IN HMONITOR hMonitor
,
3105 OUT LPMONITORINFO pMonitorInfo
);
3107 /* Should be done in usermode */
3110 NtUserGetScrollInfo(
3117 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
3119 /* Should be done in usermode and use NtUserGetCPD. */
3122 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
3125 /* (other FocusedItem values give the position of the focused item) */
3126 #define NO_SELECTED_ITEM 0xffff
3128 typedef struct tagROSMENUINFO
3130 /* ----------- MENUINFO ----------- */
3136 DWORD dwContextHelpID
;
3137 ULONG_PTR dwMenuData
;
3138 /* ----------- Extra ----------- */
3139 HMENU Self
; /* Handle of this menu */
3140 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3141 UINT FocusedItem
; /* Currently focused item */
3142 UINT MenuItemCount
; /* Number of items in the menu */
3143 HWND Wnd
; /* Window containing the menu */
3144 WORD Width
; /* Width of the whole menu */
3145 WORD Height
; /* Height of the whole menu */
3146 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3147 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3148 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3149 } ROSMENUINFO
, *PROSMENUINFO
;
3161 typedef struct tagROSMENUITEMINFO
3163 /* ----------- MENUITEMINFOW ----------- */
3170 HBITMAP hbmpChecked
;
3171 HBITMAP hbmpUnchecked
;
3176 /* ----------- Extra ----------- */
3177 RECT Rect
; /* Item area (relative to menu window) */
3178 UINT XTab
; /* X position of text after Tab */
3179 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3180 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3188 PROSMENUITEMINFO lpmii
,
3194 NtUserMonitorFromPoint(
3200 NtUserMonitorFromRect(
3206 NtUserMonitorFromWindow(
3211 typedef struct tagNTUSERSENDMESSAGEINFO
3213 BOOL HandledByKernel
;
3216 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3218 /* use NtUserMessageCall */
3220 NtUserSendMessage(HWND hWnd
,
3224 PNTUSERSENDMESSAGEINFO Info
);
3226 /* use NtUserMessageCall */
3228 NtUserSendMessageTimeout(HWND hWnd
,
3235 PNTUSERSENDMESSAGEINFO Info
);
3237 typedef struct _SETSCROLLBARINFO
3241 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3242 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3246 NtUserSetScrollBarInfo(
3249 SETSCROLLBARINFO
*info
);
3253 #endif /* __WIN32K_NTUSER_H */