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 /* THREADINFO Flags */
122 #define TIF_INCLEANUP 0x00000001
123 #define TIF_16BIT 0x00000002
124 #define TIF_SYSTEMTHREAD 0x00000004
125 #define TIF_CSRSSTHREAD 0x00000008
126 #define TIF_TRACKRECTVISIBLE 0x00000010
127 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
128 #define TIF_DONTATTACHQUEUE 0x00000040
129 #define TIF_DONTJOURNALATTACH 0x00000080
130 #define TIF_WOW64 0x00000100
131 #define TIF_INACTIVATEAPPMSG 0x00000200
132 #define TIF_SPINNING 0x00000400
133 #define TIF_PALETTEAWARE 0x00000800
134 #define TIF_SHAREDWOW 0x00001000
135 #define TIF_FIRSTIDLE 0x00002000
136 #define TIF_WAITFORINPUTIDLE 0x00004000
137 #define TIF_MOVESIZETRACKING 0x00008000
138 #define TIF_VDMAPP 0x00010000
139 #define TIF_DOSEMULATOR 0x00020000
140 #define TIF_GLOBALHOOKER 0x00040000
141 #define TIF_DELAYEDEVENT 0x00080000
142 #define TIF_MSGPOSCHANGED 0x00100000
143 #define TIF_SHUTDOWNCOMPLETE 0x00200000
144 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
145 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
146 #define TIF_GUITHREADINITIALIZED 0x02000000
147 #define TIF_DISABLEIME 0x04000000
148 #define TIF_INGETTEXTLENGTH 0x08000000
149 #define TIF_ANSILENGTH 0x10000000
150 #define TIF_DISABLEHOOKS 0x20000000
152 typedef struct _CALLBACKWND
156 } CALLBACKWND
, *PCALLBACKWND
;
158 #define CI_TRANSACTION 0x00000001
159 #define CI_QUEUEMSG 0x00000002
160 #define CI_WOW 0x00000004
161 #define CI_INITTHREAD 0x00000008
162 #define CI_CURTHPRHOOK 0x00000010
163 #define CI_CLASSESREGISTERED 0x00000020
164 #define CI_IMMACTIVATE 0x00000040
166 typedef struct _CLIENTINFO
172 DWORD dwCompatFlags2
;
173 DWORD dwTIFlags
; // ThreadInfo TIF_Xxx flags for User space.
174 PDESKTOPINFO pDeskInfo
;
175 ULONG_PTR ulClientDelta
;
178 CALLBACKWND CallbackWnd
;
180 INT cInDDEMLCallback
;
181 PCLIENTTHREADINFO pClientThreadInfo
;
182 ULONG_PTR dwHookData
;
185 DWORD dwAsyncKeyCache
;
186 BYTE afAsyncKeyState
[8];
187 BYTE afAsyncKeyStateRecentDow
[8];
192 LPDWORD lpdwRegisteredClasses
;
193 ULONG Win32ClientInfo3
[27];
194 /* It's just a pointer reference not to be used w the structure in user space. */
196 } CLIENTINFO
, *PCLIENTINFO
;
198 /* Make sure it fits exactly into the TEB */
199 C_ASSERT(sizeof(CLIENTINFO
) == FIELD_OFFSET(TEB
, glDispatchTable
) - FIELD_OFFSET(TEB
, Win32ClientInfo
));
201 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
203 typedef struct _REGISTER_SYSCLASS
205 /* This is a reactos specific class used to initialize the
206 system window classes during user32 initialization */
215 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
217 typedef struct _CLSMENUNAME
219 LPSTR pszClientAnsiMenuName
;
220 LPWSTR pwszClientUnicodeMenuName
;
221 PUNICODE_STRING pusMenuName
;
222 } CLSMENUNAME
, *PCLSMENUNAME
;
224 typedef struct tagSBDATA
232 typedef struct tagSBINFO
241 UserGetCPDA2U
= 0x01, // " Unicode "
242 UserGetCPDU2A
= 0X02, // " Ansi "
243 UserGetCPDClass
= 0X10,
244 UserGetCPDWindow
= 0X20,
245 UserGetCPDDialog
= 0X40,
246 UserGetCPDWndtoCls
= 0X80
249 typedef struct _CALLPROCDATA
252 struct _CALLPROCDATA
*spcpdNext
;
253 WNDPROC pfnClientPrevious
;
255 } CALLPROCDATA
, *PCALLPROCDATA
;
257 #define CSF_SERVERSIDEPROC 0x0001
258 #define CSF_ANSIPROC 0x0002
259 #define CSF_WOWDEFERDESTROY 0x0004
260 #define CSF_SYSTEMCLASS 0x0008
261 #define CSF_WOWCLASS 0x0010
262 #define CSF_WOWEXTRA 0x0020
263 #define CSF_CACHEDSMICON 0x0040
264 #define CSF_WIN40COMPAT 0x0080
268 struct _CLS
*pclsNext
;
269 RTL_ATOM atomClassName
;
270 ATOM atomNVClassName
;
272 struct _DESKTOP
*rpdeskParent
;
275 PSTR lpszClientAnsiMenuName
; // For client use
276 PWSTR lpszClientUnicodeMenuName
; // " " "
277 PCALLPROCDATA spcpdFirst
;
278 struct _CLS
*pclsBase
;
279 struct _CLS
*pclsClone
;
280 ULONG cWndReferenceCount
;
286 HANDLE hIcon
; /* FIXME - Use pointer! */
288 HANDLE hCursor
; /* FIXME - Use pointer! */
290 HBRUSH hbrBackground
;
291 PWSTR lpszMenuName
; // kernel use
292 PSTR lpszAnsiClassName
; // "
293 HANDLE hIconSm
; /* FIXME - Use pointer! */
296 UINT Unicode
: 1; // !CSF_ANSIPROC
297 UINT Global
: 1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
298 UINT MenuNameIsString
: 1;
303 // State Flags !Not Implemented!
304 #define WNDS_HASMENU 0X00000001
305 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
306 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
307 #define WNDS_HASCAPTION 0X00000008
308 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
309 #define WNDS_MSGBOX 0X00000020
310 #define WNDS_ACTIVEFRAME 0X00000040
311 #define WNDS_HASSPB 0X00000080
312 #define WNDS_NONCPAINT 0X00000100
313 #define WNDS_SENDERASEBACKGROUND 0X00000200
314 #define WNDS_ERASEBACKGROUND 0X00000400
315 #define WNDS_SENDNCPAINT 0X00000800
316 #define WNDS_INTERNALPAINT 0X00001000
317 #define WNDS_UPDATEDIRTY 0X00002000
318 #define WNDS_HIDDENPOPUP 0X00004000
319 #define WNDS_FORCEMENUDRAW 0X00008000
320 #define WNDS_DIALOGWINDOW 0X00010000
321 #define WNDS_HASCREATESTRUCTNAME 0X00020000
322 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
323 #define WNDS_ANSIWINDOWPROC 0x00080000
324 #define WNDS_BEGINGACTIVATED 0x00100000
325 #define WNDS_HASPALETTE 0x00200000
326 #define WNDS_PAINTNOTPROCESSED 0x00400000
327 #define WNDS_SYNCPAINTPENDING 0x00800000
328 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
329 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
330 #define WNDS_TOGGLETOPMOST 0x04000000
331 #define WNDS_REDRAWIFHUNG 0x08000000
332 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
333 #define WNDS_ANSICREATOR 0x20000000
334 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
335 #define WNDS_DESTROYED 0x80000000
337 // State2 Flags !Not Implemented!
338 #define WNDS2_WMPAINTSENT 0X00000001
339 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
340 #define WNDS2_STARTPAINT 0X00000004
341 #define WNDS2_OLDUI 0X00000008
342 #define WNDS2_HASCLIENTEDGE 0X00000010
343 #define WNDS2_BOTTOMMOST 0X00000020
344 #define WNDS2_FULLSCREEN 0X00000040
345 #define WNDS2_INDESTROY 0X00000080
346 #define WNDS2_WIN31COMPAT 0X00000100
347 #define WNDS2_WIN40COMPAT 0X00000200
348 #define WNDS2_WIN50COMPAT 0X00000400
349 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
350 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
351 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
352 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
353 #define WNDS2_HELPBUTTONDOWN 0X00008000
354 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
355 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
356 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
357 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
358 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
359 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
360 #define WNDS2_FORCENCPAINT 0X00400000
361 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
362 #define WNDS2_FULLSCREENMODE 0X01000000
363 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
364 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
365 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
366 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
367 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
369 /* Non SDK ExStyles */
370 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
371 #define WS_EX_FORCELEGACYRESIZENCMETR 0x00800000
372 #define WS_EX_UISTATEACTIVE 0x04000000
373 #define WS_EX_REDIRECTED 0X20000000
374 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
375 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
376 #define WS_EX_SETANSICREATOR 0x80000000 // For WNDS_ANSICREATOR
379 #define WS_MAXIMIZED WS_MAXIMIZE
380 #define WS_MINIMIZED WS_MINIMIZE
383 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
384 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
385 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
386 #define WS_EX2_LINKED 0X00000008
387 #define WS_EX2_LAYEREDFORDWM 0X00000010
388 #define WS_EX2_LAYEREDLIMBO 0X00000020
389 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
390 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
391 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
392 #define WS_EX2_HASOVERLAY 0X00000200
393 #define WS_EX2_CONSOLEWINDOW 0X00000400
394 #define WS_EX2_CHILDNOACTIVATE 0X00000800
401 /* Extended style. */
405 /* Handle of the module that created the window. */
408 struct _WND
*spwndNext
;
409 struct _WND
*spwndPrev
;
410 struct _WND
*spwndParent
;
411 struct _WND
*spwndChild
;
412 struct _WND
*spwndOwner
;
416 /* Pointer to the window class. */
419 /* Property list head.*/
420 LIST_ENTRY PropListHead
;
424 /* system menu handle. */
427 /* Window menu handle or window id */
428 UINT IDMenu
; // Use spmenu
433 UNICODE_STRING strName
;
434 /* Size of the extra data associated with the window. */
437 struct _WND
*spwndLastActive
;
438 //HIMC hImc; // Input context associated with this window.
440 //PACTIVATION_CONTEXT pActCtx;
441 //PD3DMATRIX pTransForm;
442 struct _WND
*spwndClipboardListener
;
452 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
453 /* Indicates whether the window is derived from a system class */
454 UINT InternalPosInitialized
: 1;
455 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
456 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
459 typedef struct _PFNCLIENT
461 WNDPROC pfnScrollBarWndProc
;
462 WNDPROC pfnTitleWndProc
;
463 WNDPROC pfnMenuWndProc
;
464 WNDPROC pfnDesktopWndProc
;
465 WNDPROC pfnDefWindowProc
;
466 WNDPROC pfnMessageWindowProc
;
467 WNDPROC pfnSwitchWindowProc
;
468 WNDPROC pfnButtonWndProc
;
469 WNDPROC pfnComboBoxWndProc
;
470 WNDPROC pfnComboListBoxProc
;
471 WNDPROC pfnDialogWndProc
;
472 WNDPROC pfnEditWndProc
;
473 WNDPROC pfnListBoxWndProc
;
474 WNDPROC pfnMDIClientWndProc
;
475 WNDPROC pfnStaticWndProc
;
476 WNDPROC pfnImeWndProc
;
477 WNDPROC pfnGhostWndProc
;
478 WNDPROC pfnHkINLPCWPSTRUCT
;
479 WNDPROC pfnHkINLPCWPRETSTRUCT
;
480 WNDPROC pfnDispatchHook
;
481 WNDPROC pfnDispatchDefWindowProc
;
482 WNDPROC pfnDispatchMessage
;
483 WNDPROC pfnMDIActivateDlgProc
;
484 } PFNCLIENT
, *PPFNCLIENT
;
487 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
488 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
491 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
493 typedef struct _PFNCLIENTWORKER
495 WNDPROC_EX pfnButtonWndProc
;
496 WNDPROC_EX pfnComboBoxWndProc
;
497 WNDPROC_EX pfnComboListBoxProc
;
498 WNDPROC_EX pfnDialogWndProc
;
499 WNDPROC_EX pfnEditWndProc
;
500 WNDPROC_EX pfnListBoxWndProc
;
501 WNDPROC_EX pfnMDIClientWndProc
;
502 WNDPROC_EX pfnStaticWndProc
;
503 WNDPROC_EX pfnImeWndProc
;
504 WNDPROC_EX pfnGhostWndProc
;
505 WNDPROC_EX pfnCtfHookProc
;
506 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
508 typedef LONG_PTR (NTAPI
*PFN_FNID
)(PWND
, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
510 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
511 #define FNID_FIRST 0x029A
512 #define FNID_SCROLLBAR 0x029A
513 #define FNID_ICONTITLE 0x029B
514 #define FNID_MENU 0x029C
515 #define FNID_DESKTOP 0x029D
516 #define FNID_DEFWINDOWPROC 0x029E
517 #define FNID_MESSAGEWND 0x029F
518 #define FNID_SWITCH 0x02A0
519 #define FNID_BUTTON 0x02A1
520 #define FNID_COMBOBOX 0x02A2
521 #define FNID_COMBOLBOX 0x02A3
522 #define FNID_DIALOG 0x02A4
523 #define FNID_EDIT 0x02A5
524 #define FNID_LISTBOX 0x02A6
525 #define FNID_MDICLIENT 0x02A7
526 #define FNID_STATIC 0x02A8
527 #define FNID_IME 0x02A9
528 #define FNID_GHOST 0x02AA
529 #define FNID_CALLWNDPROC 0x02AB
530 #define FNID_CALLWNDPROCRET 0x02AC
531 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
532 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
533 #define FNID_MB_DLGPROC 0x02AF
534 #define FNID_MDIACTIVATEDLGPROC 0x02B0
535 #define FNID_SENDMESSAGE 0x02B1
536 #define FNID_SENDMESSAGEFF 0x02B2
537 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
538 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
539 #define FNID_SENDMESSAGETIMEOUT 0x02B4
540 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
541 #define FNID_TOOLTIPS 0x02B6
542 #define FNID_SENDNOTIFYMESSAGE 0x02B7
543 #define FNID_SENDMESSAGECALLBACK 0x02B8
544 #define FNID_LAST 0x02B9
546 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
547 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
549 #define FNID_DDEML 0x2000 // Registers DDEML
550 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
551 // Seen during WM_CREATE on error exit too.
552 #define FNID_FREED 0x8000 // Window being Freed...
554 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
556 #define GETPFNCLIENTA(fnid)\
557 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
558 #define GETPFNCLIENTW(fnid)\
559 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
561 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
563 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
564 #define ICLS_BUTTON 0
566 #define ICLS_STATIC 2
567 #define ICLS_LISTBOX 3
568 #define ICLS_SCROLLBAR 4
569 #define ICLS_COMBOBOX 5
570 #define ICLS_MDICLIENT 6
571 #define ICLS_COMBOLBOX 7
572 #define ICLS_DDEMLEVENT 8
573 #define ICLS_DDEMLMOTHER 9
574 #define ICLS_DDEML16BIT 10
575 #define ICLS_DDEMLCLIENTA 11
576 #define ICLS_DDEMLCLIENTW 12
577 #define ICLS_DDEMLSERVERA 13
578 #define ICLS_DDEMLSERVERW 14
580 #define ICLS_GHOST 16
581 #define ICLS_DESKTOP 17
582 #define ICLS_DIALOG 18
584 #define ICLS_SWITCH 20
585 #define ICLS_ICONTITLE 21
586 #define ICLS_TOOLTIPS 22
587 #if (_WIN32_WINNT <= 0x0501)
588 #define ICLS_UNKNOWN 22
589 #define ICLS_NOTUSED 23
591 #define ICLS_SYSSHADOW 23
592 #define ICLS_HWNDMESSAGE 24
593 #define ICLS_NOTUSED 25
597 #define COLOR_LAST COLOR_MENUBAR
598 #define MAX_MB_STRINGS 11
600 #define SRVINFO_APIHOOK 0x0010
601 #define SRVINFO_METRICS 0x0020
603 typedef struct tagOEMBITMAPINFO
609 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
611 typedef struct tagMBSTRING
616 } MBSTRING
, *PMBSTRING
;
618 typedef struct tagDPISERVERINFO
620 INT gclBorder
; /* 000 */
621 HFONT hCaptionFont
; /* 004 */
622 HFONT hMsgFont
; /* 008 */
623 INT cxMsgFontChar
; /* 00C */
624 INT cyMsgFontChar
; /* 010 */
625 UINT wMaxBtnSize
; /* 014 */
626 } DPISERVERINFO
, *PDPISERVERINFO
;
628 typedef struct _PERUSERSERVERINFO
630 INT aiSysMet
[SM_CMETRICS
];
631 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
632 COLORREF argbSystem
[COLOR_LAST
+1];
633 HBRUSH ahbrSystem
[COLOR_LAST
+1];
637 DWORD dwLastRITEventTickCount
;
642 UINT ucWheelScrollLines
;
643 UINT ucWheelScrollChars
;
644 INT wMaxLeftOverlapChars
;
645 INT wMaxRightOverlapChars
;
648 TEXTMETRICW tmSysFont
;
649 DPISERVERINFO dpiSystem
;
650 HICON hIconSmWindows
;
653 DWORD dwAsyncKeyCache
;
655 OEMBITMAPINFO oembmi
[93];
664 DWORD dwLastSystemRITEventTickCountUpdate
;
665 ULONG adwDBGTAGFlags
[35];
668 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
670 typedef struct tagSERVERINFO
673 ULONG_PTR cHandleEntries
;
674 PFN_FNID mpFnidPfn
[FNID_NUM
];
675 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
676 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
677 PFNCLIENT apfnClientA
;
678 PFNCLIENT apfnClientW
;
679 PFNCLIENTWORKER apfnClientWorker
;
681 ATOM atomSysClass
[ICLS_NOTUSED
+1];
682 DWORD dwDefaultHeapBase
;
683 DWORD dwDefaultHeapSize
;
685 MBSTRING MBStrings
[MAX_MB_STRINGS
];
688 ATOM atomContextHelpIdProp
;
689 ATOM atomFrostedWindowProp
;
690 CHAR acOemToAnsi
[256];
691 CHAR acAnsiToOem
[256];
692 DWORD dwInstalledEventHooks
;
694 } SERVERINFO
, *PSERVERINFO
;
697 // Server event activity bits.
698 #define SRV_EVENT_MENU 0x0001
699 #define SRV_EVENT_END_APPLICATION 0x0002
700 #define SRV_EVENT_RUNNING 0x0004
701 #define SRV_EVENT_NAMECHANGE 0x0008
702 #define SRV_EVENT_VALUECHANGE 0x0010
703 #define SRV_EVENT_STATECHANGE 0x0020
704 #define SRV_EVENT_LOCATIONCHANGE 0x0040
705 #define SRV_EVENT_CREATE 0x8000
707 typedef struct _PROPLISTITEM
711 } PROPLISTITEM
, *PPROPLISTITEM
;
713 typedef struct _PROPERTY
715 LIST_ENTRY PropListEntry
;
718 } PROPERTY
, *PPROPERTY
;
720 typedef struct _BROADCASTPARM
727 } BROADCASTPARM
, *PBROADCASTPARM
;
729 PTHREADINFO
GetW32ThreadInfo(VOID
);
730 PPROCESSINFO
GetW32ProcessInfo(VOID
);
732 typedef struct _WNDMSG
738 typedef struct _SHAREDINFO
740 PSERVERINFO psi
; // global Server Info
741 PVOID aheList
; // Handle Entry List
742 PVOID pDispInfo
; // global PDISPLAYINFO pointer
743 ULONG_PTR ulSharedDelta
; // Heap delta
744 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
745 WNDMSG DefWindowMsgs
;
746 WNDMSG DefWindowSpecMsgs
;
747 } SHAREDINFO
, *PSHAREDINFO
;
749 typedef struct _USERCONNECT
752 ULONG ulCurrentVersion
;
753 DWORD dwDispatchCount
;
755 } USERCONNECT
, *PUSERCONNECT
;
758 // Non SDK Window Message types.
760 #define WM_CLIENTSHUTDOWN 59
761 #define WM_COPYGLOBALDATA 73
762 #define WM_SYSTIMER 280
763 #define WM_POPUPSYSTEMMENU 787
764 #define WM_CBT 1023 // ReactOS only.
765 #define WM_MAXIMUM 0x0001FFFF
768 // Non SDK DCE types.
770 #define DCX_USESTYLE 0x00010000
771 #define DCX_KEEPCLIPRGN 0x00040000
774 // Non SDK Queue message types.
776 #define QS_SMRESULT 0x8000
780 NtUserAssociateInputContext(
811 NtUserCtxDisplayIOCtl(
830 NtUserDrawMenuBarTemp(
839 NtUserEnableMenuItem(
850 NtUserGetMenuBarInfo(
864 NtUserGetMenuItemRect(
878 NtUserHiliteMenuItem(
886 NtUserMenuItemFromPoint(
908 NtUserSetMenuContextHelpId(
910 DWORD dwContextHelpId
);
914 NtUserSetMenuDefaultItem(
921 NtUserSetMenuFlagRtoL(
932 NtUserThunkedMenuInfo(
938 NtUserThunkedMenuItemInfo(
943 LPMENUITEMINFOW lpmii
,
944 PUNICODE_STRING lpszCaption
);
948 NtUserTrackPopupMenuEx(
958 NtUserActivateKeyboardLayout(
964 NtUserAlterWindowStyle(
971 NtUserAttachThreadInput(
977 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
1008 NtUserBuildNameList(
1012 PULONG pRequiredSize
);
1016 NtUserBuildPropList(
1022 /* apfnSimpleCall indices from Windows XP SP 2 */
1023 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1024 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
1026 enum SimpleCallRoutines
1028 NOPARAM_ROUTINE_CREATEMENU
,
1029 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1030 #if (WIN32K_VERSION >= NTDDI_VISTA)
1031 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1032 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1033 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1034 NOPARAM_ROUTINE_DESTROY_CARET
,
1036 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1037 #if (WIN32K_VERSION < NTDDI_VISTA)
1038 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1039 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1040 NOPARAM_ROUTINE_DESTROY_CARET
,
1042 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1043 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1044 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1045 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1046 #if (WIN32K_VERSION >= NTDDI_VISTA)
1047 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1049 NOPARAM_ROUTINE_GETREMOTEPROCID
,
1051 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1052 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1053 #if (WIN32K_VERSION >= NTDDI_VISTA)
1054 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1055 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1057 NOPARAM_ROUTINE_RELEASECAPTURE
,
1058 NOPARAM_ROUTINE_RESETDBLCLICK
,
1059 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1060 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1061 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1062 NOPARAM_ROUTINE_REMOTELOGOFF
,
1063 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1064 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1065 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1066 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1067 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1068 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1069 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1070 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1071 #if (WIN32K_VERSION >= NTDDI_VISTA)
1072 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1074 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1075 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1076 #if (WIN32K_VERSION < NTDDI_VISTA)
1077 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1079 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1080 #if (WIN32K_VERSION >= NTDDI_VISTA)
1081 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1083 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1084 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1085 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1086 #if (WIN32K_VERSION < NTDDI_VISTA)
1087 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1089 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1090 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1091 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1092 #if (WIN32K_VERSION < NTDDI_VISTA)
1093 ONEPARAM_ROUTINE_GETCURSORPOS
,
1095 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1096 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1097 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1098 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1099 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1100 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1101 #if (WIN32K_VERSION < NTDDI_VISTA)
1102 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1104 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1105 ONEPARAM_ROUTINE_LOADFONTS
,
1106 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1107 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1108 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1109 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1110 #if (WIN32K_VERSION < NTDDI_VISTA)
1111 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1113 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1114 ONEPARAM_ROUTINE_REGISTERLPK
,
1115 #if (WIN32K_VERSION >= NTDDI_VISTA)
1116 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1118 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1119 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1120 ONEPARAM_ROUTINE_RELEASEDC
,
1121 #if (WIN32K_VERSION >= NTDDI_VISTA)
1122 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1124 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1125 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1126 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1127 #if (WIN32K_VERSION < NTDDI_VISTA)
1128 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1130 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1131 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1132 #if (WIN32K_VERSION >= NTDDI_VISTA)
1133 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1135 ONEPARAM_ROUTINE_SHOWCURSOR
,
1136 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1137 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1138 X_ROUTINE_WOWMODULEUNLOAD
,
1139 #if (WIN32K_VERSION < NTDDI_VISTA)
1140 X_ROUTINE_REMOTENOTIFY
,
1142 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1143 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1144 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1145 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1146 HWND_ROUTINE_SETMSGBOX
,
1147 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1148 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1149 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1150 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1151 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1152 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1153 HWNDPARAM_ROUTINE_SETVISIBLE
,
1154 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1155 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1156 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1157 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1158 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1159 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1160 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1161 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1162 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1163 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1164 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1165 HWNDLOCK_ROUTINE_SETSYSMENU
,
1166 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1167 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1168 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1169 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1170 TWOPARAM_ROUTINE_REDRAWTITLE
,
1171 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1172 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1173 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1174 TWOPARAM_ROUTINE_VALIDATERGN
,
1175 #if (WIN32K_VERSION >= NTDDI_VISTA)
1176 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1177 TWOPARAM_ROUTINE_GETCURSORPOS
,
1179 TWOPARAM_ROUTINE_GETHDEVNAME
,
1180 TWOPARAM_ROUTINE_INITANSIOEM
,
1181 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1182 #if (WIN32K_VERSION >= NTDDI_VISTA)
1183 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1185 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1186 #if (WIN32K_VERSION >= NTDDI_VISTA)
1187 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1189 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1191 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1192 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1193 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1194 TWOPARAM_ROUTINE_SETCARETPOS
,
1195 TWOPARAM_ROUTINE_SETCURSORPOS
,
1196 #if (WIN32K_VERSION >= NTDDI_VISTA)
1197 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1199 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1200 TWOPARAM_ROUTINE_WOWCLEANUP
1223 NtUserCallHwndParam(
1230 NtUserCallHwndParamLock(
1237 NtUserCallMsgFilter(
1243 NtUserCallNextHookEx(
1269 NtUserChangeClipboardChain(
1275 NtUserChangeDisplaySettings(
1276 PUNICODE_STRING lpszDeviceName
,
1277 LPDEVMODEW lpDevMode
,
1284 NtUserCheckDesktopByThreadId(
1289 NtUserCheckWindowThreadDesktop(
1296 NtUserCheckImeHotKey(
1301 NtUserChildWindowFromPointEx(
1314 NtUserCloseClipboard(VOID
);
1323 NtUserCloseWindowStation(
1328 NtUserConsoleControl(
1335 NtUserConvertMemHandle(
1341 NtUserCopyAcceleratorTable(
1348 NtUserCountClipboardFormats(VOID
);
1352 NtUserCreateAcceleratorTable(
1354 SIZE_T EntriesCount
);
1366 NtUserCreateDesktop(
1367 POBJECT_ATTRIBUTES poa
,
1368 PUNICODE_STRING lpszDesktopDevice
,
1371 ACCESS_MASK dwDesiredAccess
);
1375 NtUserCreateInputContext(
1380 NtUserCreateLocalMemHandle(
1388 NtUserCreateWindowEx(
1390 PUNICODE_STRING lpClassName
,
1391 PUNICODE_STRING lpWindowName
,
1399 HINSTANCE hInstance
,
1402 BOOL bUnicodeWindow
,
1407 NtUserCreateWindowEx(
1408 DWORD dwExStyle
, // |= 0x80000000 == Ansi used to set WNDS_ANSICREATOR
1409 PLARGE_STRING plstrClassName
,
1410 PLARGE_STRING plstrClsVesrion
,
1411 PLARGE_STRING plstrWindowName
,
1419 HINSTANCE hInstance
,
1427 NtUserCreateWindowStation(
1428 PUNICODE_STRING lpszWindowStationName
,
1429 ACCESS_MASK dwDesiredAccess
,
1430 LPSECURITY_ATTRIBUTES lpSecurity
,
1438 NtUserDdeGetQualityOfService(
1441 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1445 NtUserDdeInitialize(
1454 NtUserDdeSetQualityOfService(
1456 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1457 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1460 NtUserDeferWindowPos(
1463 HWND WndInsertAfter
,
1471 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1475 NtUserDestroyAcceleratorTable(
1480 NtUserDestroyCursor(
1486 NtUserDestroyInputContext(
1490 NtUserDestroyWindow(HWND Wnd
);
1494 NtUserDisableThreadIme(
1499 NtUserDispatchMessage(PMSG pMsg
);
1518 NtUserDrawAnimatedRects(
1534 NtUserDrawCaptionTemp(
1540 const PUNICODE_STRING str
,
1553 HBRUSH hbrFlickerFreeDraw
,
1560 NtUserEmptyClipboard(VOID
);
1564 NtUserEnableScrollBar(
1571 NtUserEndDeferWindowPosEx(
1576 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1580 NtUserEnumDisplayDevices (
1581 PUNICODE_STRING lpDevice
, /* device name */
1582 DWORD iDevNum
, /* display device */
1583 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1584 DWORD dwFlags
); /* reserved */
1588 NtUserEnumDisplayMonitors (
1591 MONITORENUMPROC lpfnEnum,
1593 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1596 NtUserEnumDisplayMonitors(
1597 OPTIONAL IN HDC hDC
,
1598 OPTIONAL IN LPCRECT pRect
,
1599 OPTIONAL OUT HMONITOR
*hMonitorList
,
1600 OPTIONAL OUT LPRECT monitorRectList
,
1601 OPTIONAL IN DWORD listSize
);
1606 NtUserEnumDisplaySettings(
1607 PUNICODE_STRING lpszDeviceName
,
1609 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1619 NtUserExcludeUpdateRgn(
1633 NtUserFindExistingCursorIcon(
1643 HWND hwndChildAfter
,
1644 PUNICODE_STRING ucClassName
,
1645 PUNICODE_STRING ucWindowName
,
1651 NtUserFlashWindowEx(
1652 IN PFLASHWINFO pfwi
);
1656 NtUserGetAltTabInfo(
1665 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1669 NtUserGetAppImeLevel(
1674 NtUserGetAsyncKeyState(
1685 NtUserGetCaretBlinkTime(VOID
);
1693 NtUserGetClassInfo(HINSTANCE hInstance
,
1694 PUNICODE_STRING ClassName
,
1696 LPWSTR
*ppszMenuName
,
1701 NtUserGetClassName(HWND hWnd
,
1702 PUNICODE_STRING ClassName
,
1704 #if 0 // Real NtUserGetClassName
1707 NtUserGetClassName(HWND hWnd
,
1708 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1709 PUNICODE_STRING ClassName
);
1714 NtUserGetClipboardData(
1720 NtUserGetClipboardFormatName(
1722 PUNICODE_STRING FormatName
,
1727 NtUserGetClipboardOwner(VOID
);
1731 NtUserGetClipboardSequenceNumber(VOID
);
1735 NtUserGetClipboardViewer(VOID
);
1739 NtUserGetClipCursor(
1744 NtUserGetComboBoxInfo(
1746 PCOMBOBOXINFO pcbi
);
1750 NtUserGetControlBrush(
1757 NtUserGetControlColor(
1772 NtUserGetCursorFrameInfo(
1780 NtUserGetCursorInfo(
1797 NtUserGetDoubleClickTime(VOID
);
1801 NtUserGetForegroundWindow(VOID
);
1805 NtUserGetGuiResources(
1811 NtUserGetGUIThreadInfo(
1813 LPGUITHREADINFO lpgui
);
1820 PUNICODE_STRING lpInstName
,
1821 PUNICODE_STRING lpResName
,
1849 NtUserGetInternalWindowPos(
1856 NtUserGetKeyboardLayout(
1861 NtUserGetKeyboardLayoutList(
1867 NtUserGetKeyboardLayoutName(
1872 NtUserGetKeyboardState(
1877 NtUserGetKeyboardType(
1882 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1891 NtUserGetLayeredWindowAttributes(
1899 NtUserGetListBoxInfo(
1902 typedef struct tagNTUSERGETMESSAGEINFO
1906 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1911 PNTUSERGETMESSAGEINFO MsgInfo
,
1914 UINT wMsgFilterMax
);
1918 NtUserGetMouseMovePointsEx(
1920 LPMOUSEMOVEPOINT lppt
,
1921 LPMOUSEMOVEPOINT lpptBuf
,
1927 NtUserGetObjectInformation(
1930 PVOID pvInformation
,
1932 PDWORD nLengthNeeded
);
1936 NtUserGetOpenClipboardWindow(VOID
);
1940 NtUserGetPriorityClipboardFormat(
1941 UINT
*paFormatPriorityList
,
1946 NtUserGetProcessWindowStation(VOID
);
1950 NtUserGetRawInputBuffer(
1957 NtUserGetRawInputData(
1958 HRAWINPUT hRawInput
,
1966 NtUserGetRawInputDeviceInfo(
1974 NtUserGetRawInputDeviceList(
1975 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1976 PUINT puiNumDevices
,
1981 NtUserGetRegisteredRawInputDevices(
1982 PRAWINPUTDEVICE pRawInputDevices
,
1983 PUINT puiNumDevices
,
1988 NtUserGetScrollBarInfo(
1991 PSCROLLBARINFO psbi
);
1995 NtUserGetThreadDesktop(
2000 enum ThreadStateRoutines
2002 THREADSTATE_GETTHREADINFO
,
2003 THREADSTATE_INSENDMESSAGE
,
2004 THREADSTATE_FOCUSWINDOW
,
2005 THREADSTATE_ACTIVEWINDOW
,
2006 THREADSTATE_CAPTUREWINDOW
,
2007 THREADSTATE_PROGMANWINDOW
,
2008 THREADSTATE_TASKMANWINDOW
,
2009 THREADSTATE_GETMESSAGETIME
,
2010 THREADSTATE_GETINPUTSTATE
2015 NtUserGetThreadState(
2020 NtUserGetTitleBarInfo(
2025 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
2041 NtUserGetWindowPlacement(
2043 WINDOWPLACEMENT
*lpwndpl
);
2048 HINSTANCE hInstance
,
2049 PUNICODE_STRING ClassName
);
2053 NtUserHardErrorControl(
2060 NtUserImpersonateDdeClientWindow(
2068 HANDLE hPowerRequestEvent
,
2069 HANDLE hMediaRequestEvent
);
2073 NtUserInitializeClientPfnArrays(
2074 PPFNCLIENT pfnClientA
,
2075 PPFNCLIENT pfnClientW
,
2076 PPFNCLIENTWORKER pfnClientWorker
,
2077 HINSTANCE hmodUser
);
2097 NtUserInternalGetWindowText(
2104 NtUserInvalidateRect(
2111 NtUserInvalidateRgn(
2118 NtUserIsClipboardFormatAvailable(
2131 NtUserLoadKeyboardLayoutEx(
2134 IN PUNICODE_STRING puszKeyboardName
,
2136 IN PUNICODE_STRING puszKLID
,
2142 NtUserLockWindowStation(
2143 HWINSTA hWindowStation
);
2147 NtUserLockWindowUpdate(
2152 NtUserLockWorkStation(VOID
);
2156 NtUserMapVirtualKeyEx( UINT keyCode
,
2167 ULONG_PTR ResultInfo
,
2168 DWORD dwType
, // FNID_XX types
2175 UINT cmd
, // Wine SW_ commands
2180 NtUserMNDragLeave(VOID
);
2190 NtUserModifyUserStartupInfoFlags(
2207 NtUserNotifyIMEStatus(
2214 NtUserNotifyProcessCreate(
2222 NtUserNotifyWinEvent(
2230 NtUserOpenClipboard(
2237 PUNICODE_STRING lpszDesktopName
,
2239 ACCESS_MASK dwDesiredAccess
);
2243 NtUserOpenInputDesktop(
2246 ACCESS_MASK dwDesiredAccess
);
2250 NtUserOpenWindowStation(
2251 PUNICODE_STRING lpszWindowStationName
,
2252 ACCESS_MASK dwDesiredAccess
);
2272 PNTUSERGETMESSAGEINFO MsgInfo
,
2288 NtUserPostThreadMessage(
2303 NtUserProcessConnect(
2305 OUT PUSERCONNECT pUserConnect
,
2306 IN DWORD dwSize
); // sizeof(USERCONNECT)
2310 NtUserQueryInformationThread(
2319 NtUserQueryInputContext(
2325 NtUserQuerySendMessage(
2330 NtUserQueryUserCounters(
2337 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2338 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2339 #define QUERY_WINDOW_ACTIVE 0x02
2340 #define QUERY_WINDOW_FOCUS 0x03
2341 #define QUERY_WINDOW_ISHUNG 0x04
2342 #define QUERY_WINDOW_REAL_ID 0x05
2351 NtUserRealInternalGetMessage(
2361 NtUserRealChildWindowFromPoint(
2368 NtUserRealWaitMessageEx(
2377 CONST RECT
*lprcUpdate
,
2384 NtUserRegisterClassExWOW(
2386 PUNICODE_STRING pustrClassName
,
2387 PUNICODE_STRING pustrCNVersion
,
2388 PCLSMENUNAME pClassMenuName
,
2395 NtUserRegisterRawInputDevices(
2396 IN PCRAWINPUTDEVICE pRawInputDevices
,
2397 IN UINT uiNumDevices
,
2402 NtUserRegisterUserApiHook(
2403 PUNICODE_STRING m_dllname1
,
2404 PUNICODE_STRING m_funname1
,
2410 NtUserRegisterHotKey(HWND hWnd
,
2417 NtUserRegisterTasklist(
2421 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2425 NtUserRemoteConnect(
2432 NtUserRemoteRedrawRectangle(
2440 NtUserRemoteRedrawScreen(VOID
);
2444 NtUserRemoteStopScreenUpdates(VOID
);
2447 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2451 NtUserResolveDesktop(
2459 NtUserResolveDesktopForWOW(
2476 CONST RECT
*lprcScroll
,
2477 CONST RECT
*lprcClip
,
2482 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2483 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2493 NtUserSetActiveWindow(HWND Wnd
);
2497 NtUserSetAppImeLevel(
2502 NtUserSetCapture(HWND Wnd
);
2508 ULONG_PTR dwNewLong
,
2520 NtUserSetClipboardData(
2527 NtUserSetClipboardViewer(
2528 HWND hWndNewViewer
);
2532 NtUserSelectPalette(
2535 BOOL ForceBackground
2540 NtUserSetConsoleReserveKeys(
2551 NtUserSetCursorContents(
2553 PICONINFO IconInfo
);
2557 NtUserSetCursorIconData(
2592 NtUserSetImeOwnerWindow(
2598 NtUserSetInformationProcess(
2606 NtUserSetInformationThread(
2614 NtUserSetInternalWindowPos(
2622 NtUserSetKeyboardState(
2627 NtUserSetLayeredWindowAttributes(
2635 NtUserSetLogonNotifyWindow(
2640 NtUserSetObjectInformation(
2643 PVOID pvInformation
,
2650 HWND hWndNewParent
);
2654 NtUserSetProcessWindowStation(
2655 HWINSTA hWindowStation
);
2658 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2668 NtUserSetScrollInfo(
2676 NtUserSetShellWindowEx(
2678 HWND hwndShellListView
);
2684 IN CONST INT
*lpaElements
,
2685 IN CONST COLORREF
*lpaRgbValues
,
2690 NtUserSetSystemCursor(
2696 NtUserSetThreadDesktop(
2701 NtUserSetThreadState(
2707 NtUserSetSystemTimer
2712 TIMERPROC lpTimerFunc
2717 NtUserSetThreadLayoutHandles(
2728 TIMERPROC lpTimerFunc
2733 NtUserSetWindowFNID(
2739 NtUserSetWindowLong(
2747 NtUserSetWindowPlacement(
2749 WINDOWPLACEMENT
*lpwndpl
);
2752 NTAPI
NtUserSetWindowPos(
2754 HWND hWndInsertAfter
,
2771 NtUserSetWindowsHookAW(
2778 NtUserSetWindowsHookEx(
2780 PUNICODE_STRING ModuleName
,
2788 NtUserSetWindowStationUser(
2795 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2799 NtUserSetWinEventHook(
2802 HMODULE hmodWinEventProc
,
2803 PUNICODE_STRING puString
,
2804 WINEVENTPROC lpfnWinEventProc
,
2821 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2831 NtUserShowWindowAsync(
2837 NtUserSoundSentry(VOID
);
2841 NtUserSwitchDesktop(
2846 NtUserSystemParametersInfo(
2854 NtUserTestForInteractiveUser(
2870 NtUserTrackMouseEvent(
2871 LPTRACKMOUSEEVENT lpEventTrack
);
2875 NtUserTranslateAccelerator(
2882 NtUserTranslateMessage(
2888 NtUserUnhookWindowsHookEx(
2893 NtUserUnhookWinEvent(
2894 HWINEVENTHOOK hWinEventHook
);
2898 NtUserUnloadKeyboardLayout(
2903 NtUserUnlockWindowStation(
2904 HWINSTA hWindowStation
);
2908 NtUserUnregisterClass(
2909 PUNICODE_STRING ClassNameOrAtom
,
2910 HINSTANCE hInstance
,
2911 PCLSMENUNAME pClassMenuName
);
2915 NtUserUnregisterHotKey(HWND hWnd
,
2920 NtUserUnregisterUserApiHook(VOID
);
2924 NtUserUpdateInputContext(
2931 NtUserUpdateInstance(
2938 NtUserUpdateLayeredWindow(
2946 BLENDFUNCTION
*pblend
,
2952 NtUserUpdatePerUserSystemParameters(
2958 NtUserUserHandleGrantAccess(
2959 IN HANDLE hUserHandle
,
2965 NtUserValidateHandleSecure(
2973 CONST RECT
*lpRect
);
2977 NtUserValidateTimerCallback(
2991 NtUserWaitForInputIdle(
2993 IN DWORD dwMilliseconds
,
2994 IN BOOL Unknown2
); // Always FALSE
2998 NtUserWaitForMsgAndEvent(
3003 NtUserWaitMessage(VOID
);
3007 NtUserWin32PoolAllocationStats(
3017 NtUserWindowFromPhysicalPoint(
3022 NtUserWindowFromPoint(
3028 NtUserYieldTask(VOID
);
3030 /* lParam of DDE messages */
3031 typedef struct tagKMDDEEXECUTEDATA
3035 /* BYTE Data[DataSize] */
3036 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
3038 typedef struct tagKMDDELPARAM
3050 } KMDDELPARAM
, *PKMDDELPARAM
;
3057 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3060 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3061 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3062 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
3063 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3064 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3065 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3066 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3067 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3068 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3069 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3070 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3071 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3072 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3073 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3074 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3075 #define MSQ_STATE_CAPTURE 0x1
3076 #define MSQ_STATE_ACTIVE 0x2
3077 #define MSQ_STATE_FOCUS 0x3
3078 #define MSQ_STATE_MENUOWNER 0x4
3079 #define MSQ_STATE_MOVESIZE 0x5
3080 #define MSQ_STATE_CARET 0x6
3081 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3082 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3083 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3087 NtUserBuildMenuItemList(
3093 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3096 NtUserCreateCursorIconHandle(
3101 /* Should be done in usermode and use NtUserGetCPD. */
3104 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3108 NtUserGetMenuDefaultItem(
3115 NtUserGetLastInputInfo(
3116 PLASTINPUTINFO plii
);
3120 NtUserGetMinMaxInfo(
3122 MINMAXINFO
*MinMaxInfo
,
3127 NtUserGetMonitorInfo(
3128 IN HMONITOR hMonitor
,
3129 OUT LPMONITORINFO pMonitorInfo
);
3131 /* Should be done in usermode */
3134 NtUserGetScrollInfo(
3141 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
3143 /* Should be done in usermode and use NtUserGetCPD. */
3146 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
3149 /* (other FocusedItem values give the position of the focused item) */
3150 #define NO_SELECTED_ITEM 0xffff
3152 typedef struct tagROSMENUINFO
3154 /* ----------- MENUINFO ----------- */
3160 DWORD dwContextHelpID
;
3161 ULONG_PTR dwMenuData
;
3162 /* ----------- Extra ----------- */
3163 HMENU Self
; /* Handle of this menu */
3164 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3165 UINT FocusedItem
; /* Currently focused item */
3166 UINT MenuItemCount
; /* Number of items in the menu */
3167 HWND Wnd
; /* Window containing the menu */
3168 WORD Width
; /* Width of the whole menu */
3169 WORD Height
; /* Height of the whole menu */
3170 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3171 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3172 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3173 } ROSMENUINFO
, *PROSMENUINFO
;
3185 typedef struct tagROSMENUITEMINFO
3187 /* ----------- MENUITEMINFOW ----------- */
3194 HBITMAP hbmpChecked
;
3195 HBITMAP hbmpUnchecked
;
3200 /* ----------- Extra ----------- */
3201 RECT Rect
; /* Item area (relative to menu window) */
3202 UINT XTab
; /* X position of text after Tab */
3203 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3204 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3212 PROSMENUITEMINFO lpmii
,
3218 NtUserMonitorFromPoint(
3224 NtUserMonitorFromRect(
3230 NtUserMonitorFromWindow(
3235 typedef struct tagNTUSERSENDMESSAGEINFO
3237 BOOL HandledByKernel
;
3240 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3242 /* use NtUserMessageCall */
3244 NtUserSendMessage(HWND hWnd
,
3248 PNTUSERSENDMESSAGEINFO Info
);
3250 /* use NtUserMessageCall */
3252 NtUserSendMessageTimeout(HWND hWnd
,
3259 PNTUSERSENDMESSAGEINFO Info
);
3261 typedef struct _SETSCROLLBARINFO
3265 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3266 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3270 NtUserSetScrollBarInfo(
3273 SETSCROLLBARINFO
*info
);
3277 #endif /* __WIN32K_NTUSER_H */