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
45 struct tagHOOK
* aphkStart
[16];
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
99 struct _DESKTOP
*rpdesk
;
101 } PROCDESKHEAD
, *PPROCDESKHEAD
;
103 typedef struct _PROCMARKHEAD
108 } PROCMARKHEAD
, *PPROCMARKHEAD
;
110 #define UserHMGetHandle(obj) ((obj)->head.h)
112 /* Window Client Information structure */
115 typedef struct tagHOOK
118 LIST_ENTRY Chain
; /* Hook chain entry */
119 struct _ETHREAD
* Thread
; /* Thread owning the hook */
120 int HookId
; /* Hook table index */
121 HOOKPROC Proc
; /* Hook function */
122 BOOLEAN Ansi
; /* Is it an Ansi hook? */
123 ULONG Flags
; /* Some internal flags */
124 UNICODE_STRING ModuleName
; /* Module name for global hooks */
127 /* THREADINFO Flags */
128 #define TIF_INCLEANUP 0x00000001
129 #define TIF_16BIT 0x00000002
130 #define TIF_SYSTEMTHREAD 0x00000004
131 #define TIF_CSRSSTHREAD 0x00000008
132 #define TIF_TRACKRECTVISIBLE 0x00000010
133 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
134 #define TIF_DONTATTACHQUEUE 0x00000040
135 #define TIF_DONTJOURNALATTACH 0x00000080
136 #define TIF_WOW64 0x00000100
137 #define TIF_INACTIVATEAPPMSG 0x00000200
138 #define TIF_SPINNING 0x00000400
139 #define TIF_PALETTEAWARE 0x00000800
140 #define TIF_SHAREDWOW 0x00001000
141 #define TIF_FIRSTIDLE 0x00002000
142 #define TIF_WAITFORINPUTIDLE 0x00004000
143 #define TIF_MOVESIZETRACKING 0x00008000
144 #define TIF_VDMAPP 0x00010000
145 #define TIF_DOSEMULATOR 0x00020000
146 #define TIF_GLOBALHOOKER 0x00040000
147 #define TIF_DELAYEDEVENT 0x00080000
148 #define TIF_MSGPOSCHANGED 0x00100000
149 #define TIF_SHUTDOWNCOMPLETE 0x00200000
150 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
151 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
152 #define TIF_GUITHREADINITIALIZED 0x02000000
153 #define TIF_DISABLEIME 0x04000000
154 #define TIF_INGETTEXTLENGTH 0x08000000
155 #define TIF_ANSILENGTH 0x10000000
156 #define TIF_DISABLEHOOKS 0x20000000
158 typedef struct _CALLBACKWND
162 } CALLBACKWND
, *PCALLBACKWND
;
164 #define CI_TRANSACTION 0x00000001
165 #define CI_QUEUEMSG 0x00000002
166 #define CI_WOW 0x00000004
167 #define CI_INITTHREAD 0x00000008
168 #define CI_CURTHPRHOOK 0x00000010
169 #define CI_CLASSESREGISTERED 0x00000020
170 #define CI_IMMACTIVATE 0x00000040
172 typedef struct _CLIENTINFO
178 DWORD dwCompatFlags2
;
179 DWORD dwTIFlags
; // ThreadInfo TIF_Xxx flags for User space.
180 PDESKTOPINFO pDeskInfo
;
181 ULONG_PTR ulClientDelta
;
184 CALLBACKWND CallbackWnd
;
186 INT cInDDEMLCallback
;
187 PCLIENTTHREADINFO pClientThreadInfo
;
188 ULONG_PTR dwHookData
;
191 DWORD dwAsyncKeyCache
;
192 BYTE afAsyncKeyState
[8];
193 BYTE afAsyncKeyStateRecentDow
[8];
198 LPDWORD lpdwRegisteredClasses
;
199 ULONG Win32ClientInfo3
[27];
200 /* It's just a pointer reference not to be used w the structure in user space. */
202 } CLIENTINFO
, *PCLIENTINFO
;
204 /* Make sure it fits into the TEB */
205 C_ASSERT(sizeof(CLIENTINFO
) <= sizeof(((PTEB
)0)->Win32ClientInfo
));
207 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
209 typedef struct _REGISTER_SYSCLASS
211 /* This is a reactos specific class used to initialize the
212 system window classes during user32 initialization */
221 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
223 typedef struct _CLSMENUNAME
225 LPSTR pszClientAnsiMenuName
;
226 LPWSTR pwszClientUnicodeMenuName
;
227 PUNICODE_STRING pusMenuName
;
228 } CLSMENUNAME
, *PCLSMENUNAME
;
230 typedef struct tagSBDATA
238 typedef struct tagSBINFO
247 UserGetCPDA2U
= 0x01, // " Unicode "
248 UserGetCPDU2A
= 0X02, // " Ansi "
249 UserGetCPDClass
= 0X10,
250 UserGetCPDWindow
= 0X20,
251 UserGetCPDDialog
= 0X40,
252 UserGetCPDWndtoCls
= 0X80
255 typedef struct _CALLPROCDATA
258 struct _CALLPROCDATA
*spcpdNext
;
259 WNDPROC pfnClientPrevious
;
261 } CALLPROCDATA
, *PCALLPROCDATA
;
263 #define CSF_SERVERSIDEPROC 0x0001
264 #define CSF_ANSIPROC 0x0002
265 #define CSF_WOWDEFERDESTROY 0x0004
266 #define CSF_SYSTEMCLASS 0x0008
267 #define CSF_WOWCLASS 0x0010
268 #define CSF_WOWEXTRA 0x0020
269 #define CSF_CACHEDSMICON 0x0040
270 #define CSF_WIN40COMPAT 0x0080
274 struct _CLS
*pclsNext
;
275 RTL_ATOM atomClassName
;
276 ATOM atomNVClassName
;
278 struct _DESKTOP
*rpdeskParent
;
281 PSTR lpszClientAnsiMenuName
; // For client use
282 PWSTR lpszClientUnicodeMenuName
; // " " "
283 PCALLPROCDATA spcpdFirst
;
284 struct _CLS
*pclsBase
;
285 struct _CLS
*pclsClone
;
286 ULONG cWndReferenceCount
;
292 HANDLE hIcon
; /* FIXME - Use pointer! */
294 HANDLE hCursor
; /* FIXME - Use pointer! */
296 HBRUSH hbrBackground
;
297 PWSTR lpszMenuName
; // kernel use
298 PSTR lpszAnsiClassName
; // "
299 HANDLE hIconSm
; /* FIXME - Use pointer! */
302 UINT Unicode
: 1; // !CSF_ANSIPROC
303 UINT Global
: 1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
304 UINT MenuNameIsString
: 1;
309 // State Flags !Not Implemented!
310 #define WNDS_HASMENU 0X00000001
311 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
312 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
313 #define WNDS_HASCAPTION 0X00000008
314 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
315 #define WNDS_MSGBOX 0X00000020
316 #define WNDS_ACTIVEFRAME 0X00000040
317 #define WNDS_HASSPB 0X00000080
318 #define WNDS_NONCPAINT 0X00000100
319 #define WNDS_SENDERASEBACKGROUND 0X00000200
320 #define WNDS_ERASEBACKGROUND 0X00000400
321 #define WNDS_SENDNCPAINT 0X00000800
322 #define WNDS_INTERNALPAINT 0X00001000
323 #define WNDS_UPDATEDIRTY 0X00002000
324 #define WNDS_HIDDENPOPUP 0X00004000
325 #define WNDS_FORCEMENUDRAW 0X00008000
326 #define WNDS_DIALOGWINDOW 0X00010000
327 #define WNDS_HASCREATESTRUCTNAME 0X00020000
328 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
329 #define WNDS_ANSIWINDOWPROC 0x00080000
330 #define WNDS_BEGINGACTIVATED 0x00100000
331 #define WNDS_HASPALETTE 0x00200000
332 #define WNDS_PAINTNOTPROCESSED 0x00400000
333 #define WNDS_SYNCPAINTPENDING 0x00800000
334 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
335 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
336 #define WNDS_TOGGLETOPMOST 0x04000000
337 #define WNDS_REDRAWIFHUNG 0x08000000
338 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
339 #define WNDS_ANSICREATOR 0x20000000
340 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
341 #define WNDS_DESTROYED 0x80000000
343 // State2 Flags !Not Implemented!
344 #define WNDS2_WMPAINTSENT 0X00000001
345 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
346 #define WNDS2_STARTPAINT 0X00000004
347 #define WNDS2_OLDUI 0X00000008
348 #define WNDS2_HASCLIENTEDGE 0X00000010
349 #define WNDS2_BOTTOMMOST 0X00000020
350 #define WNDS2_FULLSCREEN 0X00000040
351 #define WNDS2_INDESTROY 0X00000080
352 #define WNDS2_WIN31COMPAT 0X00000100
353 #define WNDS2_WIN40COMPAT 0X00000200
354 #define WNDS2_WIN50COMPAT 0X00000400
355 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
356 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
357 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
358 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
359 #define WNDS2_HELPBUTTONDOWN 0X00008000
360 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
361 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
362 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
363 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
364 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
365 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
366 #define WNDS2_FORCENCPAINT 0X00400000
367 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
368 #define WNDS2_FULLSCREENMODE 0X01000000
369 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
370 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
371 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
372 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
373 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
375 /* Non SDK ExStyles */
376 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
377 #define WS_EX_FORCELEGACYRESIZENCMETR 0x00800000
378 #define WS_EX_UISTATEACTIVE 0x04000000
379 #define WS_EX_REDIRECTED 0X20000000
380 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
381 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
382 #define WS_EX_SETANSICREATOR 0x80000000 // For WNDS_ANSICREATOR
385 #define WS_MAXIMIZED WS_MAXIMIZE
386 #define WS_MINIMIZED WS_MINIMIZE
389 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
390 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
391 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
392 #define WS_EX2_LINKED 0X00000008
393 #define WS_EX2_LAYEREDFORDWM 0X00000010
394 #define WS_EX2_LAYEREDLIMBO 0X00000020
395 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
396 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
397 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
398 #define WS_EX2_HASOVERLAY 0X00000200
399 #define WS_EX2_CONSOLEWINDOW 0X00000400
400 #define WS_EX2_CHILDNOACTIVATE 0X00000800
407 /* Extended style. */
411 /* Handle of the module that created the window. */
414 struct _WND
*spwndNext
;
415 struct _WND
*spwndPrev
;
416 struct _WND
*spwndParent
;
417 struct _WND
*spwndChild
;
418 struct _WND
*spwndOwner
;
422 /* Pointer to the window class. */
425 /* Property list head.*/
426 LIST_ENTRY PropListHead
;
430 /* system menu handle. */
433 /* Window menu handle or window id */
434 UINT IDMenu
; // Use spmenu
439 UNICODE_STRING strName
;
440 /* Size of the extra data associated with the window. */
443 struct _WND
*spwndLastActive
;
444 //HIMC hImc; // Input context associated with this window.
446 //PACTIVATION_CONTEXT pActCtx;
447 //PD3DMATRIX pTransForm;
448 struct _WND
*spwndClipboardListener
;
458 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
459 /* Indicates whether the window is derived from a system class */
460 UINT InternalPosInitialized
: 1;
461 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
462 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
465 typedef struct _PFNCLIENT
467 WNDPROC pfnScrollBarWndProc
;
468 WNDPROC pfnTitleWndProc
;
469 WNDPROC pfnMenuWndProc
;
470 WNDPROC pfnDesktopWndProc
;
471 WNDPROC pfnDefWindowProc
;
472 WNDPROC pfnMessageWindowProc
;
473 WNDPROC pfnSwitchWindowProc
;
474 WNDPROC pfnButtonWndProc
;
475 WNDPROC pfnComboBoxWndProc
;
476 WNDPROC pfnComboListBoxProc
;
477 WNDPROC pfnDialogWndProc
;
478 WNDPROC pfnEditWndProc
;
479 WNDPROC pfnListBoxWndProc
;
480 WNDPROC pfnMDIClientWndProc
;
481 WNDPROC pfnStaticWndProc
;
482 WNDPROC pfnImeWndProc
;
483 WNDPROC pfnGhostWndProc
;
484 WNDPROC pfnHkINLPCWPSTRUCT
;
485 WNDPROC pfnHkINLPCWPRETSTRUCT
;
486 WNDPROC pfnDispatchHook
;
487 WNDPROC pfnDispatchDefWindowProc
;
488 WNDPROC pfnDispatchMessage
;
489 WNDPROC pfnMDIActivateDlgProc
;
490 } PFNCLIENT
, *PPFNCLIENT
;
493 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
494 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
497 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
499 typedef struct _PFNCLIENTWORKER
501 WNDPROC_EX pfnButtonWndProc
;
502 WNDPROC_EX pfnComboBoxWndProc
;
503 WNDPROC_EX pfnComboListBoxProc
;
504 WNDPROC_EX pfnDialogWndProc
;
505 WNDPROC_EX pfnEditWndProc
;
506 WNDPROC_EX pfnListBoxWndProc
;
507 WNDPROC_EX pfnMDIClientWndProc
;
508 WNDPROC_EX pfnStaticWndProc
;
509 WNDPROC_EX pfnImeWndProc
;
510 WNDPROC_EX pfnGhostWndProc
;
511 WNDPROC_EX pfnCtfHookProc
;
512 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
514 typedef LONG_PTR (NTAPI
*PFN_FNID
)(PWND
, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
516 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
517 #define FNID_FIRST 0x029A
518 #define FNID_SCROLLBAR 0x029A
519 #define FNID_ICONTITLE 0x029B
520 #define FNID_MENU 0x029C
521 #define FNID_DESKTOP 0x029D
522 #define FNID_DEFWINDOWPROC 0x029E
523 #define FNID_MESSAGEWND 0x029F
524 #define FNID_SWITCH 0x02A0
525 #define FNID_BUTTON 0x02A1
526 #define FNID_COMBOBOX 0x02A2
527 #define FNID_COMBOLBOX 0x02A3
528 #define FNID_DIALOG 0x02A4
529 #define FNID_EDIT 0x02A5
530 #define FNID_LISTBOX 0x02A6
531 #define FNID_MDICLIENT 0x02A7
532 #define FNID_STATIC 0x02A8
533 #define FNID_IME 0x02A9
534 #define FNID_GHOST 0x02AA
535 #define FNID_CALLWNDPROC 0x02AB
536 #define FNID_CALLWNDPROCRET 0x02AC
537 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
538 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
539 #define FNID_MB_DLGPROC 0x02AF
540 #define FNID_MDIACTIVATEDLGPROC 0x02B0
541 #define FNID_SENDMESSAGE 0x02B1
542 #define FNID_SENDMESSAGEFF 0x02B2
543 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
544 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
545 #define FNID_SENDMESSAGETIMEOUT 0x02B4
546 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
547 #define FNID_TOOLTIPS 0x02B6
548 #define FNID_SENDNOTIFYMESSAGE 0x02B7
549 #define FNID_SENDMESSAGECALLBACK 0x02B8
550 #define FNID_LAST 0x02B9
552 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
553 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
555 #define FNID_DDEML 0x2000 // Registers DDEML
556 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
557 // Seen during WM_CREATE on error exit too.
558 #define FNID_FREED 0x8000 // Window being Freed...
560 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
562 #define GETPFNCLIENTA(fnid)\
563 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
564 #define GETPFNCLIENTW(fnid)\
565 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
567 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
569 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
570 #define ICLS_BUTTON 0
572 #define ICLS_STATIC 2
573 #define ICLS_LISTBOX 3
574 #define ICLS_SCROLLBAR 4
575 #define ICLS_COMBOBOX 5
576 #define ICLS_MDICLIENT 6
577 #define ICLS_COMBOLBOX 7
578 #define ICLS_DDEMLEVENT 8
579 #define ICLS_DDEMLMOTHER 9
580 #define ICLS_DDEML16BIT 10
581 #define ICLS_DDEMLCLIENTA 11
582 #define ICLS_DDEMLCLIENTW 12
583 #define ICLS_DDEMLSERVERA 13
584 #define ICLS_DDEMLSERVERW 14
586 #define ICLS_GHOST 16
587 #define ICLS_DESKTOP 17
588 #define ICLS_DIALOG 18
590 #define ICLS_SWITCH 20
591 #define ICLS_ICONTITLE 21
592 #define ICLS_TOOLTIPS 22
593 #if (_WIN32_WINNT <= 0x0501)
594 #define ICLS_UNKNOWN 22
595 #define ICLS_NOTUSED 23
597 #define ICLS_SYSSHADOW 23
598 #define ICLS_HWNDMESSAGE 24
599 #define ICLS_NOTUSED 25
603 #define COLOR_LAST COLOR_MENUBAR
604 #define MAX_MB_STRINGS 11
606 #define SRVINFO_APIHOOK 0x0010
607 #define SRVINFO_METRICS 0x0020
609 typedef struct tagOEMBITMAPINFO
615 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
617 typedef struct tagMBSTRING
622 } MBSTRING
, *PMBSTRING
;
624 typedef struct tagDPISERVERINFO
626 INT gclBorder
; /* 000 */
627 HFONT hCaptionFont
; /* 004 */
628 HFONT hMsgFont
; /* 008 */
629 INT cxMsgFontChar
; /* 00C */
630 INT cyMsgFontChar
; /* 010 */
631 UINT wMaxBtnSize
; /* 014 */
632 } DPISERVERINFO
, *PDPISERVERINFO
;
634 typedef struct _PERUSERSERVERINFO
636 INT aiSysMet
[SM_CMETRICS
];
637 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
638 COLORREF argbSystem
[COLOR_LAST
+1];
639 HBRUSH ahbrSystem
[COLOR_LAST
+1];
643 DWORD dwLastRITEventTickCount
;
648 UINT ucWheelScrollLines
;
649 UINT ucWheelScrollChars
;
650 INT wMaxLeftOverlapChars
;
651 INT wMaxRightOverlapChars
;
654 TEXTMETRICW tmSysFont
;
655 DPISERVERINFO dpiSystem
;
656 HICON hIconSmWindows
;
659 DWORD dwAsyncKeyCache
;
661 OEMBITMAPINFO oembmi
[93];
670 DWORD dwLastSystemRITEventTickCountUpdate
;
671 ULONG adwDBGTAGFlags
[35];
674 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
676 typedef struct tagSERVERINFO
679 ULONG_PTR cHandleEntries
;
680 PFN_FNID mpFnidPfn
[FNID_NUM
];
681 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
682 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
683 PFNCLIENT apfnClientA
;
684 PFNCLIENT apfnClientW
;
685 PFNCLIENTWORKER apfnClientWorker
;
687 ATOM atomSysClass
[ICLS_NOTUSED
+1];
688 DWORD dwDefaultHeapBase
;
689 DWORD dwDefaultHeapSize
;
691 MBSTRING MBStrings
[MAX_MB_STRINGS
];
694 ATOM atomContextHelpIdProp
;
695 ATOM atomFrostedWindowProp
;
696 CHAR acOemToAnsi
[256];
697 CHAR acAnsiToOem
[256];
698 DWORD dwInstalledEventHooks
;
700 } SERVERINFO
, *PSERVERINFO
;
703 // Server event activity bits.
704 #define SRV_EVENT_MENU 0x0001
705 #define SRV_EVENT_END_APPLICATION 0x0002
706 #define SRV_EVENT_RUNNING 0x0004
707 #define SRV_EVENT_NAMECHANGE 0x0008
708 #define SRV_EVENT_VALUECHANGE 0x0010
709 #define SRV_EVENT_STATECHANGE 0x0020
710 #define SRV_EVENT_LOCATIONCHANGE 0x0040
711 #define SRV_EVENT_CREATE 0x8000
713 typedef struct _PROPLISTITEM
717 } PROPLISTITEM
, *PPROPLISTITEM
;
719 typedef struct _PROPERTY
721 LIST_ENTRY PropListEntry
;
724 } PROPERTY
, *PPROPERTY
;
726 typedef struct _BROADCASTPARM
733 } BROADCASTPARM
, *PBROADCASTPARM
;
735 PTHREADINFO
GetW32ThreadInfo(VOID
);
736 PPROCESSINFO
GetW32ProcessInfo(VOID
);
738 typedef struct _WNDMSG
744 typedef struct _SHAREDINFO
746 PSERVERINFO psi
; // global Server Info
747 PVOID aheList
; // Handle Entry List
748 PVOID pDispInfo
; // global PDISPLAYINFO pointer
749 ULONG_PTR ulSharedDelta
; // Heap delta
750 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
751 WNDMSG DefWindowMsgs
;
752 WNDMSG DefWindowSpecMsgs
;
753 } SHAREDINFO
, *PSHAREDINFO
;
755 typedef struct _USERCONNECT
758 ULONG ulCurrentVersion
;
759 DWORD dwDispatchCount
;
761 } USERCONNECT
, *PUSERCONNECT
;
764 // Non SDK Window Message types.
766 #define WM_CLIENTSHUTDOWN 59
767 #define WM_COPYGLOBALDATA 73
768 #define WM_SYSTIMER 280
769 #define WM_POPUPSYSTEMMENU 787
770 #define WM_CBT 1023 // ReactOS only.
771 #define WM_MAXIMUM 0x0001FFFF
774 // Non SDK DCE types.
776 #define DCX_USESTYLE 0x00010000
777 #define DCX_KEEPCLIPRGN 0x00040000
778 #define DCX_KEEPLAYOUT 0x40000000
779 #define DCX_PROCESSOWNED 0x80000000
782 // Non SDK Queue message types.
784 #define QS_SMRESULT 0x8000
788 NtUserAssociateInputContext(
819 NtUserCtxDisplayIOCtl(
838 NtUserDrawMenuBarTemp(
847 NtUserEnableMenuItem(
858 NtUserGetMenuBarInfo(
872 NtUserGetMenuItemRect(
886 NtUserHiliteMenuItem(
894 NtUserMenuItemFromPoint(
916 NtUserSetMenuContextHelpId(
918 DWORD dwContextHelpId
);
922 NtUserSetMenuDefaultItem(
929 NtUserSetMenuFlagRtoL(
940 NtUserThunkedMenuInfo(
946 NtUserThunkedMenuItemInfo(
951 LPMENUITEMINFOW lpmii
,
952 PUNICODE_STRING lpszCaption
);
956 NtUserTrackPopupMenuEx(
966 NtUserActivateKeyboardLayout(
972 NtUserAlterWindowStyle(
979 NtUserAttachThreadInput(
985 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
1006 NtUserBuildHwndList(
1016 NtUserBuildNameList(
1020 PULONG pRequiredSize
);
1024 NtUserBuildPropList(
1030 /* apfnSimpleCall indices from Windows XP SP 2 */
1031 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1032 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
1034 enum SimpleCallRoutines
1036 NOPARAM_ROUTINE_CREATEMENU
,
1037 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1038 #if (WIN32K_VERSION >= NTDDI_VISTA)
1039 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1040 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1041 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1042 NOPARAM_ROUTINE_DESTROY_CARET
,
1044 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1045 #if (WIN32K_VERSION < NTDDI_VISTA)
1046 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1047 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1048 NOPARAM_ROUTINE_DESTROY_CARET
,
1050 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1051 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1052 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1053 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1054 #if (WIN32K_VERSION >= NTDDI_VISTA)
1055 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1057 NOPARAM_ROUTINE_GETREMOTEPROCID
,
1059 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1060 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1061 #if (WIN32K_VERSION >= NTDDI_VISTA)
1062 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1063 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1065 NOPARAM_ROUTINE_RELEASECAPTURE
,
1066 NOPARAM_ROUTINE_RESETDBLCLICK
,
1067 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1068 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1069 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1070 NOPARAM_ROUTINE_REMOTELOGOFF
,
1071 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1072 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1073 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1074 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1075 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1076 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1077 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1078 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1079 #if (WIN32K_VERSION >= NTDDI_VISTA)
1080 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1082 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1083 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1084 #if (WIN32K_VERSION < NTDDI_VISTA)
1085 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1087 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1088 #if (WIN32K_VERSION >= NTDDI_VISTA)
1089 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1091 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1092 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1093 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1094 #if (WIN32K_VERSION < NTDDI_VISTA)
1095 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1097 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1098 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1099 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1100 #if (WIN32K_VERSION < NTDDI_VISTA)
1101 ONEPARAM_ROUTINE_GETCURSORPOS
,
1103 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1104 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1105 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1106 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1107 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1108 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1109 #if (WIN32K_VERSION < NTDDI_VISTA)
1110 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1112 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1113 ONEPARAM_ROUTINE_LOADFONTS
,
1114 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1115 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1116 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1117 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1118 #if (WIN32K_VERSION < NTDDI_VISTA)
1119 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1121 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1122 ONEPARAM_ROUTINE_REGISTERLPK
,
1123 #if (WIN32K_VERSION >= NTDDI_VISTA)
1124 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1126 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1127 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1128 ONEPARAM_ROUTINE_RELEASEDC
,
1129 #if (WIN32K_VERSION >= NTDDI_VISTA)
1130 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1132 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1133 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1134 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1135 #if (WIN32K_VERSION < NTDDI_VISTA)
1136 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1138 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1139 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1140 #if (WIN32K_VERSION >= NTDDI_VISTA)
1141 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1143 ONEPARAM_ROUTINE_SHOWCURSOR
,
1144 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1145 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1146 X_ROUTINE_WOWMODULEUNLOAD
,
1147 #if (WIN32K_VERSION < NTDDI_VISTA)
1148 X_ROUTINE_REMOTENOTIFY
,
1150 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1151 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1152 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1153 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1154 HWND_ROUTINE_SETMSGBOX
,
1155 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1156 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1157 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1158 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1159 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1160 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1161 HWNDPARAM_ROUTINE_SETVISIBLE
,
1162 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1163 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1164 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1165 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1166 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1167 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1168 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1169 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1170 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1171 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1172 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1173 HWNDLOCK_ROUTINE_SETSYSMENU
,
1174 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1175 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1176 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1177 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1178 TWOPARAM_ROUTINE_REDRAWTITLE
,
1179 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1180 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1181 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1182 TWOPARAM_ROUTINE_VALIDATERGN
,
1183 #if (WIN32K_VERSION >= NTDDI_VISTA)
1184 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1185 TWOPARAM_ROUTINE_GETCURSORPOS
,
1187 TWOPARAM_ROUTINE_GETHDEVNAME
,
1188 TWOPARAM_ROUTINE_INITANSIOEM
,
1189 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1190 #if (WIN32K_VERSION >= NTDDI_VISTA)
1191 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1193 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1194 #if (WIN32K_VERSION >= NTDDI_VISTA)
1195 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1197 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1199 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1200 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1201 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1202 TWOPARAM_ROUTINE_SETCARETPOS
,
1203 TWOPARAM_ROUTINE_SETCURSORPOS
,
1204 #if (WIN32K_VERSION >= NTDDI_VISTA)
1205 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1207 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1208 TWOPARAM_ROUTINE_WOWCLEANUP
1231 NtUserCallHwndParam(
1238 NtUserCallHwndParamLock(
1245 NtUserCallMsgFilter(
1251 NtUserCallNextHookEx(
1277 NtUserChangeClipboardChain(
1283 NtUserChangeDisplaySettings(
1284 PUNICODE_STRING lpszDeviceName
,
1285 LPDEVMODEW lpDevMode
,
1292 NtUserCheckDesktopByThreadId(
1297 NtUserCheckWindowThreadDesktop(
1304 NtUserCheckImeHotKey(
1309 NtUserChildWindowFromPointEx(
1322 NtUserCloseClipboard(VOID
);
1331 NtUserCloseWindowStation(
1336 NtUserConsoleControl(
1343 NtUserConvertMemHandle(
1349 NtUserCopyAcceleratorTable(
1356 NtUserCountClipboardFormats(VOID
);
1360 NtUserCreateAcceleratorTable(
1362 SIZE_T EntriesCount
);
1374 NtUserCreateDesktop(
1375 POBJECT_ATTRIBUTES poa
,
1376 PUNICODE_STRING lpszDesktopDevice
,
1379 ACCESS_MASK dwDesiredAccess
);
1383 NtUserCreateInputContext(
1388 NtUserCreateLocalMemHandle(
1396 NtUserCreateWindowEx(
1398 PUNICODE_STRING lpClassName
,
1399 PUNICODE_STRING lpWindowName
,
1407 HINSTANCE hInstance
,
1410 BOOL bUnicodeWindow
,
1415 NtUserCreateWindowEx(
1416 DWORD dwExStyle
, // |= 0x80000000 == Ansi used to set WNDS_ANSICREATOR
1417 PLARGE_STRING plstrClassName
,
1418 PLARGE_STRING plstrClsVesrion
,
1419 PLARGE_STRING plstrWindowName
,
1427 HINSTANCE hInstance
,
1435 NtUserCreateWindowStation(
1436 PUNICODE_STRING lpszWindowStationName
,
1437 ACCESS_MASK dwDesiredAccess
,
1438 LPSECURITY_ATTRIBUTES lpSecurity
,
1446 NtUserDdeGetQualityOfService(
1449 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1453 NtUserDdeInitialize(
1462 NtUserDdeSetQualityOfService(
1464 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1465 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1468 NtUserDeferWindowPos(
1471 HWND WndInsertAfter
,
1479 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1483 NtUserDestroyAcceleratorTable(
1488 NtUserDestroyCursor(
1494 NtUserDestroyInputContext(
1498 NtUserDestroyWindow(HWND Wnd
);
1502 NtUserDisableThreadIme(
1507 NtUserDispatchMessage(PMSG pMsg
);
1526 NtUserDrawAnimatedRects(
1542 NtUserDrawCaptionTemp(
1548 const PUNICODE_STRING str
,
1551 // Used with NtUserDrawIconEx, last parameter.
1552 typedef struct _DRAWICONEXDATA
1558 } DRAWICONEXDATA
, *PDRAWICONEXDATA
;
1570 HBRUSH hbrFlickerFreeDraw
,
1577 NtUserEmptyClipboard(VOID
);
1581 NtUserEnableScrollBar(
1588 NtUserEndDeferWindowPosEx(
1593 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1597 NtUserEnumDisplayDevices (
1598 PUNICODE_STRING lpDevice
, /* device name */
1599 DWORD iDevNum
, /* display device */
1600 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1601 DWORD dwFlags
); /* reserved */
1605 NtUserEnumDisplayMonitors (
1608 MONITORENUMPROC lpfnEnum,
1610 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1613 NtUserEnumDisplayMonitors(
1614 OPTIONAL IN HDC hDC
,
1615 OPTIONAL IN LPCRECT pRect
,
1616 OPTIONAL OUT HMONITOR
*hMonitorList
,
1617 OPTIONAL OUT LPRECT monitorRectList
,
1618 OPTIONAL IN DWORD listSize
);
1623 NtUserEnumDisplaySettings(
1624 PUNICODE_STRING lpszDeviceName
,
1626 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1636 NtUserExcludeUpdateRgn(
1650 NtUserFindExistingCursorIcon(
1660 HWND hwndChildAfter
,
1661 PUNICODE_STRING ucClassName
,
1662 PUNICODE_STRING ucWindowName
,
1668 NtUserFlashWindowEx(
1669 IN PFLASHWINFO pfwi
);
1673 NtUserGetAltTabInfo(
1682 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1686 NtUserGetAppImeLevel(
1691 NtUserGetAsyncKeyState(
1702 NtUserGetCaretBlinkTime(VOID
);
1710 NtUserGetClassInfo(HINSTANCE hInstance
,
1711 PUNICODE_STRING ClassName
,
1713 LPWSTR
*ppszMenuName
,
1718 NtUserGetClassName(HWND hWnd
,
1719 PUNICODE_STRING ClassName
,
1721 #if 0 // Real NtUserGetClassName
1724 NtUserGetClassName(HWND hWnd
,
1725 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1726 PUNICODE_STRING ClassName
);
1731 NtUserGetClipboardData(
1737 NtUserGetClipboardFormatName(
1739 PUNICODE_STRING FormatName
,
1744 NtUserGetClipboardOwner(VOID
);
1748 NtUserGetClipboardSequenceNumber(VOID
);
1752 NtUserGetClipboardViewer(VOID
);
1756 NtUserGetClipCursor(
1761 NtUserGetComboBoxInfo(
1763 PCOMBOBOXINFO pcbi
);
1767 NtUserGetControlBrush(
1774 NtUserGetControlColor(
1789 NtUserGetCursorFrameInfo(
1797 NtUserGetCursorInfo(
1814 NtUserGetDoubleClickTime(VOID
);
1818 NtUserGetForegroundWindow(VOID
);
1822 NtUserGetGuiResources(
1828 NtUserGetGUIThreadInfo(
1830 LPGUITHREADINFO lpgui
);
1837 PUNICODE_STRING lpInstName
,
1838 PUNICODE_STRING lpResName
,
1866 NtUserGetInternalWindowPos(
1873 NtUserGetKeyboardLayout(
1878 NtUserGetKeyboardLayoutList(
1884 NtUserGetKeyboardLayoutName(
1889 NtUserGetKeyboardState(
1894 NtUserGetKeyboardType(
1899 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1908 NtUserGetLayeredWindowAttributes(
1916 NtUserGetListBoxInfo(
1919 typedef struct tagNTUSERGETMESSAGEINFO
1923 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1928 PNTUSERGETMESSAGEINFO MsgInfo
,
1931 UINT wMsgFilterMax
);
1935 NtUserGetMouseMovePointsEx(
1937 LPMOUSEMOVEPOINT lppt
,
1938 LPMOUSEMOVEPOINT lpptBuf
,
1944 NtUserGetObjectInformation(
1947 PVOID pvInformation
,
1949 PDWORD nLengthNeeded
);
1953 NtUserGetOpenClipboardWindow(VOID
);
1957 NtUserGetPriorityClipboardFormat(
1958 UINT
*paFormatPriorityList
,
1963 NtUserGetProcessWindowStation(VOID
);
1967 NtUserGetRawInputBuffer(
1974 NtUserGetRawInputData(
1975 HRAWINPUT hRawInput
,
1983 NtUserGetRawInputDeviceInfo(
1991 NtUserGetRawInputDeviceList(
1992 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1993 PUINT puiNumDevices
,
1998 NtUserGetRegisteredRawInputDevices(
1999 PRAWINPUTDEVICE pRawInputDevices
,
2000 PUINT puiNumDevices
,
2005 NtUserGetScrollBarInfo(
2008 PSCROLLBARINFO psbi
);
2012 NtUserGetThreadDesktop(
2017 enum ThreadStateRoutines
2019 THREADSTATE_GETTHREADINFO
,
2020 THREADSTATE_INSENDMESSAGE
,
2021 THREADSTATE_FOCUSWINDOW
,
2022 THREADSTATE_ACTIVEWINDOW
,
2023 THREADSTATE_CAPTUREWINDOW
,
2024 THREADSTATE_PROGMANWINDOW
,
2025 THREADSTATE_TASKMANWINDOW
,
2026 THREADSTATE_GETMESSAGETIME
,
2027 THREADSTATE_GETINPUTSTATE
2032 NtUserGetThreadState(
2037 NtUserGetTitleBarInfo(
2042 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
2058 NtUserGetWindowPlacement(
2060 WINDOWPLACEMENT
*lpwndpl
);
2065 HINSTANCE hInstance
,
2066 PUNICODE_STRING ClassName
);
2070 NtUserHardErrorControl(
2077 NtUserImpersonateDdeClientWindow(
2085 HANDLE hPowerRequestEvent
,
2086 HANDLE hMediaRequestEvent
);
2090 NtUserInitializeClientPfnArrays(
2091 PPFNCLIENT pfnClientA
,
2092 PPFNCLIENT pfnClientW
,
2093 PPFNCLIENTWORKER pfnClientWorker
,
2094 HINSTANCE hmodUser
);
2114 NtUserInternalGetWindowText(
2121 NtUserInvalidateRect(
2128 NtUserInvalidateRgn(
2135 NtUserIsClipboardFormatAvailable(
2148 NtUserLoadKeyboardLayoutEx(
2151 IN PUNICODE_STRING puszKeyboardName
,
2153 IN PUNICODE_STRING puszKLID
,
2159 NtUserLockWindowStation(
2160 HWINSTA hWindowStation
);
2164 NtUserLockWindowUpdate(
2169 NtUserLockWorkStation(VOID
);
2173 NtUserMapVirtualKeyEx( UINT keyCode
,
2184 ULONG_PTR ResultInfo
,
2185 DWORD dwType
, // FNID_XX types
2192 UINT cmd
, // Wine SW_ commands
2197 NtUserMNDragLeave(VOID
);
2207 NtUserModifyUserStartupInfoFlags(
2224 NtUserNotifyIMEStatus(
2231 NtUserNotifyProcessCreate(
2239 NtUserNotifyWinEvent(
2247 NtUserOpenClipboard(
2254 PUNICODE_STRING lpszDesktopName
,
2256 ACCESS_MASK dwDesiredAccess
);
2260 NtUserOpenInputDesktop(
2263 ACCESS_MASK dwDesiredAccess
);
2267 NtUserOpenWindowStation(
2268 PUNICODE_STRING lpszWindowStationName
,
2269 ACCESS_MASK dwDesiredAccess
);
2289 PNTUSERGETMESSAGEINFO MsgInfo
,
2305 NtUserPostThreadMessage(
2320 NtUserProcessConnect(
2322 OUT PUSERCONNECT pUserConnect
,
2323 IN DWORD dwSize
); // sizeof(USERCONNECT)
2327 NtUserQueryInformationThread(
2336 NtUserQueryInputContext(
2342 NtUserQuerySendMessage(
2347 NtUserQueryUserCounters(
2354 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2355 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2356 #define QUERY_WINDOW_ACTIVE 0x02
2357 #define QUERY_WINDOW_FOCUS 0x03
2358 #define QUERY_WINDOW_ISHUNG 0x04
2359 #define QUERY_WINDOW_REAL_ID 0x05
2368 NtUserRealInternalGetMessage(
2378 NtUserRealChildWindowFromPoint(
2385 NtUserRealWaitMessageEx(
2394 CONST RECT
*lprcUpdate
,
2401 NtUserRegisterClassExWOW(
2403 PUNICODE_STRING pustrClassName
,
2404 PUNICODE_STRING pustrCNVersion
,
2405 PCLSMENUNAME pClassMenuName
,
2412 NtUserRegisterRawInputDevices(
2413 IN PCRAWINPUTDEVICE pRawInputDevices
,
2414 IN UINT uiNumDevices
,
2419 NtUserRegisterUserApiHook(
2420 PUNICODE_STRING m_dllname1
,
2421 PUNICODE_STRING m_funname1
,
2427 NtUserRegisterHotKey(HWND hWnd
,
2434 NtUserRegisterTasklist(
2438 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2442 NtUserRemoteConnect(
2449 NtUserRemoteRedrawRectangle(
2457 NtUserRemoteRedrawScreen(VOID
);
2461 NtUserRemoteStopScreenUpdates(VOID
);
2464 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2468 NtUserResolveDesktop(
2476 NtUserResolveDesktopForWOW(
2493 CONST RECT
*lprcScroll
,
2494 CONST RECT
*lprcClip
,
2499 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2500 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2510 NtUserSetActiveWindow(HWND Wnd
);
2514 NtUserSetAppImeLevel(
2519 NtUserSetCapture(HWND Wnd
);
2525 ULONG_PTR dwNewLong
,
2537 NtUserSetClipboardData(
2544 NtUserSetClipboardViewer(
2545 HWND hWndNewViewer
);
2549 NtUserSelectPalette(
2552 BOOL ForceBackground
2557 NtUserSetConsoleReserveKeys(
2568 NtUserSetCursorContents(
2570 PICONINFO IconInfo
);
2574 NtUserSetCursorIconData(
2609 NtUserSetImeOwnerWindow(
2615 NtUserSetInformationProcess(
2623 NtUserSetInformationThread(
2631 NtUserSetInternalWindowPos(
2639 NtUserSetKeyboardState(
2644 NtUserSetLayeredWindowAttributes(
2652 NtUserSetLogonNotifyWindow(
2657 NtUserSetObjectInformation(
2660 PVOID pvInformation
,
2667 HWND hWndNewParent
);
2671 NtUserSetProcessWindowStation(
2672 HWINSTA hWindowStation
);
2675 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2685 NtUserSetScrollInfo(
2693 NtUserSetShellWindowEx(
2695 HWND hwndShellListView
);
2701 IN CONST INT
*lpaElements
,
2702 IN CONST COLORREF
*lpaRgbValues
,
2707 NtUserSetSystemCursor(
2713 NtUserSetThreadDesktop(
2718 NtUserSetThreadState(
2724 NtUserSetSystemTimer
2729 TIMERPROC lpTimerFunc
2734 NtUserSetThreadLayoutHandles(
2745 TIMERPROC lpTimerFunc
2750 NtUserSetWindowFNID(
2756 NtUserSetWindowLong(
2764 NtUserSetWindowPlacement(
2766 WINDOWPLACEMENT
*lpwndpl
);
2769 NTAPI
NtUserSetWindowPos(
2771 HWND hWndInsertAfter
,
2788 NtUserSetWindowsHookAW(
2795 NtUserSetWindowsHookEx(
2797 PUNICODE_STRING ModuleName
,
2805 NtUserSetWindowStationUser(
2812 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2816 NtUserSetWinEventHook(
2819 HMODULE hmodWinEventProc
,
2820 PUNICODE_STRING puString
,
2821 WINEVENTPROC lpfnWinEventProc
,
2838 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2848 NtUserShowWindowAsync(
2854 NtUserSoundSentry(VOID
);
2858 NtUserSwitchDesktop(
2863 NtUserSystemParametersInfo(
2871 NtUserTestForInteractiveUser(
2887 NtUserTrackMouseEvent(
2888 LPTRACKMOUSEEVENT lpEventTrack
);
2892 NtUserTranslateAccelerator(
2899 NtUserTranslateMessage(
2905 NtUserUnhookWindowsHookEx(
2910 NtUserUnhookWinEvent(
2911 HWINEVENTHOOK hWinEventHook
);
2915 NtUserUnloadKeyboardLayout(
2920 NtUserUnlockWindowStation(
2921 HWINSTA hWindowStation
);
2925 NtUserUnregisterClass(
2926 PUNICODE_STRING ClassNameOrAtom
,
2927 HINSTANCE hInstance
,
2928 PCLSMENUNAME pClassMenuName
);
2932 NtUserUnregisterHotKey(HWND hWnd
,
2937 NtUserUnregisterUserApiHook(VOID
);
2941 NtUserUpdateInputContext(
2948 NtUserUpdateInstance(
2955 NtUserUpdateLayeredWindow(
2963 BLENDFUNCTION
*pblend
,
2969 NtUserUpdatePerUserSystemParameters(
2975 NtUserUserHandleGrantAccess(
2976 IN HANDLE hUserHandle
,
2982 NtUserValidateHandleSecure(
2990 CONST RECT
*lpRect
);
2994 NtUserValidateTimerCallback(
3008 NtUserWaitForInputIdle(
3010 IN DWORD dwMilliseconds
,
3011 IN BOOL Unknown2
); // Always FALSE
3015 NtUserWaitForMsgAndEvent(
3020 NtUserWaitMessage(VOID
);
3024 NtUserWin32PoolAllocationStats(
3034 NtUserWindowFromPhysicalPoint(
3039 NtUserWindowFromPoint(
3045 NtUserYieldTask(VOID
);
3047 /* lParam of DDE messages */
3048 typedef struct tagKMDDEEXECUTEDATA
3052 /* BYTE Data[DataSize] */
3053 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
3055 typedef struct tagKMDDELPARAM
3067 } KMDDELPARAM
, *PKMDDELPARAM
;
3074 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3077 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3078 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3079 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
3080 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3081 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3082 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3083 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3084 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3085 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3086 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3087 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3088 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3089 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3090 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3091 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3092 #define MSQ_STATE_CAPTURE 0x1
3093 #define MSQ_STATE_ACTIVE 0x2
3094 #define MSQ_STATE_FOCUS 0x3
3095 #define MSQ_STATE_MENUOWNER 0x4
3096 #define MSQ_STATE_MOVESIZE 0x5
3097 #define MSQ_STATE_CARET 0x6
3098 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3099 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3100 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3104 NtUserBuildMenuItemList(
3110 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3113 NtUserCreateCursorIconHandle(
3118 /* Should be done in usermode and use NtUserGetCPD. */
3121 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3125 NtUserGetMenuDefaultItem(
3132 NtUserGetLastInputInfo(
3133 PLASTINPUTINFO plii
);
3137 NtUserGetMinMaxInfo(
3139 MINMAXINFO
*MinMaxInfo
,
3144 NtUserGetMonitorInfo(
3145 IN HMONITOR hMonitor
,
3146 OUT LPMONITORINFO pMonitorInfo
);
3148 /* Should be done in usermode */
3150 /* (other FocusedItem values give the position of the focused item) */
3151 #define NO_SELECTED_ITEM 0xffff
3153 typedef struct tagROSMENUINFO
3155 /* ----------- MENUINFO ----------- */
3161 DWORD dwContextHelpID
;
3162 ULONG_PTR dwMenuData
;
3163 /* ----------- Extra ----------- */
3164 HMENU Self
; /* Handle of this menu */
3165 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3166 UINT FocusedItem
; /* Currently focused item */
3167 UINT MenuItemCount
; /* Number of items in the menu */
3168 HWND Wnd
; /* Window containing the menu */
3169 WORD Width
; /* Width of the whole menu */
3170 WORD Height
; /* Height of the whole menu */
3171 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3172 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3173 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3174 } ROSMENUINFO
, *PROSMENUINFO
;
3186 typedef struct tagROSMENUITEMINFO
3188 /* ----------- MENUITEMINFOW ----------- */
3195 HBITMAP hbmpChecked
;
3196 HBITMAP hbmpUnchecked
;
3201 /* ----------- Extra ----------- */
3202 RECT Rect
; /* Item area (relative to menu window) */
3203 UINT XTab
; /* X position of text after Tab */
3204 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3205 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3213 PROSMENUITEMINFO lpmii
,
3219 NtUserMonitorFromPoint(
3225 NtUserMonitorFromRect(
3231 NtUserMonitorFromWindow(
3236 typedef struct tagNTUSERSENDMESSAGEINFO
3238 BOOL HandledByKernel
;
3241 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3243 /* use NtUserMessageCall */
3245 NtUserSendMessage(HWND hWnd
,
3249 PNTUSERSENDMESSAGEINFO Info
);
3251 /* use NtUserMessageCall */
3253 NtUserSendMessageTimeout(HWND hWnd
,
3260 PNTUSERSENDMESSAGEINFO Info
);
3262 typedef struct _SETSCROLLBARINFO
3266 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3267 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3271 NtUserSetScrollBarInfo(
3274 SETSCROLLBARINFO
*info
);
3278 #endif /* __WIN32K_NTUSER_H */