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_TRANSACTION 0x00000001
128 #define CI_QUEUEMSG 0x00000002
129 #define CI_WOW 0x00000004
130 #define CI_INITTHREAD 0x00000008
131 #define CI_CURTHPRHOOK 0x00000010
132 #define CI_CLASSESREGISTERED 0x00000020
133 #define CI_IMMACTIVATE 0x00000040
135 typedef struct _CLIENTINFO
141 DWORD dwCompatFlags2
;
143 PDESKTOPINFO pDeskInfo
;
144 ULONG_PTR ulClientDelta
;
147 CALLBACKWND CallbackWnd
;
149 INT cInDDEMLCallback
;
150 PCLIENTTHREADINFO pClientThreadInfo
;
151 ULONG_PTR dwHookData
;
154 DWORD dwAsyncKeyCache
;
155 BYTE afAsyncKeyState
[8];
156 BYTE afAsyncKeyStateRecentDow
[8];
161 LPDWORD lpdwRegisteredClasses
;
162 ULONG Win32ClientInfo3
[27];
163 /* It's just a pointer reference not to be used w the structure in user space. */
165 } CLIENTINFO
, *PCLIENTINFO
;
167 /* Make sure it fits into the TEB */
168 C_ASSERT(sizeof(CLIENTINFO
) <= sizeof(((PTEB
)0)->Win32ClientInfo
));
170 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
172 typedef struct _REGISTER_SYSCLASS
174 /* This is a reactos specific class used to initialize the
175 system window classes during user32 initialization */
184 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
186 typedef struct _CLSMENUNAME
188 LPSTR pszClientAnsiMenuName
;
189 LPWSTR pwszClientUnicodeMenuName
;
190 PUNICODE_STRING pusMenuName
;
191 } CLSMENUNAME
, *PCLSMENUNAME
;
193 typedef struct tagSBDATA
201 typedef struct tagSBINFO
210 UserGetCPDA2U
= 0x01, // " Unicode "
211 UserGetCPDU2A
= 0X02, // " Ansi "
212 UserGetCPDClass
= 0X10,
213 UserGetCPDWindow
= 0X20,
214 UserGetCPDDialog
= 0X40,
215 UserGetCPDWndtoCls
= 0X80
218 typedef struct _CALLPROCDATA
221 struct _CALLPROCDATA
*spcpdNext
;
222 WNDPROC pfnClientPrevious
;
224 } CALLPROCDATA
, *PCALLPROCDATA
;
226 #define CSF_SERVERSIDEPROC 0x0001
227 #define CSF_ANSIPROC 0x0002
228 #define CSF_WOWDEFERDESTROY 0x0004
229 #define CSF_SYSTEMCLASS 0x0008
230 #define CSF_WOWCLASS 0x0010
231 #define CSF_WOWEXTRA 0x0020
232 #define CSF_CACHEDSMICON 0x0040
233 #define CSF_WIN40COMPAT 0x0080
237 struct _CLS
*pclsNext
;
238 RTL_ATOM atomClassName
;
239 ATOM atomNVClassName
;
241 struct _DESKTOP
*rpdeskParent
;
244 PSTR lpszClientAnsiMenuName
; // For client use
245 PWSTR lpszClientUnicodeMenuName
; // " " "
246 PCALLPROCDATA spcpdFirst
;
247 struct _CLS
*pclsBase
;
248 struct _CLS
*pclsClone
;
249 ULONG cWndReferenceCount
;
255 HANDLE hIcon
; /* FIXME - Use pointer! */
257 HANDLE hCursor
; /* FIXME - Use pointer! */
259 HBRUSH hbrBackground
;
260 PWSTR lpszMenuName
; // kernel use
261 PSTR lpszAnsiClassName
; // "
262 HANDLE hIconSm
; /* FIXME - Use pointer! */
265 UINT Unicode
: 1; // !CSF_ANSIPROC
266 UINT Global
: 1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
267 UINT MenuNameIsString
: 1;
272 // State Flags !Not Implemented!
273 #define WNDS_HASMENU 0X00000001
274 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
275 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
276 #define WNDS_HASCAPTION 0X00000008
277 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
278 #define WNDS_MSGBOX 0X00000020
279 #define WNDS_ACTIVEFRAME 0X00000040
280 #define WNDS_HASSPB 0X00000080
281 #define WNDS_NONCPAINT 0X00000100
282 #define WNDS_SENDERASEBACKGROUND 0X00000200
283 #define WNDS_ERASEBACKGROUND 0X00000400
284 #define WNDS_SENDNCPAINT 0X00000800
285 #define WNDS_INTERNALPAINT 0X00001000
286 #define WNDS_UPDATEDIRTY 0X00002000
287 #define WNDS_HIDDENPOPUP 0X00004000
288 #define WNDS_FORCEMENUDRAW 0X00008000
289 #define WNDS_DIALOGWINDOW 0X00010000
290 #define WNDS_HASCREATESTRUCTNAME 0X00020000
291 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
292 #define WNDS_ANSIWINDOWPROC 0x00080000
293 #define WNDS_BEGINGACTIVATED 0x00100000
294 #define WNDS_HASPALETTE 0x00200000
295 #define WNDS_PAINTNOTPROCESSED 0x00400000
296 #define WNDS_SYNCPAINTPENDING 0x00800000
297 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
298 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
299 #define WNDS_TOGGLETOPMOST 0x04000000
300 #define WNDS_REDRAWIFHUNG 0x08000000
301 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
302 #define WNDS_ANSICREATOR 0x20000000
303 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
304 #define WNDS_DESTROYED 0x80000000
306 // State2 Flags !Not Implemented!
307 #define WNDS2_WMPAINTSENT 0X00000001
308 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
309 #define WNDS2_STARTPAINT 0X00000004
310 #define WNDS2_OLDUI 0X00000008
311 #define WNDS2_HASCLIENTEDGE 0X00000010
312 #define WNDS2_BOTTOMMOST 0X00000020
313 #define WNDS2_FULLSCREEN 0X00000040
314 #define WNDS2_INDESTROY 0X00000080
315 #define WNDS2_WIN31COMPAT 0X00000100
316 #define WNDS2_WIN40COMPAT 0X00000200
317 #define WNDS2_WIN50COMPAT 0X00000400
318 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
319 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
320 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
321 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
322 #define WNDS2_HELPBUTTONDOWN 0X00008000
323 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
324 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
325 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
326 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
327 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
328 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
329 #define WNDS2_FORCENCPAINT 0X00400000
330 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
331 #define WNDS2_FULLSCREENMODE 0X01000000
332 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
333 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
334 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
335 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
336 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
338 /* Non SDK ExStyles */
339 #define WS_EX_MAKEVISIBLEWHENUNGHOSTED 0x00000800
340 #define WS_EX_FORCELEGACYRESIZENCMETR 0x00800000
341 #define WS_EX_UISTATEACTIVE 0x04000000
342 #define WS_EX_REDIRECTED 0X20000000
343 #define WS_EX_UISTATEKBACCELHIDDEN 0X40000000
344 #define WS_EX_UISTATEFOCUSRECTHIDDEN 0X80000000
345 #define WS_EX_SETANSICREATOR 0x80000000 // For WNDS_ANSICREATOR
348 #define WS_MAXIMIZED WS_MAXIMIZE
349 #define WS_MINIMIZED WS_MINIMIZE
352 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
353 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
354 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
355 #define WS_EX2_LINKED 0X00000008
356 #define WS_EX2_LAYEREDFORDWM 0X00000010
357 #define WS_EX2_LAYEREDLIMBO 0X00000020
358 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
359 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
360 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
361 #define WS_EX2_HASOVERLAY 0X00000200
362 #define WS_EX2_CONSOLEWINDOW 0X00000400
363 #define WS_EX2_CHILDNOACTIVATE 0X00000800
370 /* Extended style. */
374 /* Handle of the module that created the window. */
377 struct _WND
*spwndNext
;
378 struct _WND
*spwndPrev
;
379 struct _WND
*spwndParent
;
380 struct _WND
*spwndChild
;
381 struct _WND
*spwndOwner
;
385 /* Pointer to the window class. */
388 /* Property list head.*/
389 LIST_ENTRY PropListHead
;
393 /* system menu handle. */
396 /* Window menu handle or window id */
397 UINT IDMenu
; // Use spmenu
402 UNICODE_STRING strName
;
403 /* Size of the extra data associated with the window. */
406 struct _WND
*spwndLastActive
;
407 //HIMC hImc; // Input context associated with this window.
409 //PACTIVATION_CONTEXT pActCtx;
410 //PD3DMATRIX pTransForm;
411 struct _WND
*spwndClipboardListener
;
421 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
422 /* Indicates whether the window is derived from a system class */
423 UINT InternalPosInitialized
: 1;
424 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
425 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
428 typedef struct _PFNCLIENT
430 WNDPROC pfnScrollBarWndProc
;
431 WNDPROC pfnTitleWndProc
;
432 WNDPROC pfnMenuWndProc
;
433 WNDPROC pfnDesktopWndProc
;
434 WNDPROC pfnDefWindowProc
;
435 WNDPROC pfnMessageWindowProc
;
436 WNDPROC pfnSwitchWindowProc
;
437 WNDPROC pfnButtonWndProc
;
438 WNDPROC pfnComboBoxWndProc
;
439 WNDPROC pfnComboListBoxProc
;
440 WNDPROC pfnDialogWndProc
;
441 WNDPROC pfnEditWndProc
;
442 WNDPROC pfnListBoxWndProc
;
443 WNDPROC pfnMDIClientWndProc
;
444 WNDPROC pfnStaticWndProc
;
445 WNDPROC pfnImeWndProc
;
446 WNDPROC pfnGhostWndProc
;
447 WNDPROC pfnHkINLPCWPSTRUCT
;
448 WNDPROC pfnHkINLPCWPRETSTRUCT
;
449 WNDPROC pfnDispatchHook
;
450 WNDPROC pfnDispatchDefWindowProc
;
451 WNDPROC pfnDispatchMessage
;
452 WNDPROC pfnMDIActivateDlgProc
;
453 } PFNCLIENT
, *PPFNCLIENT
;
456 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
457 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
460 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
462 typedef struct _PFNCLIENTWORKER
464 WNDPROC_EX pfnButtonWndProc
;
465 WNDPROC_EX pfnComboBoxWndProc
;
466 WNDPROC_EX pfnComboListBoxProc
;
467 WNDPROC_EX pfnDialogWndProc
;
468 WNDPROC_EX pfnEditWndProc
;
469 WNDPROC_EX pfnListBoxWndProc
;
470 WNDPROC_EX pfnMDIClientWndProc
;
471 WNDPROC_EX pfnStaticWndProc
;
472 WNDPROC_EX pfnImeWndProc
;
473 WNDPROC_EX pfnGhostWndProc
;
474 WNDPROC_EX pfnCtfHookProc
;
475 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
477 typedef LONG_PTR (NTAPI
*PFN_FNID
)(PWND
, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
479 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
480 #define FNID_FIRST 0x029A
481 #define FNID_SCROLLBAR 0x029A
482 #define FNID_ICONTITLE 0x029B
483 #define FNID_MENU 0x029C
484 #define FNID_DESKTOP 0x029D
485 #define FNID_DEFWINDOWPROC 0x029E
486 #define FNID_MESSAGEWND 0x029F
487 #define FNID_SWITCH 0x02A0
488 #define FNID_BUTTON 0x02A1
489 #define FNID_COMBOBOX 0x02A2
490 #define FNID_COMBOLBOX 0x02A3
491 #define FNID_DIALOG 0x02A4
492 #define FNID_EDIT 0x02A5
493 #define FNID_LISTBOX 0x02A6
494 #define FNID_MDICLIENT 0x02A7
495 #define FNID_STATIC 0x02A8
496 #define FNID_IME 0x02A9
497 #define FNID_GHOST 0x02AA
498 #define FNID_CALLWNDPROC 0x02AB
499 #define FNID_CALLWNDPROCRET 0x02AC
500 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
501 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
502 #define FNID_MB_DLGPROC 0x02AF
503 #define FNID_MDIACTIVATEDLGPROC 0x02B0
504 #define FNID_SENDMESSAGE 0x02B1
505 #define FNID_SENDMESSAGEFF 0x02B2
506 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
507 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
508 #define FNID_SENDMESSAGETIMEOUT 0x02B4
509 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
510 #define FNID_TOOLTIPS 0x02B6
511 #define FNID_SENDNOTIFYMESSAGE 0x02B7
512 #define FNID_SENDMESSAGECALLBACK 0x02B8
513 #define FNID_LAST 0x02B9
515 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
516 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
518 #define FNID_DDEML 0x2000 // Registers DDEML
519 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
520 // Seen during WM_CREATE on error exit too.
521 #define FNID_FREED 0x8000 // Window being Freed...
523 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
525 #define GETPFNCLIENTA(fnid)\
526 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
527 #define GETPFNCLIENTW(fnid)\
528 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
530 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
532 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
533 #define ICLS_BUTTON 0
535 #define ICLS_STATIC 2
536 #define ICLS_LISTBOX 3
537 #define ICLS_SCROLLBAR 4
538 #define ICLS_COMBOBOX 5
539 #define ICLS_MDICLIENT 6
540 #define ICLS_COMBOLBOX 7
541 #define ICLS_DDEMLEVENT 8
542 #define ICLS_DDEMLMOTHER 9
543 #define ICLS_DDEML16BIT 10
544 #define ICLS_DDEMLCLIENTA 11
545 #define ICLS_DDEMLCLIENTW 12
546 #define ICLS_DDEMLSERVERA 13
547 #define ICLS_DDEMLSERVERW 14
549 #define ICLS_GHOST 16
550 #define ICLS_DESKTOP 17
551 #define ICLS_DIALOG 18
553 #define ICLS_SWITCH 20
554 #define ICLS_ICONTITLE 21
555 #define ICLS_TOOLTIPS 22
556 #if (_WIN32_WINNT <= 0x0501)
557 #define ICLS_UNKNOWN 22
558 #define ICLS_NOTUSED 23
560 #define ICLS_SYSSHADOW 23
561 #define ICLS_HWNDMESSAGE 24
562 #define ICLS_NOTUSED 25
566 #define COLOR_LAST COLOR_MENUBAR
567 #define MAX_MB_STRINGS 11
569 #define SRVINFO_APIHOOK 0x0010
570 #define SRVINFO_METRICS 0x0020
572 typedef struct tagOEMBITMAPINFO
578 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
580 typedef struct tagMBSTRING
585 } MBSTRING
, *PMBSTRING
;
587 typedef struct tagDPISERVERINFO
589 INT gclBorder
; /* 000 */
590 HFONT hCaptionFont
; /* 004 */
591 HFONT hMsgFont
; /* 008 */
592 INT cxMsgFontChar
; /* 00C */
593 INT cyMsgFontChar
; /* 010 */
594 UINT wMaxBtnSize
; /* 014 */
595 } DPISERVERINFO
, *PDPISERVERINFO
;
597 typedef struct _PERUSERSERVERINFO
599 INT aiSysMet
[SM_CMETRICS
];
600 ULONG argbSystemUnmatched
[COLOR_LAST
+1];
601 COLORREF argbSystem
[COLOR_LAST
+1];
602 HBRUSH ahbrSystem
[COLOR_LAST
+1];
606 DWORD dwLastRITEventTickCount
;
611 UINT ucWheelScrollLines
;
612 UINT ucWheelScrollChars
;
613 INT wMaxLeftOverlapChars
;
614 INT wMaxRightOverlapChars
;
617 TEXTMETRICW tmSysFont
;
618 DPISERVERINFO dpiSystem
;
619 HICON hIconSmWindows
;
622 DWORD dwAsyncKeyCache
;
624 OEMBITMAPINFO oembmi
[93];
633 DWORD dwLastSystemRITEventTickCountUpdate
;
634 ULONG adwDBGTAGFlags
[35];
637 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
639 typedef struct tagSERVERINFO
642 ULONG_PTR cHandleEntries
;
643 PFN_FNID mpFnidPfn
[FNID_NUM
];
644 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
645 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
646 PFNCLIENT apfnClientA
;
647 PFNCLIENT apfnClientW
;
648 PFNCLIENTWORKER apfnClientWorker
;
650 ATOM atomSysClass
[ICLS_NOTUSED
+1];
651 DWORD dwDefaultHeapBase
;
652 DWORD dwDefaultHeapSize
;
654 MBSTRING MBStrings
[MAX_MB_STRINGS
];
657 ATOM atomContextHelpIdProp
;
658 ATOM atomFrostedWindowProp
;
659 CHAR acOemToAnsi
[256];
660 CHAR acAnsiToOem
[256];
661 DWORD dwInstalledEventHooks
;
663 } SERVERINFO
, *PSERVERINFO
;
666 // Server event activity bits.
667 #define SRV_EVENT_MENU 0x0001
668 #define SRV_EVENT_END_APPLICATION 0x0002
669 #define SRV_EVENT_RUNNING 0x0004
670 #define SRV_EVENT_NAMECHANGE 0x0008
671 #define SRV_EVENT_VALUECHANGE 0x0010
672 #define SRV_EVENT_STATECHANGE 0x0020
673 #define SRV_EVENT_LOCATIONCHANGE 0x0040
674 #define SRV_EVENT_CREATE 0x8000
676 typedef struct _PROPLISTITEM
680 } PROPLISTITEM
, *PPROPLISTITEM
;
682 typedef struct _PROPERTY
684 LIST_ENTRY PropListEntry
;
687 } PROPERTY
, *PPROPERTY
;
689 typedef struct _BROADCASTPARM
696 } BROADCASTPARM
, *PBROADCASTPARM
;
698 PTHREADINFO
GetW32ThreadInfo(VOID
);
699 PPROCESSINFO
GetW32ProcessInfo(VOID
);
701 typedef struct _WNDMSG
707 typedef struct _SHAREDINFO
709 PSERVERINFO psi
; // global Server Info
710 PVOID aheList
; // Handle Entry List
711 PVOID pDispInfo
; // global PDISPLAYINFO pointer
712 ULONG_PTR ulSharedDelta
; // Heap delta
713 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
714 WNDMSG DefWindowMsgs
;
715 WNDMSG DefWindowSpecMsgs
;
716 } SHAREDINFO
, *PSHAREDINFO
;
718 typedef struct _USERCONNECT
721 ULONG ulCurrentVersion
;
722 DWORD dwDispatchCount
;
724 } USERCONNECT
, *PUSERCONNECT
;
727 // Non SDK Window Message types.
729 #define WM_CLIENTSHUTDOWN 59
730 #define WM_COPYGLOBALDATA 73
731 #define WM_SYSTIMER 280
732 #define WM_POPUPSYSTEMMENU 787
733 #define WM_CBT 1023 // ReactOS only.
734 #define WM_MAXIMUM 0x0001FFFF
737 // Non SDK DCE types.
739 #define DCX_USESTYLE 0x00010000
740 #define DCX_KEEPCLIPRGN 0x00040000
743 // Non SDK Queue message types.
745 #define QS_SMRESULT 0x8000
749 NtUserAssociateInputContext(
780 NtUserCtxDisplayIOCtl(
799 NtUserDrawMenuBarTemp(
808 NtUserEnableMenuItem(
819 NtUserGetMenuBarInfo(
833 NtUserGetMenuItemRect(
847 NtUserHiliteMenuItem(
855 NtUserMenuItemFromPoint(
877 NtUserSetMenuContextHelpId(
879 DWORD dwContextHelpId
);
883 NtUserSetMenuDefaultItem(
890 NtUserSetMenuFlagRtoL(
901 NtUserThunkedMenuInfo(
907 NtUserThunkedMenuItemInfo(
912 LPMENUITEMINFOW lpmii
,
913 PUNICODE_STRING lpszCaption
);
917 NtUserTrackPopupMenuEx(
927 NtUserActivateKeyboardLayout(
933 NtUserAlterWindowStyle(
940 NtUserAttachThreadInput(
946 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
981 PULONG pRequiredSize
);
991 /* apfnSimpleCall indices from Windows XP SP 2 */
992 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
993 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
995 enum SimpleCallRoutines
997 NOPARAM_ROUTINE_CREATEMENU
,
998 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
999 #if (WIN32K_VERSION >= NTDDI_VISTA)
1000 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1001 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1002 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1003 NOPARAM_ROUTINE_DESTROY_CARET
,
1005 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1006 #if (WIN32K_VERSION < NTDDI_VISTA)
1007 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1008 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1009 NOPARAM_ROUTINE_DESTROY_CARET
,
1011 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1012 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1013 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1014 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1015 #if (WIN32K_VERSION >= NTDDI_VISTA)
1016 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1018 NOPARAM_ROUTINE_GETREMOTEPROCID
,
1020 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1021 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1022 #if (WIN32K_VERSION >= NTDDI_VISTA)
1023 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1024 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1026 NOPARAM_ROUTINE_RELEASECAPTURE
,
1027 NOPARAM_ROUTINE_RESETDBLCLICK
,
1028 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1029 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1030 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1031 NOPARAM_ROUTINE_REMOTELOGOFF
,
1032 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1033 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1034 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1035 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1036 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1037 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1038 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1039 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1040 #if (WIN32K_VERSION >= NTDDI_VISTA)
1041 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1043 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1044 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1045 #if (WIN32K_VERSION < NTDDI_VISTA)
1046 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1048 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1049 #if (WIN32K_VERSION >= NTDDI_VISTA)
1050 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1052 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1053 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1054 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1055 #if (WIN32K_VERSION < NTDDI_VISTA)
1056 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1058 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1059 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1060 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1061 #if (WIN32K_VERSION < NTDDI_VISTA)
1062 ONEPARAM_ROUTINE_GETCURSORPOS
,
1064 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1065 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1066 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1067 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1068 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1069 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1070 #if (WIN32K_VERSION < NTDDI_VISTA)
1071 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1073 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1074 ONEPARAM_ROUTINE_LOADFONTS
,
1075 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1076 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1077 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1078 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1079 #if (WIN32K_VERSION < NTDDI_VISTA)
1080 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1082 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1083 ONEPARAM_ROUTINE_REGISTERLPK
,
1084 #if (WIN32K_VERSION >= NTDDI_VISTA)
1085 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1087 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1088 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1089 ONEPARAM_ROUTINE_RELEASEDC
,
1090 #if (WIN32K_VERSION >= NTDDI_VISTA)
1091 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1093 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1094 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1095 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1096 #if (WIN32K_VERSION < NTDDI_VISTA)
1097 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1099 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1100 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1101 #if (WIN32K_VERSION >= NTDDI_VISTA)
1102 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1104 ONEPARAM_ROUTINE_SHOWCURSOR
,
1105 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1106 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1107 X_ROUTINE_WOWMODULEUNLOAD
,
1108 #if (WIN32K_VERSION < NTDDI_VISTA)
1109 X_ROUTINE_REMOTENOTIFY
,
1111 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1112 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1113 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1114 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1115 HWND_ROUTINE_SETMSGBOX
,
1116 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1117 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1118 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1119 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1120 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1121 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1122 HWNDPARAM_ROUTINE_SETVISIBLE
,
1123 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1124 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1125 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1126 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1127 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1128 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1129 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1130 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1131 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1132 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1133 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1134 HWNDLOCK_ROUTINE_SETSYSMENU
,
1135 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1136 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1137 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1138 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1139 TWOPARAM_ROUTINE_REDRAWTITLE
,
1140 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1141 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1142 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1143 TWOPARAM_ROUTINE_VALIDATERGN
,
1144 #if (WIN32K_VERSION >= NTDDI_VISTA)
1145 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1146 TWOPARAM_ROUTINE_GETCURSORPOS
,
1148 TWOPARAM_ROUTINE_GETHDEVNAME
,
1149 TWOPARAM_ROUTINE_INITANSIOEM
,
1150 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1151 #if (WIN32K_VERSION >= NTDDI_VISTA)
1152 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1154 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1155 #if (WIN32K_VERSION >= NTDDI_VISTA)
1156 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1158 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1160 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1161 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1162 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1163 TWOPARAM_ROUTINE_SETCARETPOS
,
1164 TWOPARAM_ROUTINE_SETCURSORPOS
,
1165 #if (WIN32K_VERSION >= NTDDI_VISTA)
1166 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1168 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1169 TWOPARAM_ROUTINE_WOWCLEANUP
1192 NtUserCallHwndParam(
1199 NtUserCallHwndParamLock(
1206 NtUserCallMsgFilter(
1212 NtUserCallNextHookEx(
1238 NtUserChangeClipboardChain(
1244 NtUserChangeDisplaySettings(
1245 PUNICODE_STRING lpszDeviceName
,
1246 LPDEVMODEW lpDevMode
,
1253 NtUserCheckDesktopByThreadId(
1258 NtUserCheckWindowThreadDesktop(
1265 NtUserCheckImeHotKey(
1270 NtUserChildWindowFromPointEx(
1283 NtUserCloseClipboard(VOID
);
1292 NtUserCloseWindowStation(
1297 NtUserConsoleControl(
1304 NtUserConvertMemHandle(
1310 NtUserCopyAcceleratorTable(
1317 NtUserCountClipboardFormats(VOID
);
1321 NtUserCreateAcceleratorTable(
1323 SIZE_T EntriesCount
);
1335 NtUserCreateDesktop(
1336 POBJECT_ATTRIBUTES poa
,
1337 PUNICODE_STRING lpszDesktopDevice
,
1340 ACCESS_MASK dwDesiredAccess
);
1344 NtUserCreateInputContext(
1349 NtUserCreateLocalMemHandle(
1357 NtUserCreateWindowEx(
1359 PUNICODE_STRING lpClassName
,
1360 PUNICODE_STRING lpWindowName
,
1368 HINSTANCE hInstance
,
1371 BOOL bUnicodeWindow
,
1376 NtUserCreateWindowEx(
1377 DWORD dwExStyle
, // |= 0x80000000 == Ansi used to set WNDS_ANSICREATOR
1378 PLARGE_STRING plstrClassName
,
1379 PLARGE_STRING plstrClsVesrion
,
1380 PLARGE_STRING plstrWindowName
,
1388 HINSTANCE hInstance
,
1396 NtUserCreateWindowStation(
1397 PUNICODE_STRING lpszWindowStationName
,
1398 ACCESS_MASK dwDesiredAccess
,
1399 LPSECURITY_ATTRIBUTES lpSecurity
,
1407 NtUserDdeGetQualityOfService(
1410 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1414 NtUserDdeInitialize(
1423 NtUserDdeSetQualityOfService(
1425 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1426 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1429 NtUserDeferWindowPos(
1432 HWND WndInsertAfter
,
1440 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1444 NtUserDestroyAcceleratorTable(
1449 NtUserDestroyCursor(
1455 NtUserDestroyInputContext(
1459 NtUserDestroyWindow(HWND Wnd
);
1463 NtUserDisableThreadIme(
1468 NtUserDispatchMessage(PMSG pMsg
);
1487 NtUserDrawAnimatedRects(
1503 NtUserDrawCaptionTemp(
1509 const PUNICODE_STRING str
,
1522 HBRUSH hbrFlickerFreeDraw
,
1529 NtUserEmptyClipboard(VOID
);
1533 NtUserEnableScrollBar(
1540 NtUserEndDeferWindowPosEx(
1545 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1549 NtUserEnumDisplayDevices (
1550 PUNICODE_STRING lpDevice
, /* device name */
1551 DWORD iDevNum
, /* display device */
1552 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1553 DWORD dwFlags
); /* reserved */
1557 NtUserEnumDisplayMonitors (
1560 MONITORENUMPROC lpfnEnum,
1562 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1565 NtUserEnumDisplayMonitors(
1566 OPTIONAL IN HDC hDC
,
1567 OPTIONAL IN LPCRECT pRect
,
1568 OPTIONAL OUT HMONITOR
*hMonitorList
,
1569 OPTIONAL OUT LPRECT monitorRectList
,
1570 OPTIONAL IN DWORD listSize
);
1575 NtUserEnumDisplaySettings(
1576 PUNICODE_STRING lpszDeviceName
,
1578 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1588 NtUserExcludeUpdateRgn(
1602 NtUserFindExistingCursorIcon(
1612 HWND hwndChildAfter
,
1613 PUNICODE_STRING ucClassName
,
1614 PUNICODE_STRING ucWindowName
,
1620 NtUserFlashWindowEx(
1621 IN PFLASHWINFO pfwi
);
1625 NtUserGetAltTabInfo(
1634 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1638 NtUserGetAppImeLevel(
1643 NtUserGetAsyncKeyState(
1654 NtUserGetCaretBlinkTime(VOID
);
1662 NtUserGetClassInfo(HINSTANCE hInstance
,
1663 PUNICODE_STRING ClassName
,
1665 LPWSTR
*ppszMenuName
,
1670 NtUserGetClassName(HWND hWnd
,
1671 PUNICODE_STRING ClassName
,
1673 #if 0 // Real NtUserGetClassName
1676 NtUserGetClassName(HWND hWnd
,
1677 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1678 PUNICODE_STRING ClassName
);
1683 NtUserGetClipboardData(
1689 NtUserGetClipboardFormatName(
1691 PUNICODE_STRING FormatName
,
1696 NtUserGetClipboardOwner(VOID
);
1700 NtUserGetClipboardSequenceNumber(VOID
);
1704 NtUserGetClipboardViewer(VOID
);
1708 NtUserGetClipCursor(
1713 NtUserGetComboBoxInfo(
1715 PCOMBOBOXINFO pcbi
);
1719 NtUserGetControlBrush(
1726 NtUserGetControlColor(
1741 NtUserGetCursorFrameInfo(
1749 NtUserGetCursorInfo(
1766 NtUserGetDoubleClickTime(VOID
);
1770 NtUserGetForegroundWindow(VOID
);
1774 NtUserGetGuiResources(
1780 NtUserGetGUIThreadInfo(
1782 LPGUITHREADINFO lpgui
);
1789 PUNICODE_STRING lpInstName
,
1790 PUNICODE_STRING lpResName
,
1818 NtUserGetInternalWindowPos(
1825 NtUserGetKeyboardLayout(
1830 NtUserGetKeyboardLayoutList(
1836 NtUserGetKeyboardLayoutName(
1841 NtUserGetKeyboardState(
1846 NtUserGetKeyboardType(
1851 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
1860 NtUserGetLayeredWindowAttributes(
1868 NtUserGetListBoxInfo(
1871 typedef struct tagNTUSERGETMESSAGEINFO
1875 } NTUSERGETMESSAGEINFO
, *PNTUSERGETMESSAGEINFO
;
1880 PNTUSERGETMESSAGEINFO MsgInfo
,
1883 UINT wMsgFilterMax
);
1887 NtUserGetMouseMovePointsEx(
1889 LPMOUSEMOVEPOINT lppt
,
1890 LPMOUSEMOVEPOINT lpptBuf
,
1896 NtUserGetObjectInformation(
1899 PVOID pvInformation
,
1901 PDWORD nLengthNeeded
);
1905 NtUserGetOpenClipboardWindow(VOID
);
1909 NtUserGetPriorityClipboardFormat(
1910 UINT
*paFormatPriorityList
,
1915 NtUserGetProcessWindowStation(VOID
);
1919 NtUserGetRawInputBuffer(
1926 NtUserGetRawInputData(
1927 HRAWINPUT hRawInput
,
1935 NtUserGetRawInputDeviceInfo(
1943 NtUserGetRawInputDeviceList(
1944 PRAWINPUTDEVICELIST pRawInputDeviceList
,
1945 PUINT puiNumDevices
,
1950 NtUserGetRegisteredRawInputDevices(
1951 PRAWINPUTDEVICE pRawInputDevices
,
1952 PUINT puiNumDevices
,
1957 NtUserGetScrollBarInfo(
1960 PSCROLLBARINFO psbi
);
1964 NtUserGetThreadDesktop(
1969 enum ThreadStateRoutines
1971 THREADSTATE_GETTHREADINFO
,
1972 THREADSTATE_INSENDMESSAGE
,
1973 THREADSTATE_FOCUSWINDOW
,
1974 THREADSTATE_ACTIVEWINDOW
,
1975 THREADSTATE_CAPTUREWINDOW
,
1976 THREADSTATE_PROGMANWINDOW
,
1977 THREADSTATE_TASKMANWINDOW
,
1978 THREADSTATE_GETMESSAGETIME
,
1979 THREADSTATE_GETINPUTSTATE
1984 NtUserGetThreadState(
1989 NtUserGetTitleBarInfo(
1994 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
2010 NtUserGetWindowPlacement(
2012 WINDOWPLACEMENT
*lpwndpl
);
2017 HINSTANCE hInstance
,
2018 PUNICODE_STRING ClassName
);
2022 NtUserHardErrorControl(
2029 NtUserImpersonateDdeClientWindow(
2037 HANDLE hPowerRequestEvent
,
2038 HANDLE hMediaRequestEvent
);
2042 NtUserInitializeClientPfnArrays(
2043 PPFNCLIENT pfnClientA
,
2044 PPFNCLIENT pfnClientW
,
2045 PPFNCLIENTWORKER pfnClientWorker
,
2046 HINSTANCE hmodUser
);
2066 NtUserInternalGetWindowText(
2073 NtUserInvalidateRect(
2080 NtUserInvalidateRgn(
2087 NtUserIsClipboardFormatAvailable(
2100 NtUserLoadKeyboardLayoutEx(
2103 IN PUNICODE_STRING puszKeyboardName
,
2105 IN PUNICODE_STRING puszKLID
,
2111 NtUserLockWindowStation(
2112 HWINSTA hWindowStation
);
2116 NtUserLockWindowUpdate(
2121 NtUserLockWorkStation(VOID
);
2125 NtUserMapVirtualKeyEx( UINT keyCode
,
2136 ULONG_PTR ResultInfo
,
2137 DWORD dwType
, // FNID_XX types
2144 UINT cmd
, // Wine SW_ commands
2149 NtUserMNDragLeave(VOID
);
2159 NtUserModifyUserStartupInfoFlags(
2176 NtUserNotifyIMEStatus(
2183 NtUserNotifyProcessCreate(
2191 NtUserNotifyWinEvent(
2199 NtUserOpenClipboard(
2206 PUNICODE_STRING lpszDesktopName
,
2208 ACCESS_MASK dwDesiredAccess
);
2212 NtUserOpenInputDesktop(
2215 ACCESS_MASK dwDesiredAccess
);
2219 NtUserOpenWindowStation(
2220 PUNICODE_STRING lpszWindowStationName
,
2221 ACCESS_MASK dwDesiredAccess
);
2241 PNTUSERGETMESSAGEINFO MsgInfo
,
2257 NtUserPostThreadMessage(
2272 NtUserProcessConnect(
2274 OUT PUSERCONNECT pUserConnect
,
2275 IN DWORD dwSize
); // sizeof(USERCONNECT)
2279 NtUserQueryInformationThread(
2288 NtUserQueryInputContext(
2294 NtUserQuerySendMessage(
2299 NtUserQueryUserCounters(
2306 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2307 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2308 #define QUERY_WINDOW_ACTIVE 0x02
2309 #define QUERY_WINDOW_FOCUS 0x03
2310 #define QUERY_WINDOW_ISHUNG 0x04
2311 #define QUERY_WINDOW_REAL_ID 0x05
2320 NtUserRealInternalGetMessage(
2330 NtUserRealChildWindowFromPoint(
2337 NtUserRealWaitMessageEx(
2346 CONST RECT
*lprcUpdate
,
2353 NtUserRegisterClassExWOW(
2355 PUNICODE_STRING pustrClassName
,
2356 PUNICODE_STRING pustrCNVersion
,
2357 PCLSMENUNAME pClassMenuName
,
2364 NtUserRegisterRawInputDevices(
2365 IN PCRAWINPUTDEVICE pRawInputDevices
,
2366 IN UINT uiNumDevices
,
2371 NtUserRegisterUserApiHook(
2372 PUNICODE_STRING m_dllname1
,
2373 PUNICODE_STRING m_funname1
,
2379 NtUserRegisterHotKey(HWND hWnd
,
2386 NtUserRegisterTasklist(
2390 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2394 NtUserRemoteConnect(
2401 NtUserRemoteRedrawRectangle(
2409 NtUserRemoteRedrawScreen(VOID
);
2413 NtUserRemoteStopScreenUpdates(VOID
);
2416 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2420 NtUserResolveDesktop(
2428 NtUserResolveDesktopForWOW(
2445 CONST RECT
*lprcScroll
,
2446 CONST RECT
*lprcClip
,
2451 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2452 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2462 NtUserSetActiveWindow(HWND Wnd
);
2466 NtUserSetAppImeLevel(
2471 NtUserSetCapture(HWND Wnd
);
2477 ULONG_PTR dwNewLong
,
2489 NtUserSetClipboardData(
2496 NtUserSetClipboardViewer(
2497 HWND hWndNewViewer
);
2501 NtUserSelectPalette(
2504 BOOL ForceBackground
2509 NtUserSetConsoleReserveKeys(
2520 NtUserSetCursorContents(
2522 PICONINFO IconInfo
);
2526 NtUserSetCursorIconData(
2561 NtUserSetImeOwnerWindow(
2567 NtUserSetInformationProcess(
2575 NtUserSetInformationThread(
2583 NtUserSetInternalWindowPos(
2591 NtUserSetKeyboardState(
2596 NtUserSetLayeredWindowAttributes(
2604 NtUserSetLogonNotifyWindow(
2609 NtUserSetObjectInformation(
2612 PVOID pvInformation
,
2619 HWND hWndNewParent
);
2623 NtUserSetProcessWindowStation(
2624 HWINSTA hWindowStation
);
2627 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
2637 NtUserSetScrollInfo(
2645 NtUserSetShellWindowEx(
2647 HWND hwndShellListView
);
2653 IN CONST INT
*lpaElements
,
2654 IN CONST COLORREF
*lpaRgbValues
,
2659 NtUserSetSystemCursor(
2665 NtUserSetThreadDesktop(
2670 NtUserSetThreadState(
2676 NtUserSetSystemTimer
2681 TIMERPROC lpTimerFunc
2686 NtUserSetThreadLayoutHandles(
2697 TIMERPROC lpTimerFunc
2702 NtUserSetWindowFNID(
2708 NtUserSetWindowLong(
2716 NtUserSetWindowPlacement(
2718 WINDOWPLACEMENT
*lpwndpl
);
2721 NTAPI
NtUserSetWindowPos(
2723 HWND hWndInsertAfter
,
2740 NtUserSetWindowsHookAW(
2747 NtUserSetWindowsHookEx(
2749 PUNICODE_STRING ModuleName
,
2757 NtUserSetWindowStationUser(
2764 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
2768 NtUserSetWinEventHook(
2771 HMODULE hmodWinEventProc
,
2772 PUNICODE_STRING puString
,
2773 WINEVENTPROC lpfnWinEventProc
,
2790 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
2800 NtUserShowWindowAsync(
2806 NtUserSoundSentry(VOID
);
2810 NtUserSwitchDesktop(
2815 NtUserSystemParametersInfo(
2823 NtUserTestForInteractiveUser(
2839 NtUserTrackMouseEvent(
2840 LPTRACKMOUSEEVENT lpEventTrack
);
2844 NtUserTranslateAccelerator(
2851 NtUserTranslateMessage(
2857 NtUserUnhookWindowsHookEx(
2862 NtUserUnhookWinEvent(
2863 HWINEVENTHOOK hWinEventHook
);
2867 NtUserUnloadKeyboardLayout(
2872 NtUserUnlockWindowStation(
2873 HWINSTA hWindowStation
);
2877 NtUserUnregisterClass(
2878 PUNICODE_STRING ClassNameOrAtom
,
2879 HINSTANCE hInstance
,
2880 PCLSMENUNAME pClassMenuName
);
2884 NtUserUnregisterHotKey(HWND hWnd
,
2889 NtUserUnregisterUserApiHook(VOID
);
2893 NtUserUpdateInputContext(
2900 NtUserUpdateInstance(
2907 NtUserUpdateLayeredWindow(
2915 BLENDFUNCTION
*pblend
,
2921 NtUserUpdatePerUserSystemParameters(
2927 NtUserUserHandleGrantAccess(
2928 IN HANDLE hUserHandle
,
2934 NtUserValidateHandleSecure(
2942 CONST RECT
*lpRect
);
2946 NtUserValidateTimerCallback(
2960 NtUserWaitForInputIdle(
2962 IN DWORD dwMilliseconds
,
2963 IN BOOL Unknown2
); // Always FALSE
2967 NtUserWaitForMsgAndEvent(
2972 NtUserWaitMessage(VOID
);
2976 NtUserWin32PoolAllocationStats(
2986 NtUserWindowFromPhysicalPoint(
2991 NtUserWindowFromPoint(
2997 NtUserYieldTask(VOID
);
2999 /* lParam of DDE messages */
3000 typedef struct tagKMDDEEXECUTEDATA
3004 /* BYTE Data[DataSize] */
3005 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
3007 typedef struct tagKMDDELPARAM
3019 } KMDDELPARAM
, *PKMDDELPARAM
;
3026 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3029 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3030 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3031 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
3032 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3033 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3034 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3035 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3036 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3037 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3038 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3039 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3040 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3041 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3042 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3043 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3044 #define MSQ_STATE_CAPTURE 0x1
3045 #define MSQ_STATE_ACTIVE 0x2
3046 #define MSQ_STATE_FOCUS 0x3
3047 #define MSQ_STATE_MENUOWNER 0x4
3048 #define MSQ_STATE_MOVESIZE 0x5
3049 #define MSQ_STATE_CARET 0x6
3050 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3051 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3052 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3056 NtUserBuildMenuItemList(
3062 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3065 NtUserCreateCursorIconHandle(
3070 /* Should be done in usermode and use NtUserGetCPD. */
3073 NtUserGetClassLong(HWND hWnd
, INT Offset
, BOOL Ansi
);
3077 NtUserGetMenuDefaultItem(
3084 NtUserGetLastInputInfo(
3085 PLASTINPUTINFO plii
);
3089 NtUserGetMinMaxInfo(
3091 MINMAXINFO
*MinMaxInfo
,
3096 NtUserGetMonitorInfo(
3097 IN HMONITOR hMonitor
,
3098 OUT LPMONITORINFO pMonitorInfo
);
3100 /* Should be done in usermode */
3103 NtUserGetScrollInfo(
3110 NtUserGetWindow(HWND hWnd
, UINT Relationship
);
3112 /* Should be done in usermode and use NtUserGetCPD. */
3115 NtUserGetWindowLong(HWND hWnd
, DWORD Index
, BOOL Ansi
);
3118 /* (other FocusedItem values give the position of the focused item) */
3119 #define NO_SELECTED_ITEM 0xffff
3121 typedef struct tagROSMENUINFO
3123 /* ----------- MENUINFO ----------- */
3129 DWORD dwContextHelpID
;
3130 ULONG_PTR dwMenuData
;
3131 /* ----------- Extra ----------- */
3132 HMENU Self
; /* Handle of this menu */
3133 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3134 UINT FocusedItem
; /* Currently focused item */
3135 UINT MenuItemCount
; /* Number of items in the menu */
3136 HWND Wnd
; /* Window containing the menu */
3137 WORD Width
; /* Width of the whole menu */
3138 WORD Height
; /* Height of the whole menu */
3139 HWND WndOwner
; /* window receiving the messages for ownerdraw */
3140 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3141 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3142 } ROSMENUINFO
, *PROSMENUINFO
;
3154 typedef struct tagROSMENUITEMINFO
3156 /* ----------- MENUITEMINFOW ----------- */
3163 HBITMAP hbmpChecked
;
3164 HBITMAP hbmpUnchecked
;
3169 /* ----------- Extra ----------- */
3170 RECT Rect
; /* Item area (relative to menu window) */
3171 UINT XTab
; /* X position of text after Tab */
3172 LPWSTR Text
; /* Copy of the text pointer in MenuItem->Text */
3173 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3181 PROSMENUITEMINFO lpmii
,
3187 NtUserMonitorFromPoint(
3193 NtUserMonitorFromRect(
3199 NtUserMonitorFromWindow(
3204 typedef struct tagNTUSERSENDMESSAGEINFO
3206 BOOL HandledByKernel
;
3209 } NTUSERSENDMESSAGEINFO
, *PNTUSERSENDMESSAGEINFO
;
3211 /* use NtUserMessageCall */
3213 NtUserSendMessage(HWND hWnd
,
3217 PNTUSERSENDMESSAGEINFO Info
);
3219 /* use NtUserMessageCall */
3221 NtUserSendMessageTimeout(HWND hWnd
,
3228 PNTUSERSENDMESSAGEINFO Info
);
3230 typedef struct _SETSCROLLBARINFO
3234 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3235 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3239 NtUserSetScrollBarInfo(
3242 SETSCROLLBARINFO
*info
);
3246 #endif /* __WIN32K_NTUSER_H */