1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
4 typedef struct _PROCESSINFO
*PPROCESSINFO
;
5 typedef struct _THREADINFO
*PTHREADINFO
;
9 typedef struct _LARGE_UNICODE_STRING
12 ULONG MaximumLength
:31;
15 } LARGE_UNICODE_STRING
, *PLARGE_UNICODE_STRING
;
17 typedef struct _LARGE_STRING
20 ULONG MaximumLength
:31;
23 } LARGE_STRING
, *PLARGE_STRING
;
25 // Based on ANSI_STRING
27 typedef struct _LARGE_ANSI_STRING
30 ULONG MaximumLength
:31;
33 } LARGE_ANSI_STRING
, *PLARGE_ANSI_STRING
;
35 VOID NTAPI
RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING
,IN PCSZ
,IN INT
);
36 VOID NTAPI
RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING
,IN PCWSTR
,IN INT
);
37 BOOL NTAPI
RtlLargeStringToUnicodeString( PUNICODE_STRING
, PLARGE_STRING
);
39 typedef struct _DESKTOPINFO
56 UINT LastInputWasKbd
: 1;
60 WCHAR szDesktopName
[1];
61 } DESKTOPINFO
, *PDESKTOPINFO
;
63 #define CTI_INSENDMESSAGE 0x0002
65 typedef struct _CLIENTTHREADINFO
70 WORD fsWakeBitsJournal
;
72 ULONG tickLastMsgChecked
;
74 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
82 typedef struct _THROBJHEAD
86 } THROBJHEAD
, *PTHROBJHEAD
;
88 typedef struct _THRDESKHEAD
91 struct _DESKTOP
*rpdesk
;
93 } THRDESKHEAD
, *PTHRDESKHEAD
;
95 typedef struct _PROCDESKHEAD
100 struct _DESKTOP
*rpdesk
;
102 } PROCDESKHEAD
, *PPROCDESKHEAD
;
104 #define UserHMGetHandle(obj) ((obj)->head.h)
106 /* Window Client Information structure */
109 typedef struct tagHOOK
112 LIST_ENTRY Chain
; /* Hook chain entry */
113 struct _ETHREAD
* Thread
; /* Thread owning the hook */
114 int HookId
; /* Hook table index */
115 HOOKPROC Proc
; /* Hook function */
116 BOOLEAN Ansi
; /* Is it an Ansi hook? */
117 ULONG Flags
; /* Some internal flags */
118 UNICODE_STRING ModuleName
; /* Module name for global hooks */
121 typedef struct _CALLBACKWND
125 } CALLBACKWND
, *PCALLBACKWND
;
127 #define CI_CURTHPRHOOK 0x00000010
129 typedef struct _CLIENTINFO
135 DWORD dwCompatFlags2
;
137 PDESKTOPINFO pDeskInfo
;
138 ULONG_PTR ulClientDelta
;
141 CALLBACKWND CallbackWnd
;
143 INT cInDDEMLCallback
;
144 PCLIENTTHREADINFO pClientThreadInfo
;
145 ULONG_PTR dwHookData
;
148 DWORD dwAsyncKeyCache
;
149 BYTE afAsyncKeyState
[8];
150 BYTE afAsyncKeyStateRecentDow
[8];
155 LPDWORD lpdwRegisteredClasses
;
156 ULONG Win32ClientInfo3
[27];
157 /* It's just a pointer reference not to be used w the structure in user space. */
159 } CLIENTINFO
, *PCLIENTINFO
;
161 /* Make sure it fits exactly into the TEB */
162 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
164 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
166 typedef struct _REGISTER_SYSCLASS
168 /* This is a reactos specific class used to initialize the
169 system window classes during user32 initialization */
178 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
180 typedef struct _CLSMENUNAME
182 LPSTR pszClientAnsiMenuName
;
183 LPWSTR pwszClientUnicodeMenuName
;
184 PUNICODE_STRING pusMenuName
;
185 } CLSMENUNAME
, *PCLSMENUNAME
;
187 typedef struct tagSBDATA
195 typedef struct tagSBINFO
204 UserGetCPDA2U
= 0x01, // " Unicode "
205 UserGetCPDU2A
= 0X02, // " Ansi "
206 UserGetCPDClass
= 0X10,
207 UserGetCPDWindow
= 0X20,
208 UserGetCPDDialog
= 0X40,
209 UserGetCPDWndtoCls
= 0X80
212 typedef struct _CALLPROCDATA
215 struct _CALLPROCDATA
*spcpdNext
;
216 WNDPROC pfnClientPrevious
;
218 } CALLPROCDATA
, *PCALLPROCDATA
;
220 #define CSF_SERVERSIDEPROC 0x0001
221 #define CSF_ANSIPROC 0x0002
222 #define CSF_WOWDEFERDESTROY 0x0004
223 #define CSF_SYSTEMCLASS 0x0008
224 #define CSF_WOWCLASS 0x0010
225 #define CSF_WOWEXTRA 0x0020
226 #define CSF_CACHEDSMICON 0x0040
227 #define CSF_WIN40COMPAT 0x0080
231 struct _CLS
*pclsNext
;
232 RTL_ATOM atomClassName
;
233 ATOM atomNVClassName
;
235 struct _DESKTOP
*rpdeskParent
;
238 PSTR lpszClientAnsiMenuName
; // For client use
239 PWSTR lpszClientUnicodeMenuName
; // " " "
240 PCALLPROCDATA spcpdFirst
;
241 struct _CLS
*pclsBase
;
242 struct _CLS
*pclsClone
;
243 ULONG cWndReferenceCount
;
249 HANDLE hIcon
; /* FIXME - Use pointer! */
251 HANDLE hCursor
; /* FIXME - Use pointer! */
253 HBRUSH hbrBackground
;
254 PWSTR lpszMenuName
; // kernel use
255 PSTR lpszAnsiClassName
; // "
256 HANDLE hIconSm
; /* FIXME - Use pointer! */
259 UINT Unicode
: 1; // !CSF_ANSIPROC
260 UINT Global
: 1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
261 UINT MenuNameIsString
: 1;
266 // State Flags !Not Implemented!
267 #define WNDS_HASMENU 0X00000001
268 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
269 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
270 #define WNDS_HASCAPTION 0X00000008
271 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
272 #define WNDS_MSGBOX 0X00000020
273 #define WNDS_ACTIVEFRAME 0X00000040
274 #define WNDS_HASSPB 0X00000080
275 #define WNDS_NONCPAINT 0X00000100
276 #define WNDS_SENDERASEBACKGROUND 0X00000200
277 #define WNDS_ERASEBACKGROUND 0X00000400
278 #define WNDS_SENDNCPAINT 0X00000800
279 #define WNDS_INTERNALPAINT 0X00001000
280 #define WNDS_UPDATEDIRTY 0X00002000
281 #define WNDS_HIDDENPOPUP 0X00004000
282 #define WNDS_FORCEMENUDRAW 0X00008000
283 #define WNDS_DIALOGWINDOW 0X00010000
284 #define WNDS_HASCREATESTRUCTNAME 0X00020000
285 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
286 #define WNDS_ANSIWINDOWPROC 0x00080000
287 #define WNDS_BEGINGACTIVATED 0x00100000
288 #define WNDS_HASPALETTE 0x00200000
289 #define WNDS_PAINTNOTPROCESSED 0x00400000
290 #define WNDS_SYNCPAINTPENDING 0x00800000
291 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
292 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
293 #define WNDS_TOGGLETOPMOST 0x04000000
294 #define WNDS_REDRAWIFHUNG 0x08000000
295 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
296 #define WNDS_ANSICREATOR 0x20000000
297 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
298 #define WNDS_DESTROYED 0x80000000
300 // State2 Flags !Not Implemented!
301 #define WNDS2_WMPAINTSENT 0X00000001
302 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
303 #define WNDS2_STARTPAINT 0X00000004
304 #define WNDS2_OLDUI 0X00000008
305 #define WNDS2_HASCLIENTEDGE 0X00000010
306 #define WNDS2_BOTTOMMOST 0X00000020
307 #define WNDS2_FULLSCREEN 0X00000040
308 #define WNDS2_INDESTROY 0X00000080
309 #define WNDS2_WIN31COMPAT 0X00000100
310 #define WNDS2_WIN40COMPAT 0X00000200
311 #define WNDS2_WIN50COMPAT 0X00000400
312 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
313 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
314 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
315 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
316 #define WNDS2_HELPBUTTONDOWN 0X00008000
317 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
318 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
319 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
320 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
321 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
322 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
323 #define WNDS2_FORCENCPAINT 0X00400000
324 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
325 #define WNDS2_FULLSCREENMODE 0X01000000
326 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
327 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
328 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
329 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
330 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
332 /* Non SDK ExStyles */
333 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
334 #define WS_EX_FORCELEGACYRESIZENCMETR 0x00800000
335 #define WS_EX_UISTATEACTIVE 0x04000000
336 #define WS_EX_REDIRECTED 0X20000000
337 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
338 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
339 #define WS_EX_SETANSICREATOR 0x80000000 // For WNDS_ANSICREATOR
342 #define WS_MAXIMIZED WS_MAXIMIZE
343 #define WS_MINIMIZED WS_MINIMIZE
346 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
347 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
348 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
349 #define WS_EX2_LINKED 0X00000008
350 #define WS_EX2_LAYEREDFORDWM 0X00000010
351 #define WS_EX2_LAYEREDLIMBO 0X00000020
352 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
353 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
354 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
355 #define WS_EX2_HASOVERLAY 0X00000200
356 #define WS_EX2_CONSOLEWINDOW 0X00000400
357 #define WS_EX2_CHILDNOACTIVATE 0X00000800
364 /* Extended style. */
368 /* Handle of the module that created the window. */
371 struct _WND
*spwndNext
;
372 struct _WND
*spwndPrev
;
373 struct _WND
*spwndParent
;
374 struct _WND
*spwndChild
;
375 struct _WND
*spwndOwner
;
379 /* Pointer to the window class. */
382 /* Property list head.*/
383 LIST_ENTRY PropListHead
;
387 /* system menu handle. */
390 /* Window menu handle or window id */
391 UINT IDMenu
; // Use spmenu
396 UNICODE_STRING strName
;
397 /* Size of the extra data associated with the window. */
400 struct _WND
*spwndLastActive
;
401 //HIMC hImc; // Input context associated with this window.
403 //PACTIVATION_CONTEXT pActCtx;
404 //PD3DMATRIX pTransForm;
405 struct _WND
*spwndClipboardListener
;
415 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
416 /* Indicates whether the window is derived from a system class */
417 UINT InternalPosInitialized
: 1;
418 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
419 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
422 typedef struct _PFNCLIENT
424 WNDPROC pfnScrollBarWndProc
;
425 WNDPROC pfnTitleWndProc
;
426 WNDPROC pfnMenuWndProc
;
427 WNDPROC pfnDesktopWndProc
;
428 WNDPROC pfnDefWindowProc
;
429 WNDPROC pfnMessageWindowProc
;
430 WNDPROC pfnSwitchWindowProc
;
431 WNDPROC pfnButtonWndProc
;
432 WNDPROC pfnComboBoxWndProc
;
433 WNDPROC pfnComboListBoxProc
;
434 WNDPROC pfnDialogWndProc
;
435 WNDPROC pfnEditWndProc
;
436 WNDPROC pfnListBoxWndProc
;
437 WNDPROC pfnMDIClientWndProc
;
438 WNDPROC pfnStaticWndProc
;
439 WNDPROC pfnImeWndProc
;
440 WNDPROC pfnGhostWndProc
;
441 WNDPROC pfnHkINLPCWPSTRUCT
;
442 WNDPROC pfnHkINLPCWPRETSTRUCT
;
443 WNDPROC pfnDispatchHook
;
444 WNDPROC pfnDispatchDefWindowProc
;
445 WNDPROC pfnDispatchMessage
;
446 WNDPROC pfnMDIActivateDlgProc
;
447 } PFNCLIENT
, *PPFNCLIENT
;
450 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
451 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
454 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
456 typedef struct _PFNCLIENTWORKER
458 WNDPROC_EX pfnButtonWndProc
;
459 WNDPROC_EX pfnComboBoxWndProc
;
460 WNDPROC_EX pfnComboListBoxProc
;
461 WNDPROC_EX pfnDialogWndProc
;
462 WNDPROC_EX pfnEditWndProc
;
463 WNDPROC_EX pfnListBoxWndProc
;
464 WNDPROC_EX pfnMDIClientWndProc
;
465 WNDPROC_EX pfnStaticWndProc
;
466 WNDPROC_EX pfnImeWndProc
;
467 WNDPROC_EX pfnGhostWndProc
;
468 WNDPROC_EX pfnCtfHookProc
;
469 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
471 typedef LONG_PTR (NTAPI
*PFN_FNID
)(PWND
, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
473 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
474 #define FNID_FIRST 0x029A
475 #define FNID_SCROLLBAR 0x029A
476 #define FNID_ICONTITLE 0x029B
477 #define FNID_MENU 0x029C
478 #define FNID_DESKTOP 0x029D
479 #define FNID_DEFWINDOWPROC 0x029E
480 #define FNID_MESSAGEWND 0x029F
481 #define FNID_SWITCH 0x02A0
482 #define FNID_BUTTON 0x02A1
483 #define FNID_COMBOBOX 0x02A2
484 #define FNID_COMBOLBOX 0x02A3
485 #define FNID_DIALOG 0x02A4
486 #define FNID_EDIT 0x02A5
487 #define FNID_LISTBOX 0x02A6
488 #define FNID_MDICLIENT 0x02A7
489 #define FNID_STATIC 0x02A8
490 #define FNID_IME 0x02A9
491 #define FNID_GHOST 0x02AA
492 #define FNID_CALLWNDPROC 0x02AB
493 #define FNID_CALLWNDPROCRET 0x02AC
494 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
495 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
496 #define FNID_MB_DLGPROC 0x02AF
497 #define FNID_MDIACTIVATEDLGPROC 0x02B0
498 #define FNID_SENDMESSAGE 0x02B1
499 #define FNID_SENDMESSAGEFF 0x02B2
500 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
501 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
502 #define FNID_SENDMESSAGETIMEOUT 0x02B4
503 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
504 #define FNID_TOOLTIPS 0x02B6
505 #define FNID_SENDNOTIFYMESSAGE 0x02B7
506 #define FNID_SENDMESSAGECALLBACK 0x02B8
507 #define FNID_LAST 0x02B9
509 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
510 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
512 #define FNID_DDEML 0x2000 // Registers DDEML
513 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
514 // Seen during WM_CREATE on error exit too.
515 #define FNID_FREED 0x8000 // Window being Freed...
517 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
519 #define GETPFNCLIENTA(fnid)\
520 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
521 #define GETPFNCLIENTW(fnid)\
522 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
524 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
526 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
527 #define ICLS_BUTTON 0
529 #define ICLS_STATIC 2
530 #define ICLS_LISTBOX 3
531 #define ICLS_SCROLLBAR 4
532 #define ICLS_COMBOBOX 5
533 #define ICLS_MDICLIENT 6
534 #define ICLS_COMBOLBOX 7
535 #define ICLS_DDEMLEVENT 8
536 #define ICLS_DDEMLMOTHER 9
537 #define ICLS_DDEML16BIT 10
538 #define ICLS_DDEMLCLIENTA 11
539 #define ICLS_DDEMLCLIENTW 12
540 #define ICLS_DDEMLSERVERA 13
541 #define ICLS_DDEMLSERVERW 14
543 #define ICLS_GHOST 16
544 #define ICLS_DESKTOP 17
545 #define ICLS_DIALOG 18
547 #define ICLS_SWITCH 20
548 #define ICLS_ICONTITLE 21
549 #define ICLS_TOOLTIPS 22
550 #if (_WIN32_WINNT <= 0x0501)
551 #define ICLS_UNKNOWN 22
552 #define ICLS_NOTUSED 23
554 #define ICLS_SYSSHADOW 23
555 #define ICLS_HWNDMESSAGE 24
556 #define ICLS_NOTUSED 25
560 #define COLOR_LAST COLOR_MENUBAR
561 #define MAX_MB_STRINGS 11
563 #define SRVINFO_APIHOOK 0x0010
564 #define SRVINFO_METRICS 0x0020
566 typedef struct tagOEMBITMAPINFO
572 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
574 typedef struct tagMBSTRING
579 } MBSTRING
, *PMBSTRING
;
581 typedef struct tagDPISERVERINFO
583 INT gclBorder
; /* 000 */
584 HFONT hCaptionFont
; /* 004 */
585 HFONT hMsgFont
; /* 008 */
586 INT cxMsgFontChar
; /* 00C */
587 INT cyMsgFontChar
; /* 010 */
588 UINT wMaxBtnSize
; /* 014 */
589 } DPISERVERINFO
, *PDPISERVERINFO
;
591 typedef struct _PERUSERSERVERINFO
593 INT aiSysMet
[SM_CMETRICS
];
594 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
595 COLORREF argbSystem
[COLOR_LAST
+1];
596 HBRUSH ahbrSystem
[COLOR_LAST
+1];
600 DWORD dwLastRITEventTickCount
;
605 UINT ucWheelScrollLines
;
606 UINT ucWheelScrollChars
;
607 INT wMaxLeftOverlapChars
;
608 INT wMaxRightOverlapChars
;
611 TEXTMETRICW tmSysFont
;
612 DPISERVERINFO dpiSystem
;
613 HICON hIconSmWindows
;
616 DWORD dwAsyncKeyCache
;
618 OEMBITMAPINFO oembmi
[93];
627 DWORD dwLastSystemRITEventTickCountUpdate
;
628 ULONG adwDBGTAGFlags
[35];
631 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
633 typedef struct tagSERVERINFO
636 ULONG_PTR cHandleEntries
;
637 PFN_FNID mpFnidPfn
[FNID_NUM
];
638 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
639 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
640 PFNCLIENT apfnClientA
;
641 PFNCLIENT apfnClientW
;
642 PFNCLIENTWORKER apfnClientWorker
;
644 ATOM atomSysClass
[ICLS_NOTUSED
+1];
645 DWORD dwDefaultHeapBase
;
646 DWORD dwDefaultHeapSize
;
648 MBSTRING MBStrings
[MAX_MB_STRINGS
];
651 ATOM atomContextHelpIdProp
;
652 ATOM atomFrostedWindowProp
;
653 CHAR acOemToAnsi
[256];
654 CHAR acAnsiToOem
[256];
655 DWORD dwInstalledEventHooks
;
657 } SERVERINFO
, *PSERVERINFO
;
660 // Server event activity bits.
661 #define SRV_EVENT_MENU 0x0001
662 #define SRV_EVENT_END_APPLICATION 0x0002
663 #define SRV_EVENT_RUNNING 0x0004
664 #define SRV_EVENT_NAMECHANGE 0x0008
665 #define SRV_EVENT_VALUECHANGE 0x0010
666 #define SRV_EVENT_STATECHANGE 0x0020
667 #define SRV_EVENT_LOCATIONCHANGE 0x0040
668 #define SRV_EVENT_CREATE 0x8000
670 typedef struct _PROPLISTITEM
674 } PROPLISTITEM
, *PPROPLISTITEM
;
676 typedef struct _PROPERTY
678 LIST_ENTRY PropListEntry
;
681 } PROPERTY
, *PPROPERTY
;
683 typedef struct _BROADCASTPARM
690 } BROADCASTPARM
, *PBROADCASTPARM
;
692 PTHREADINFO
GetW32ThreadInfo(VOID
);
693 PPROCESSINFO
GetW32ProcessInfo(VOID
);
695 typedef struct _WNDMSG
701 typedef struct _SHAREDINFO
703 PSERVERINFO psi
; // global Server Info
704 PVOID aheList
; // Handle Entry List
705 PVOID pDispInfo
; // global PDISPLAYINFO pointer
706 ULONG_PTR ulSharedDelta
; // Heap delta
707 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
708 WNDMSG DefWindowMsgs
;
709 WNDMSG DefWindowSpecMsgs
;
710 } SHAREDINFO
, *PSHAREDINFO
;
712 typedef struct _USERCONNECT
715 ULONG ulCurrentVersion
;
716 DWORD dwDispatchCount
;
718 } USERCONNECT
, *PUSERCONNECT
;
721 // Non SDK Window Message types.
723 #define WM_CLIENTSHUTDOWN 59
724 #define WM_COPYGLOBALDATA 73
725 #define WM_SYSTIMER 280
726 #define WM_POPUPSYSTEMMENU 787
727 #define WM_CBT 1023 // ReactOS only.
728 #define WM_MAXIMUM 0x0001FFFF
731 // Non SDK DCE types.
733 #define DCX_USESTYLE 0x00010000
734 #define DCX_KEEPCLIPRGN 0x00040000
737 // Non SDK Queue message types.
739 #define QS_SMRESULT 0x8000
743 NtUserAssociateInputContext(
774 NtUserCtxDisplayIOCtl(
793 NtUserDrawMenuBarTemp(
802 NtUserEnableMenuItem(
813 NtUserGetMenuBarInfo(
827 NtUserGetMenuItemRect(
841 NtUserHiliteMenuItem(
849 NtUserMenuItemFromPoint(
871 NtUserSetMenuContextHelpId(
873 DWORD dwContextHelpId
);
877 NtUserSetMenuDefaultItem(
884 NtUserSetMenuFlagRtoL(
895 NtUserThunkedMenuInfo(
901 NtUserThunkedMenuItemInfo(
906 LPMENUITEMINFOW lpmii
,
907 PUNICODE_STRING lpszCaption
);
911 NtUserTrackPopupMenuEx(
921 NtUserActivateKeyboardLayout(
927 NtUserAlterWindowStyle(
934 NtUserAttachThreadInput(
940 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
975 PULONG pRequiredSize
);
985 /* apfnSimpleCall indices from Windows XP SP 2 */
986 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
987 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
989 enum SimpleCallRoutines
991 NOPARAM_ROUTINE_CREATEMENU
,
992 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
993 #if (WIN32K_VERSION >= NTDDI_VISTA)
994 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
995 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
996 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
997 NOPARAM_ROUTINE_DESTROY_CARET
,
999 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1000 #if (WIN32K_VERSION < NTDDI_VISTA)
1001 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1002 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1003 NOPARAM_ROUTINE_DESTROY_CARET
,
1005 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1006 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1007 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1008 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1009 #if (WIN32K_VERSION >= NTDDI_VISTA)
1010 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1012 NOPARAM_ROUTINE_GETREMOTEPROCID
,
1014 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1015 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1016 #if (WIN32K_VERSION >= NTDDI_VISTA)
1017 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1018 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1020 NOPARAM_ROUTINE_RELEASECAPTURE
,
1021 NOPARAM_ROUTINE_RESETDBLCLICK
,
1022 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1023 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1024 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1025 NOPARAM_ROUTINE_REMOTELOGOFF
,
1026 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1027 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1028 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1029 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1030 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1031 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1032 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1033 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1034 #if (WIN32K_VERSION >= NTDDI_VISTA)
1035 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1037 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1038 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1039 #if (WIN32K_VERSION < NTDDI_VISTA)
1040 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1042 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1043 #if (WIN32K_VERSION >= NTDDI_VISTA)
1044 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1046 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1047 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1048 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1049 #if (WIN32K_VERSION < NTDDI_VISTA)
1050 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1052 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1053 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1054 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1055 #if (WIN32K_VERSION < NTDDI_VISTA)
1056 ONEPARAM_ROUTINE_GETCURSORPOS
,
1058 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1059 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1060 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1061 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1062 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1063 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1064 #if (WIN32K_VERSION < NTDDI_VISTA)
1065 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1067 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1068 ONEPARAM_ROUTINE_LOADFONTS
,
1069 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1070 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1071 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1072 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1073 #if (WIN32K_VERSION < NTDDI_VISTA)
1074 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1076 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1077 ONEPARAM_ROUTINE_REGISTERLPK
,
1078 #if (WIN32K_VERSION >= NTDDI_VISTA)
1079 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1081 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1082 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1083 ONEPARAM_ROUTINE_RELEASEDC
,
1084 #if (WIN32K_VERSION >= NTDDI_VISTA)
1085 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1087 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1088 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1089 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1090 #if (WIN32K_VERSION < NTDDI_VISTA)
1091 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1093 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1094 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1095 #if (WIN32K_VERSION >= NTDDI_VISTA)
1096 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1098 ONEPARAM_ROUTINE_SHOWCURSOR
,
1099 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1100 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1101 X_ROUTINE_WOWMODULEUNLOAD
,
1102 #if (WIN32K_VERSION < NTDDI_VISTA)
1103 X_ROUTINE_REMOTENOTIFY
,
1105 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1106 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1107 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1108 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1109 HWND_ROUTINE_SETMSGBOX
,
1110 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1111 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1112 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1113 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1114 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1115 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1116 HWNDPARAM_ROUTINE_SETVISIBLE
,
1117 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1118 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1119 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1120 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1121 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1122 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1123 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1124 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1125 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1126 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1127 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1128 HWNDLOCK_ROUTINE_SETSYSMENU
,
1129 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1130 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1131 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1132 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1133 TWOPARAM_ROUTINE_REDRAWTITLE
,
1134 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1135 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1136 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1137 TWOPARAM_ROUTINE_VALIDATERGN
,
1138 #if (WIN32K_VERSION >= NTDDI_VISTA)
1139 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1140 TWOPARAM_ROUTINE_GETCURSORPOS
,
1142 TWOPARAM_ROUTINE_GETHDEVNAME
,
1143 TWOPARAM_ROUTINE_INITANSIOEM
,
1144 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1145 #if (WIN32K_VERSION >= NTDDI_VISTA)
1146 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1148 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1149 #if (WIN32K_VERSION >= NTDDI_VISTA)
1150 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1152 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1154 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1155 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1156 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1157 TWOPARAM_ROUTINE_SETCARETPOS
,
1158 TWOPARAM_ROUTINE_SETCURSORPOS
,
1159 #if (WIN32K_VERSION >= NTDDI_VISTA)
1160 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1162 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1163 TWOPARAM_ROUTINE_WOWCLEANUP
1186 NtUserCallHwndParam(
1193 NtUserCallHwndParamLock(
1200 NtUserCallMsgFilter(
1206 NtUserCallNextHookEx(
1232 NtUserChangeClipboardChain(
1238 NtUserChangeDisplaySettings(
1239 PUNICODE_STRING lpszDeviceName
,
1240 LPDEVMODEW lpDevMode
,
1247 NtUserCheckDesktopByThreadId(
1252 NtUserCheckWindowThreadDesktop(
1259 NtUserCheckImeHotKey(
1264 NtUserChildWindowFromPointEx(
1277 NtUserCloseClipboard(VOID
);
1286 NtUserCloseWindowStation(
1291 NtUserConsoleControl(
1298 NtUserConvertMemHandle(
1304 NtUserCopyAcceleratorTable(
1311 NtUserCountClipboardFormats(VOID
);
1315 NtUserCreateAcceleratorTable(
1317 SIZE_T EntriesCount
);
1329 NtUserCreateDesktop(
1330 POBJECT_ATTRIBUTES poa
,
1331 PUNICODE_STRING lpszDesktopDevice
,
1334 ACCESS_MASK dwDesiredAccess
);
1338 NtUserCreateInputContext(
1343 NtUserCreateLocalMemHandle(
1351 NtUserCreateWindowEx(
1353 PUNICODE_STRING lpClassName
,
1354 PUNICODE_STRING lpWindowName
,
1362 HINSTANCE hInstance
,
1365 BOOL bUnicodeWindow
,
1370 NtUserCreateWindowEx(
1371 DWORD dwExStyle
, // |= 0x80000000 == Ansi used to set WNDS_ANSICREATOR
1372 PLARGE_STRING plstrClassName
,
1373 PLARGE_STRING plstrClsVesrion
,
1374 PLARGE_STRING plstrWindowName
,
1382 HINSTANCE hInstance
,
1390 NtUserCreateWindowStation(
1391 PUNICODE_STRING lpszWindowStationName
,
1392 ACCESS_MASK dwDesiredAccess
,
1393 LPSECURITY_ATTRIBUTES lpSecurity
,
1401 NtUserDdeGetQualityOfService(
1404 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1408 NtUserDdeInitialize(
1417 NtUserDdeSetQualityOfService(
1419 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1420 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1423 NtUserDeferWindowPos(
1426 HWND WndInsertAfter
,
1434 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1438 NtUserDestroyAcceleratorTable(
1443 NtUserDestroyCursor(
1449 NtUserDestroyInputContext(
1453 NtUserDestroyWindow(HWND Wnd
);
1457 NtUserDisableThreadIme(
1462 NtUserDispatchMessage(PMSG pMsg
);
1481 NtUserDrawAnimatedRects(
1497 NtUserDrawCaptionTemp(
1503 const PUNICODE_STRING str
,
1516 HBRUSH hbrFlickerFreeDraw
,
1523 NtUserEmptyClipboard(VOID
);
1527 NtUserEnableScrollBar(
1534 NtUserEndDeferWindowPosEx(
1539 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1543 NtUserEnumDisplayDevices (
1544 PUNICODE_STRING lpDevice
, /* device name */
1545 DWORD iDevNum
, /* display device */
1546 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1547 DWORD dwFlags
); /* reserved */
1551 NtUserEnumDisplayMonitors (
1554 MONITORENUMPROC lpfnEnum,
1556 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1559 NtUserEnumDisplayMonitors(
1560 OPTIONAL IN HDC hDC
,
1561 OPTIONAL IN LPCRECT pRect
,
1562 OPTIONAL OUT HMONITOR
*hMonitorList
,
1563 OPTIONAL OUT LPRECT monitorRectList
,
1564 OPTIONAL IN DWORD listSize
);
1569 NtUserEnumDisplaySettings(
1570 PUNICODE_STRING lpszDeviceName
,
1572 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1582 NtUserExcludeUpdateRgn(
1596 NtUserFindExistingCursorIcon(
1606 HWND hwndChildAfter
,
1607 PUNICODE_STRING ucClassName
,
1608 PUNICODE_STRING ucWindowName
,
1614 NtUserFlashWindowEx(
1615 IN PFLASHWINFO pfwi
);
1619 NtUserGetAltTabInfo(
1628 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1632 NtUserGetAppImeLevel(
1637 NtUserGetAsyncKeyState(
1648 NtUserGetCaretBlinkTime(VOID
);
1656 NtUserGetClassInfo(HINSTANCE hInstance
,
1657 PUNICODE_STRING ClassName
,
1659 LPWSTR
*ppszMenuName
,
1664 NtUserGetClassName(HWND hWnd
,
1665 PUNICODE_STRING ClassName
,
1667 #if 0 // Real NtUserGetClassName
1670 NtUserGetClassName(HWND hWnd
,
1671 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1672 PUNICODE_STRING ClassName
);
1677 NtUserGetClipboardData(
1683 NtUserGetClipboardFormatName(
1685 PUNICODE_STRING FormatName
,
1690 NtUserGetClipboardOwner(VOID
);
1694 NtUserGetClipboardSequenceNumber(VOID
);
1698 NtUserGetClipboardViewer(VOID
);
1702 NtUserGetClipCursor(
1707 NtUserGetComboBoxInfo(
1709 PCOMBOBOXINFO pcbi
);
1713 NtUserGetControlBrush(
1720 NtUserGetControlColor(
1735 NtUserGetCursorFrameInfo(
1743 NtUserGetCursorInfo(
1760 NtUserGetDoubleClickTime(VOID
);
1764 NtUserGetForegroundWindow(VOID
);
1768 NtUserGetGuiResources(
1774 NtUserGetGUIThreadInfo(
1776 LPGUITHREADINFO lpgui
);
1783 PUNICODE_STRING lpInstName
,
1784 PUNICODE_STRING lpResName
,
1812 NtUserGetInternalWindowPos(
1819 NtUserGetKeyboardLayout(
1824 NtUserGetKeyboardLayoutList(
1830 NtUserGetKeyboardLayoutName(
1835 NtUserGetKeyboardState(
1840 NtUserGetKeyboardType(
1845 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1854 NtUserGetLayeredWindowAttributes(
1862 NtUserGetListBoxInfo(
1865 typedef struct tagNTUSERGETMESSAGEINFO
1869 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1874 PNTUSERGETMESSAGEINFO MsgInfo
,
1877 UINT wMsgFilterMax
);
1881 NtUserGetMouseMovePointsEx(
1883 LPMOUSEMOVEPOINT lppt
,
1884 LPMOUSEMOVEPOINT lpptBuf
,
1890 NtUserGetObjectInformation(
1893 PVOID pvInformation
,
1895 PDWORD nLengthNeeded
);
1899 NtUserGetOpenClipboardWindow(VOID
);
1903 NtUserGetPriorityClipboardFormat(
1904 UINT
*paFormatPriorityList
,
1909 NtUserGetProcessWindowStation(VOID
);
1913 NtUserGetRawInputBuffer(
1920 NtUserGetRawInputData(
1921 HRAWINPUT hRawInput
,
1929 NtUserGetRawInputDeviceInfo(
1937 NtUserGetRawInputDeviceList(
1938 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1939 PUINT puiNumDevices
,
1944 NtUserGetRegisteredRawInputDevices(
1945 PRAWINPUTDEVICE pRawInputDevices
,
1946 PUINT puiNumDevices
,
1951 NtUserGetScrollBarInfo(
1954 PSCROLLBARINFO psbi
);
1958 NtUserGetThreadDesktop(
1963 enum ThreadStateRoutines
1965 THREADSTATE_GETTHREADINFO
,
1966 THREADSTATE_INSENDMESSAGE
,
1967 THREADSTATE_FOCUSWINDOW
,
1968 THREADSTATE_ACTIVEWINDOW
,
1969 THREADSTATE_CAPTUREWINDOW
,
1970 THREADSTATE_PROGMANWINDOW
,
1971 THREADSTATE_TASKMANWINDOW
,
1972 THREADSTATE_GETMESSAGETIME
,
1973 THREADSTATE_GETINPUTSTATE
1978 NtUserGetThreadState(
1983 NtUserGetTitleBarInfo(
1988 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
2004 NtUserGetWindowPlacement(
2006 WINDOWPLACEMENT
*lpwndpl
);
2011 HINSTANCE hInstance
,
2012 PUNICODE_STRING ClassName
);
2016 NtUserHardErrorControl(
2023 NtUserImpersonateDdeClientWindow(
2031 HANDLE hPowerRequestEvent
,
2032 HANDLE hMediaRequestEvent
);
2036 NtUserInitializeClientPfnArrays(
2037 PPFNCLIENT pfnClientA
,
2038 PPFNCLIENT pfnClientW
,
2039 PPFNCLIENTWORKER pfnClientWorker
,
2040 HINSTANCE hmodUser
);
2060 NtUserInternalGetWindowText(
2067 NtUserInvalidateRect(
2074 NtUserInvalidateRgn(
2081 NtUserIsClipboardFormatAvailable(
2094 NtUserLoadKeyboardLayoutEx(
2097 IN PUNICODE_STRING puszKeyboardName
,
2099 IN PUNICODE_STRING puszKLID
,
2105 NtUserLockWindowStation(
2106 HWINSTA hWindowStation
);
2110 NtUserLockWindowUpdate(
2115 NtUserLockWorkStation(VOID
);
2119 NtUserMapVirtualKeyEx( UINT keyCode
,
2130 ULONG_PTR ResultInfo
,
2131 DWORD dwType
, // FNID_XX types
2138 UINT cmd
, // Wine SW_ commands
2143 NtUserMNDragLeave(VOID
);
2153 NtUserModifyUserStartupInfoFlags(
2170 NtUserNotifyIMEStatus(
2177 NtUserNotifyProcessCreate(
2185 NtUserNotifyWinEvent(
2193 NtUserOpenClipboard(
2200 PUNICODE_STRING lpszDesktopName
,
2202 ACCESS_MASK dwDesiredAccess
);
2206 NtUserOpenInputDesktop(
2209 ACCESS_MASK dwDesiredAccess
);
2213 NtUserOpenWindowStation(
2214 PUNICODE_STRING lpszWindowStationName
,
2215 ACCESS_MASK dwDesiredAccess
);
2235 PNTUSERGETMESSAGEINFO MsgInfo
,
2251 NtUserPostThreadMessage(
2266 NtUserProcessConnect(
2268 OUT PUSERCONNECT pUserConnect
,
2269 IN DWORD dwSize
); // sizeof(USERCONNECT)
2273 NtUserQueryInformationThread(
2282 NtUserQueryInputContext(
2288 NtUserQuerySendMessage(
2293 NtUserQueryUserCounters(
2300 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2301 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2302 #define QUERY_WINDOW_ACTIVE 0x02
2303 #define QUERY_WINDOW_FOCUS 0x03
2304 #define QUERY_WINDOW_ISHUNG 0x04
2305 #define QUERY_WINDOW_REAL_ID 0x05
2314 NtUserRealInternalGetMessage(
2324 NtUserRealChildWindowFromPoint(
2331 NtUserRealWaitMessageEx(
2340 CONST RECT
*lprcUpdate
,
2347 NtUserRegisterClassExWOW(
2349 PUNICODE_STRING pustrClassName
,
2350 PUNICODE_STRING pustrCNVersion
,
2351 PCLSMENUNAME pClassMenuName
,
2358 NtUserRegisterRawInputDevices(
2359 IN PCRAWINPUTDEVICE pRawInputDevices
,
2360 IN UINT uiNumDevices
,
2365 NtUserRegisterUserApiHook(
2366 PUNICODE_STRING m_dllname1
,
2367 PUNICODE_STRING m_funname1
,
2373 NtUserRegisterHotKey(HWND hWnd
,
2380 NtUserRegisterTasklist(
2384 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2388 NtUserRemoteConnect(
2395 NtUserRemoteRedrawRectangle(
2403 NtUserRemoteRedrawScreen(VOID
);
2407 NtUserRemoteStopScreenUpdates(VOID
);
2410 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2414 NtUserResolveDesktop(
2422 NtUserResolveDesktopForWOW(
2439 CONST RECT
*lprcScroll
,
2440 CONST RECT
*lprcClip
,
2445 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2446 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2456 NtUserSetActiveWindow(HWND Wnd
);
2460 NtUserSetAppImeLevel(
2465 NtUserSetCapture(HWND Wnd
);
2471 ULONG_PTR dwNewLong
,
2483 NtUserSetClipboardData(
2490 NtUserSetClipboardViewer(
2491 HWND hWndNewViewer
);
2495 NtUserSelectPalette(
2498 BOOL ForceBackground
2503 NtUserSetConsoleReserveKeys(
2514 NtUserSetCursorContents(
2516 PICONINFO IconInfo
);
2520 NtUserSetCursorIconData(
2555 NtUserSetImeOwnerWindow(
2561 NtUserSetInformationProcess(
2569 NtUserSetInformationThread(
2577 NtUserSetInternalWindowPos(
2585 NtUserSetKeyboardState(
2590 NtUserSetLayeredWindowAttributes(
2598 NtUserSetLogonNotifyWindow(
2603 NtUserSetObjectInformation(
2606 PVOID pvInformation
,
2613 HWND hWndNewParent
);
2617 NtUserSetProcessWindowStation(
2618 HWINSTA hWindowStation
);
2621 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2631 NtUserSetScrollInfo(
2639 NtUserSetShellWindowEx(
2641 HWND hwndShellListView
);
2647 IN CONST INT
*lpaElements
,
2648 IN CONST COLORREF
*lpaRgbValues
,
2653 NtUserSetSystemCursor(
2659 NtUserSetThreadDesktop(
2664 NtUserSetThreadState(
2670 NtUserSetSystemTimer
2675 TIMERPROC lpTimerFunc
2680 NtUserSetThreadLayoutHandles(
2691 TIMERPROC lpTimerFunc
2696 NtUserSetWindowFNID(
2702 NtUserSetWindowLong(
2710 NtUserSetWindowPlacement(
2712 WINDOWPLACEMENT
*lpwndpl
);
2715 NTAPI
NtUserSetWindowPos(
2717 HWND hWndInsertAfter
,
2734 NtUserSetWindowsHookAW(
2741 NtUserSetWindowsHookEx(
2743 PUNICODE_STRING ModuleName
,
2751 NtUserSetWindowStationUser(
2758 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2762 NtUserSetWinEventHook(
2765 HMODULE hmodWinEventProc
,
2766 PUNICODE_STRING puString
,
2767 WINEVENTPROC lpfnWinEventProc
,
2784 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2794 NtUserShowWindowAsync(
2800 NtUserSoundSentry(VOID
);
2804 NtUserSwitchDesktop(
2809 NtUserSystemParametersInfo(
2817 NtUserTestForInteractiveUser(
2833 NtUserTrackMouseEvent(
2834 LPTRACKMOUSEEVENT lpEventTrack
);
2838 NtUserTranslateAccelerator(
2845 NtUserTranslateMessage(
2851 NtUserUnhookWindowsHookEx(
2856 NtUserUnhookWinEvent(
2857 HWINEVENTHOOK hWinEventHook
);
2861 NtUserUnloadKeyboardLayout(
2866 NtUserUnlockWindowStation(
2867 HWINSTA hWindowStation
);
2871 NtUserUnregisterClass(
2872 PUNICODE_STRING ClassNameOrAtom
,
2873 HINSTANCE hInstance
,
2874 PCLSMENUNAME pClassMenuName
);
2878 NtUserUnregisterHotKey(HWND hWnd
,
2883 NtUserUnregisterUserApiHook(VOID
);
2887 NtUserUpdateInputContext(
2894 NtUserUpdateInstance(
2901 NtUserUpdateLayeredWindow(
2909 BLENDFUNCTION
*pblend
,
2915 NtUserUpdatePerUserSystemParameters(
2921 NtUserUserHandleGrantAccess(
2922 IN HANDLE hUserHandle
,
2928 NtUserValidateHandleSecure(
2936 CONST RECT
*lpRect
);
2940 NtUserValidateTimerCallback(
2954 NtUserWaitForInputIdle(
2956 IN DWORD dwMilliseconds
,
2957 IN BOOL Unknown2
); // Always FALSE
2961 NtUserWaitForMsgAndEvent(
2966 NtUserWaitMessage(VOID
);
2970 NtUserWin32PoolAllocationStats(
2980 NtUserWindowFromPhysicalPoint(
2985 NtUserWindowFromPoint(
2991 NtUserYieldTask(VOID
);
2993 /* lParam of DDE messages */
2994 typedef struct tagKMDDEEXECUTEDATA
2998 /* BYTE Data[DataSize] */
2999 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
3001 typedef struct tagKMDDELPARAM
3013 } KMDDELPARAM
, *PKMDDELPARAM
;
3020 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3023 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3024 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3025 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
3026 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3027 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3028 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3029 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3030 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3031 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3032 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3033 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3034 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3035 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3036 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3037 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3038 #define MSQ_STATE_CAPTURE 0x1
3039 #define MSQ_STATE_ACTIVE 0x2
3040 #define MSQ_STATE_FOCUS 0x3
3041 #define MSQ_STATE_MENUOWNER 0x4
3042 #define MSQ_STATE_MOVESIZE 0x5
3043 #define MSQ_STATE_CARET 0x6
3044 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3045 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3046 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3050 NtUserBuildMenuItemList(
3056 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3059 NtUserCreateCursorIconHandle(
3064 /* Should be done in usermode and use NtUserGetCPD. */
3067 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3071 NtUserGetMenuDefaultItem(
3078 NtUserGetLastInputInfo(
3079 PLASTINPUTINFO plii
);
3083 NtUserGetMinMaxInfo(
3085 MINMAXINFO
*MinMaxInfo
,
3090 NtUserGetMonitorInfo(
3091 IN HMONITOR hMonitor
,
3092 OUT LPMONITORINFO pMonitorInfo
);
3094 /* Should be done in usermode */
3097 NtUserGetScrollInfo(
3104 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
3106 /* Should be done in usermode and use NtUserGetCPD. */
3109 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
3112 /* (other FocusedItem values give the position of the focused item) */
3113 #define NO_SELECTED_ITEM 0xffff
3115 typedef struct tagROSMENUINFO
3117 /* ----------- MENUINFO ----------- */
3123 DWORD dwContextHelpID
;
3124 ULONG_PTR dwMenuData
;
3125 /* ----------- Extra ----------- */
3126 HMENU Self
; /* Handle of this menu */
3127 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3128 UINT FocusedItem
; /* Currently focused item */
3129 UINT MenuItemCount
; /* Number of items in the menu */
3130 HWND Wnd
; /* Window containing the menu */
3131 WORD Width
; /* Width of the whole menu */
3132 WORD Height
; /* Height of the whole menu */
3133 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3134 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3135 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3136 } ROSMENUINFO
, *PROSMENUINFO
;
3148 typedef struct tagROSMENUITEMINFO
3150 /* ----------- MENUITEMINFOW ----------- */
3157 HBITMAP hbmpChecked
;
3158 HBITMAP hbmpUnchecked
;
3163 /* ----------- Extra ----------- */
3164 RECT Rect
; /* Item area (relative to menu window) */
3165 UINT XTab
; /* X position of text after Tab */
3166 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3167 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3175 PROSMENUITEMINFO lpmii
,
3181 NtUserMonitorFromPoint(
3187 NtUserMonitorFromRect(
3193 NtUserMonitorFromWindow(
3198 typedef struct tagNTUSERSENDMESSAGEINFO
3200 BOOL HandledByKernel
;
3203 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3205 /* use NtUserMessageCall */
3207 NtUserSendMessage(HWND hWnd
,
3211 PNTUSERSENDMESSAGEINFO Info
);
3213 /* use NtUserMessageCall */
3215 NtUserSendMessageTimeout(HWND hWnd
,
3222 PNTUSERSENDMESSAGEINFO Info
);
3224 typedef struct _SETSCROLLBARINFO
3228 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3229 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3233 NtUserSetScrollBarInfo(
3236 SETSCROLLBARINFO
*info
);
3240 #endif /* __WIN32K_NTUSER_H */