1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
10 #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
11 #define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
13 #define HANDLEENTRY_DESTROY 1
14 #define HANDLEENTRY_INDESTROY 2
16 typedef struct _USER_HANDLE_ENTRY
18 void *ptr
; /* pointer to object */
22 struct _THREADINFO
*pti
; /* pointer to Win32ThreadInfo */
23 struct _PROCESSINFO
*ppi
; /* pointer to W32ProcessInfo */
25 unsigned char type
; /* object type (0 if free) */
27 unsigned short generation
; /* generation counter */
28 } USER_HANDLE_ENTRY
, *PUSER_HANDLE_ENTRY
;
30 typedef struct _USER_HANDLE_TABLE
32 PUSER_HANDLE_ENTRY handles
;
33 PUSER_HANDLE_ENTRY freelist
;
35 int allocated_handles
;
36 } USER_HANDLE_TABLE
, *PUSER_HANDLE_TABLE
;
38 typedef enum _HANDLE_TYPE
44 TYPE_SETWINDOWPOS
= 4,
55 TYPE_WINEVENTHOOK
= 15,
57 TYPE_INPUTCONTEXT
= 17,
60 TYPE_TOUCHINPUTINFO
= 20,
61 TYPE_GESTUREINFOOBJ
= 21,
64 } HANDLE_TYPE
, *PHANDLE_TYPE
;
66 typedef enum _USERTHREADINFOCLASS
68 UserThreadShutdownInformation
,
71 UserThreadWOWInformation
,
73 UserThreadInitiateShutdown
,
74 UserThreadEndShutdown
,
75 UserThreadUseActiveDesktop
,
77 UserThreadRestoreDesktop
,
79 } USERTHREADINFOCLASS
;
81 typedef struct _LARGE_UNICODE_STRING
84 ULONG MaximumLength
:31;
87 } LARGE_UNICODE_STRING
, *PLARGE_UNICODE_STRING
;
89 typedef struct _LARGE_STRING
92 ULONG MaximumLength
:31;
95 } LARGE_STRING
, *PLARGE_STRING
;
98 /* Based on ANSI_STRING */
99 typedef struct _LARGE_ANSI_STRING
102 ULONG MaximumLength
:31;
105 } LARGE_ANSI_STRING
, *PLARGE_ANSI_STRING
;
109 RtlInitLargeAnsiString(
110 IN OUT PLARGE_ANSI_STRING
,
116 RtlInitLargeUnicodeString(
117 IN OUT PLARGE_UNICODE_STRING
,
123 RtlLargeStringToUnicodeString(
127 #define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1)
129 typedef struct _DESKTOPINFO
132 PVOID pvDesktopLimit
;
135 LIST_ENTRY aphkStart
[NB_HOOKS
];
140 struct _WND
*spwndShell
;
141 struct _WND
*spwndBkGnd
;
143 struct _PROCESSINFO
*ppiShellProcess
;
150 UINT LastInputWasKbd
:1;
154 WCHAR szDesktopName
[1];
155 } DESKTOPINFO
, *PDESKTOPINFO
;
157 #define CTI_THREADSYSLOCK 0x0001
158 #define CTI_INSENDMESSAGE 0x0002
160 typedef struct _CLIENTTHREADINFO
165 WORD fsWakeBitsJournal
;
167 ULONG timeLastRead
; // Last time the message queue was read.
169 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
177 typedef struct _THROBJHEAD
180 struct _THREADINFO
*pti
;
181 } THROBJHEAD
, *PTHROBJHEAD
;
183 typedef struct _THRDESKHEAD
186 struct _DESKTOP
*rpdesk
;
188 } THRDESKHEAD
, *PTHRDESKHEAD
;
190 typedef struct tagIMC
193 struct tagIMC
*pImcNext
;
194 ULONG_PTR dwClientImcData
;
199 C_ASSERT(offsetof(IMC
, head
.h
) == 0x0);
200 C_ASSERT(offsetof(IMC
, head
.cLockObj
) == 0x4);
201 C_ASSERT(offsetof(IMC
, head
.pti
) == 0x8);
202 C_ASSERT(offsetof(IMC
, pImcNext
) == 0x14);
203 C_ASSERT(offsetof(IMC
, dwClientImcData
) == 0x18);
204 C_ASSERT(offsetof(IMC
, hImeWnd
) == 0x1c);
207 typedef struct _PROCDESKHEAD
211 struct _DESKTOP
*rpdesk
;
213 } PROCDESKHEAD
, *PPROCDESKHEAD
;
215 typedef struct _PROCMARKHEAD
219 struct _PROCESSINFO
*ppi
;
220 } PROCMARKHEAD
, *PPROCMARKHEAD
;
222 #define UserHMGetHandle(obj) ((obj)->head.h)
224 /* Window Client Information structure */
227 #define WEF_SETBYWNDPTI 0x0001
229 typedef struct tagHOOK
232 struct tagHOOK
*phkNext
; /* This is for user space. */
233 int HookId
; /* Hook table index */
235 ULONG flags
; /* Some internal flags */
237 struct _THREADINFO
*ptiHooked
;
238 struct _DESKTOP
*rpdesk
;
240 LIST_ENTRY Chain
; /* Hook chain entry */
241 HOOKPROC Proc
; /* Hook function */
242 BOOLEAN Ansi
; /* Is it an Ansi hook? */
243 UNICODE_STRING ModuleName
; /* Module name for global hooks */
246 typedef struct tagCLIPBOARDDATA
251 } CLIPBOARDDATA
, *PCLIPBOARDDATA
;
253 /* THREADINFO Flags */
254 #define TIF_INCLEANUP 0x00000001
255 #define TIF_16BIT 0x00000002
256 #define TIF_SYSTEMTHREAD 0x00000004
257 #define TIF_CSRSSTHREAD 0x00000008
258 #define TIF_TRACKRECTVISIBLE 0x00000010
259 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
260 #define TIF_DONTATTACHQUEUE 0x00000040
261 #define TIF_DONTJOURNALATTACH 0x00000080
262 #define TIF_WOW64 0x00000100
263 #define TIF_INACTIVATEAPPMSG 0x00000200
264 #define TIF_SPINNING 0x00000400
265 #define TIF_PALETTEAWARE 0x00000800
266 #define TIF_SHAREDWOW 0x00001000
267 #define TIF_FIRSTIDLE 0x00002000
268 #define TIF_WAITFORINPUTIDLE 0x00004000
269 #define TIF_MOVESIZETRACKING 0x00008000
270 #define TIF_VDMAPP 0x00010000
271 #define TIF_DOSEMULATOR 0x00020000
272 #define TIF_GLOBALHOOKER 0x00040000
273 #define TIF_DELAYEDEVENT 0x00080000
274 #define TIF_MSGPOSCHANGED 0x00100000
275 #define TIF_SHUTDOWNCOMPLETE 0x00200000
276 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
277 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
278 #define TIF_GUITHREADINITIALIZED 0x02000000
279 #define TIF_DISABLEIME 0x04000000
280 #define TIF_INGETTEXTLENGTH 0x08000000
281 #define TIF_ANSILENGTH 0x10000000
282 #define TIF_DISABLEHOOKS 0x20000000
284 typedef struct _CALLBACKWND
289 } CALLBACKWND
, *PCALLBACKWND
;
291 #define CI_TRANSACTION 0x00000001
292 #define CI_QUEUEMSG 0x00000002
293 #define CI_WOW 0x00000004
294 #define CI_INITTHREAD 0x00000008
295 #define CI_CURTHPRHOOK 0x00000010
296 #define CI_CLASSESREGISTERED 0x00000020
297 #define CI_IMMACTIVATE 0x00000040
298 #define CI_TFSDISABLED 0x00000400
300 typedef struct _CLIENTINFO
306 DWORD dwCompatFlags2
;
307 DWORD dwTIFlags
; /* ThreadInfo TIF_Xxx flags for User space. */
308 PDESKTOPINFO pDeskInfo
;
309 ULONG_PTR ulClientDelta
;
312 CALLBACKWND CallbackWnd
;
314 INT cInDDEMLCallback
;
315 PCLIENTTHREADINFO pClientThreadInfo
;
316 ULONG_PTR dwHookData
;
319 DWORD dwAsyncKeyCache
;
320 BYTE afAsyncKeyState
[8];
321 BYTE afAsyncKeyStateRecentDow
[8];
326 LPDWORD lpdwRegisteredClasses
;
327 ULONG Win32ClientInfo3
[26];
328 /* It's just a pointer reference not to be used w the structure in user space. */
329 struct _PROCESSINFO
*ppi
;
330 } CLIENTINFO
, *PCLIENTINFO
;
332 /* Make sure it fits into the TEB */
333 C_ASSERT(sizeof(CLIENTINFO
) <= sizeof(((PTEB
)0)->Win32ClientInfo
));
335 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
337 typedef struct tagDDEPACK
341 } DDEPACK
, *PDDEPACK
;
343 #define HRGN_NULL ((HRGN)0) /* NULL empty region */
344 #define HRGN_WINDOW ((HRGN)1) /* region from window rcWindow */
345 #define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */
347 /* Menu Item fType. */
348 #define MFT_RTOL 0x6000
350 /* Menu Item fState. */
351 #define MFS_HBMMENUBMP 0x20000000
353 typedef struct tagITEM
358 struct tagMENU
*spSubMenu
; /* Pop-up menu. */
360 HANDLE hbmpUnchecked
;
361 USHORT
*Xlpstr
; /* Item text pointer. */
363 DWORD_PTR dwItemData
;
364 ULONG xItem
; /* Item position. left */
365 ULONG yItem
; /* " top */
366 ULONG cxItem
; /* Item Size Width */
367 ULONG cyItem
; /* " Height */
368 ULONG dxTab
; /* X position of text after Tab */
369 ULONG ulX
; /* underline.. start position */
370 ULONG ulWidth
; /* underline.. width */
371 HBITMAP hbmp
; /* bitmap */
372 INT cxBmp
; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
373 INT cyBmp
; /* Height " */
375 UNICODE_STRING lpstr
;
378 typedef struct tagMENULIST
380 struct tagMENULIST
*pNext
;
381 struct tagMENU
*pMenu
;
382 } MENULIST
, *PMENULIST
;
384 /* Menu fFlags, upper byte is MNS_X style flags. */
385 #define MNF_POPUP 0x0001
386 #define MNF_UNDERLINE 0x0004
387 #define MNF_INACTIVE 0x0010
388 #define MNF_RTOL 0x0020
389 #define MNF_DESKTOPMN 0x0040
390 #define MNF_SYSDESKMN 0x0080
391 #define MNF_SYSSUBMENU 0x0100
393 #define MNF_SYSMENU 0x0200
395 /* (other FocusedItem values give the position of the focused item) */
396 #define NO_SELECTED_ITEM 0xffff
398 typedef struct tagMENU
401 ULONG fFlags
; /* [Style flags | Menu flags] */
402 INT iItem
; /* nPos of selected item, if -1 not selected. AKA focused item */
403 UINT cAlloced
; /* Number of allocated items. Inc's of 8 */
404 UINT cItems
; /* Number of items in the menu */
405 ULONG cxMenu
; /* Width of the whole menu */
406 ULONG cyMenu
; /* Height of the whole menu */
407 ULONG cxTextAlign
; /* Offset of text when items have both bitmaps and text */
408 struct _WND
*spwndNotify
; /* window receiving the messages for ownerdraw */
409 PITEM rgItems
; /* Array of menu items */
410 struct tagMENULIST
*pParentMenus
; /* If this is SubMenu, list of parents. */
411 DWORD dwContextHelpId
;
412 ULONG cyMax
; /* max height of the whole menu, 0 is screen height */
413 DWORD_PTR dwMenuData
; /* application defined value */
414 HBRUSH hbrBack
; /* brush for menu background */
415 INT iTop
; /* Current scroll position Top */
416 INT iMaxTop
; /* Current scroll position Max Top */
417 DWORD dwArrowsOn
:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
419 LIST_ENTRY ListEntry
;
420 HWND hWnd
; /* Window containing the menu, use POPUPMENU */
424 typedef struct tagPOPUPMENU
429 ULONG fIsTrackPopup
:1;
430 ULONG fDroppedLeft
:1;
431 ULONG fHierarchyDropped
:1;
432 ULONG fRightButton
:1;
434 ULONG fSynchronous
:1;
436 ULONG fDropNextPopup
:1;
438 ULONG fAboutToHide
:1;
442 ULONG fDelayedFree
:1;
443 ULONG fFlushDelayedFree
:1;
446 ULONG fTrackMouseEvent
:1;
449 // ULONG fDesktopMenu:1;
451 ULONG fUseMonitorRect
:1;
452 struct _WND
*spwndNotify
;
453 struct _WND
*spwndPopupMenu
;
454 struct _WND
*spwndNextPopup
;
455 struct _WND
*spwndPrevPopup
;
457 PMENU spmenuAlternate
;
458 struct _WND
*spwndActivePopup
;
459 struct tagPOPUPMENU
*ppopupmenuRoot
;
460 struct tagPOPUPMENU
*ppmDelayedFree
;
461 UINT posSelectedItem
;
463 } POPUPMENU
, *PPOPUPMENU
;
465 typedef struct _REGISTER_SYSCLASS
467 /* This is a reactos specific class used to initialize the
468 system window classes during user32 initialization */
477 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
479 typedef struct _CLSMENUNAME
481 LPSTR pszClientAnsiMenuName
;
482 LPWSTR pwszClientUnicodeMenuName
;
483 PUNICODE_STRING pusMenuName
;
484 } CLSMENUNAME
, *PCLSMENUNAME
;
486 typedef struct tagSBDATA
494 typedef struct tagSBINFO
501 typedef struct tagSBCALC
523 UserGetCPDA2U
= 0x01, /* " Unicode " */
524 UserGetCPDU2A
= 0X02, /* " Ansi " */
525 UserGetCPDClass
= 0X10,
526 UserGetCPDWindow
= 0X20,
527 UserGetCPDDialog
= 0X40,
528 UserGetCPDWndtoCls
= 0X80
531 typedef struct _CALLPROCDATA
534 struct _CALLPROCDATA
*spcpdNext
;
535 WNDPROC pfnClientPrevious
;
537 } CALLPROCDATA
, *PCALLPROCDATA
;
539 #define CSF_SERVERSIDEPROC 0x0001
540 #define CSF_ANSIPROC 0x0002
541 #define CSF_WOWDEFERDESTROY 0x0004
542 #define CSF_SYSTEMCLASS 0x0008
543 #define CSF_WOWCLASS 0x0010
544 #define CSF_WOWEXTRA 0x0020
545 #define CSF_CACHEDSMICON 0x0040
546 #define CSF_WIN40COMPAT 0x0080
550 struct _CLS
*pclsNext
;
551 RTL_ATOM atomClassName
;
552 ATOM atomNVClassName
;
554 struct _DESKTOP
*rpdeskParent
;
557 PSTR lpszClientAnsiMenuName
; /* For client use */
558 PWSTR lpszClientUnicodeMenuName
; /* " " " */
559 PCALLPROCDATA spcpdFirst
;
560 struct _CLS
*pclsBase
;
561 struct _CLS
*pclsClone
;
562 ULONG cWndReferenceCount
;
568 struct _CURICON_OBJECT
*spicn
;
569 struct _CURICON_OBJECT
*spcur
;
570 HBRUSH hbrBackground
;
571 PWSTR lpszMenuName
; /* kernel use */
572 PSTR lpszAnsiClassName
; /* " */
573 struct _CURICON_OBJECT
*spicnSm
;
575 UINT Unicode
:1; // !CSF_ANSIPROC
576 UINT Global
:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
577 UINT MenuNameIsString
:1;
581 typedef struct _SBINFOEX
583 SCROLLBARINFO ScrollBarInfo
;
584 SCROLLINFO ScrollInfo
;
585 } SBINFOEX
, *PSBINFOEX
;
587 /* State Flags !Not ALL Implemented! */
588 #define WNDS_HASMENU 0X00000001
589 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
590 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
591 #define WNDS_HASCAPTION 0X00000008
592 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
593 #define WNDS_MSGBOX 0X00000020
594 #define WNDS_ACTIVEFRAME 0X00000040
595 #define WNDS_HASSPB 0X00000080
596 #define WNDS_NONCPAINT 0X00000100
597 #define WNDS_SENDERASEBACKGROUND 0X00000200
598 #define WNDS_ERASEBACKGROUND 0X00000400
599 #define WNDS_SENDNCPAINT 0X00000800
600 #define WNDS_INTERNALPAINT 0X00001000
601 #define WNDS_UPDATEDIRTY 0X00002000
602 #define WNDS_HIDDENPOPUP 0X00004000
603 #define WNDS_FORCEMENUDRAW 0X00008000
604 #define WNDS_DIALOGWINDOW 0X00010000
605 #define WNDS_HASCREATESTRUCTNAME 0X00020000
606 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */
607 #define WNDS_ANSIWINDOWPROC 0x00080000
608 #define WNDS_BEINGACTIVATED 0x00100000
609 #define WNDS_HASPALETTE 0x00200000
610 #define WNDS_PAINTNOTPROCESSED 0x00400000
611 #define WNDS_SYNCPAINTPENDING 0x00800000
612 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
613 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000
614 #define WNDS_TOGGLETOPMOST 0x04000000
615 #define WNDS_REDRAWIFHUNG 0x08000000
616 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
617 #define WNDS_ANSICREATOR 0x20000000
618 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
619 #define WNDS_DESTROYED 0x80000000
621 #define WNDSACTIVEFRAME 0x00000006
623 /* State2 Flags !Not ALL Implemented! */
624 #define WNDS2_WMPAINTSENT 0X00000001
625 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
626 #define WNDS2_STARTPAINT 0X00000004
627 #define WNDS2_OLDUI 0X00000008
628 #define WNDS2_HASCLIENTEDGE 0X00000010
629 #define WNDS2_BOTTOMMOST 0X00000020
630 #define WNDS2_FULLSCREEN 0X00000040
631 #define WNDS2_INDESTROY 0X00000080
632 #define WNDS2_WIN31COMPAT 0X00000100
633 #define WNDS2_WIN40COMPAT 0X00000200
634 #define WNDS2_WIN50COMPAT 0X00000400
635 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
636 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
637 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
638 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
639 #define WNDS2_HELPBUTTONDOWN 0X00008000
640 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
641 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
642 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
643 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
644 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
645 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
646 #define WNDS2_FORCENCPAINT 0X00400000
647 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
648 #define WNDS2_FULLSCREENMODE 0X01000000
649 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
650 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
651 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
652 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
653 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
656 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
657 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
658 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
659 #define WS_EX2_LINKED 0X00000008
660 #define WS_EX2_LAYEREDFORDWM 0X00000010
661 #define WS_EX2_LAYEREDLIMBO 0X00000020
662 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
663 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
664 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
665 #define WS_EX2_HASOVERLAY 0X00000200
666 #define WS_EX2_CONSOLEWINDOW 0X00000400
667 #define WS_EX2_CHILDNOACTIVATE 0X00000800
669 #define WPF_MININIT 0x0008
670 #define WPF_MAXINIT 0x0010
678 /* These fields should be moved in the WW at some point. */
679 /* Plese do not change them to keep the same layout with WW. */
682 /* Extended style. */
686 /* Handle of the module that created the window. */
690 struct _WND
*spwndNext
;
691 struct _WND
*spwndPrev
;
692 struct _WND
*spwndParent
;
693 struct _WND
*spwndChild
;
694 struct _WND
*spwndOwner
;
698 /* Pointer to the window class. */
701 /* Property list head.*/
702 LIST_ENTRY PropListHead
;
706 /* system menu handle. */
709 /* Window menu handle or window id */
710 UINT_PTR IDMenu
; // Use spmenu
715 LARGE_UNICODE_STRING strName
;
716 /* Size of the extra data associated with the window. */
718 struct _WND
*spwndLastActive
;
719 HIMC hImc
; // Input context associated with this window.
722 //PD3DMATRIX pTransForm;
723 struct _WND
*spwndClipboardListener
;
732 UINT flags
; /* WPF_ flags. */
735 UINT Unicode
:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
736 UINT InternalPosInitialized
:1;
737 UINT HideFocus
:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
738 UINT HideAccel
:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
741 PSBINFOEX pSBInfoex
; // convert to PSBINFO
742 /* Entry in the list of thread windows. */
743 LIST_ENTRY ThreadListEntry
;
748 #define PWND_BOTTOM ((PWND)1)
750 typedef struct _SBWND
758 typedef struct _MDIWND
765 #define GWLP_MDIWND 4
767 typedef struct _MENUWND
770 PPOPUPMENU ppopupmenu
;
771 } MENUWND
, *PMENUWND
;
773 typedef struct _PFNCLIENT
775 WNDPROC pfnScrollBarWndProc
;
776 WNDPROC pfnTitleWndProc
;
777 WNDPROC pfnMenuWndProc
;
778 WNDPROC pfnDesktopWndProc
;
779 WNDPROC pfnDefWindowProc
;
780 WNDPROC pfnMessageWindowProc
;
781 WNDPROC pfnSwitchWindowProc
;
782 WNDPROC pfnButtonWndProc
;
783 WNDPROC pfnComboBoxWndProc
;
784 WNDPROC pfnComboListBoxProc
;
785 WNDPROC pfnDialogWndProc
;
786 WNDPROC pfnEditWndProc
;
787 WNDPROC pfnListBoxWndProc
;
788 WNDPROC pfnMDIClientWndProc
;
789 WNDPROC pfnStaticWndProc
;
790 WNDPROC pfnImeWndProc
;
791 WNDPROC pfnGhostWndProc
;
792 WNDPROC pfnHkINLPCWPSTRUCT
;
793 WNDPROC pfnHkINLPCWPRETSTRUCT
;
794 WNDPROC pfnDispatchHook
;
795 WNDPROC pfnDispatchDefWindowProc
;
796 WNDPROC pfnDispatchMessage
;
797 WNDPROC pfnMDIActivateDlgProc
;
798 } PFNCLIENT
, *PPFNCLIENT
;
801 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
802 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
806 (CALLBACK
*WNDPROC_EX
)(
813 typedef struct _PFNCLIENTWORKER
815 WNDPROC_EX pfnButtonWndProc
;
816 WNDPROC_EX pfnComboBoxWndProc
;
817 WNDPROC_EX pfnComboListBoxProc
;
818 WNDPROC_EX pfnDialogWndProc
;
819 WNDPROC_EX pfnEditWndProc
;
820 WNDPROC_EX pfnListBoxWndProc
;
821 WNDPROC_EX pfnMDIClientWndProc
;
822 WNDPROC_EX pfnStaticWndProc
;
823 WNDPROC_EX pfnImeWndProc
;
824 WNDPROC_EX pfnGhostWndProc
;
825 WNDPROC_EX pfnCtfHookProc
;
826 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
836 /* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
837 #define FNID_FIRST 0x029A
838 #define FNID_SCROLLBAR 0x029A
839 #define FNID_ICONTITLE 0x029B
840 #define FNID_MENU 0x029C
841 #define FNID_DESKTOP 0x029D
842 #define FNID_DEFWINDOWPROC 0x029E
843 #define FNID_MESSAGEWND 0x029F
844 #define FNID_SWITCH 0x02A0
845 #define FNID_BUTTON 0x02A1
846 #define FNID_COMBOBOX 0x02A2
847 #define FNID_COMBOLBOX 0x02A3
848 #define FNID_DIALOG 0x02A4
849 #define FNID_EDIT 0x02A5
850 #define FNID_LISTBOX 0x02A6
851 #define FNID_MDICLIENT 0x02A7
852 #define FNID_STATIC 0x02A8
853 #define FNID_IME 0x02A9
854 #define FNID_GHOST 0x02AA
855 #define FNID_CALLWNDPROC 0x02AB
856 #define FNID_CALLWNDPROCRET 0x02AC
857 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
858 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
859 #define FNID_MB_DLGPROC 0x02AF
860 #define FNID_MDIACTIVATEDLGPROC 0x02B0
861 #define FNID_SENDMESSAGE 0x02B1
862 #define FNID_SENDMESSAGEFF 0x02B2
863 /* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
864 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
865 #define FNID_SENDMESSAGECALLPROC 0x02B4
866 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
867 #define FNID_TOOLTIPS 0x02B6
868 #define FNID_SENDNOTIFYMESSAGE 0x02B7
869 #define FNID_SENDMESSAGECALLBACK 0x02B8
871 #define FNID_LAST FNID_SENDMESSAGECALLBACK
873 #define FNID_NUM (FNID_LAST - FNID_FIRST + 1)
874 #define FNID_NUMSERVERPROC (FNID_SWITCH - FNID_FIRST + 1)
876 #define FNID_DDEML 0x2000 /* Registers DDEML */
877 #define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
878 /* Seen during WM_CREATE on error exit too. */
879 #define FNID_FREED 0x8000 /* Window being Freed... */
881 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
883 #define GETPFNCLIENTA(fnid) \
884 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
885 #define GETPFNCLIENTW(fnid) \
886 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
888 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
890 /* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
891 #define ICLS_BUTTON 0
893 #define ICLS_STATIC 2
894 #define ICLS_LISTBOX 3
895 #define ICLS_SCROLLBAR 4
896 #define ICLS_COMBOBOX 5
897 #define ICLS_MDICLIENT 6
898 #define ICLS_COMBOLBOX 7
899 #define ICLS_DDEMLEVENT 8
900 #define ICLS_DDEMLMOTHER 9
901 #define ICLS_DDEML16BIT 10
902 #define ICLS_DDEMLCLIENTA 11
903 #define ICLS_DDEMLCLIENTW 12
904 #define ICLS_DDEMLSERVERA 13
905 #define ICLS_DDEMLSERVERW 14
907 #define ICLS_GHOST 16
908 #define ICLS_DESKTOP 17
909 #define ICLS_DIALOG 18
911 #define ICLS_SWITCH 20
912 #define ICLS_ICONTITLE 21
913 #define ICLS_TOOLTIPS 22
914 #if (_WIN32_WINNT <= 0x0501)
915 #define ICLS_UNKNOWN 22
916 #define ICLS_NOTUSED 23
918 #define ICLS_SYSSHADOW 23
919 #define ICLS_HWNDMESSAGE 24
920 #define ICLS_NOTUSED 25
924 #define COLOR_LAST COLOR_MENUBAR
925 #define MAX_MB_STRINGS 11
927 #define SRVINFO_DBCSENABLED 0x0002
928 #define SRVINFO_IMM32 0x0004
929 #define SRVINFO_APIHOOK 0x0010
930 #define SRVINFO_CICERO_ENABLED 0x0020
931 #define SRVINFO_KBDPREF 0x0080
933 #define NUM_SYSCOLORS 31
935 typedef struct tagOEMBITMAPINFO
941 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
943 typedef enum _OBI_TYPES
954 typedef struct tagMBSTRING
959 } MBSTRING
, *PMBSTRING
;
961 typedef struct tagDPISERVERINFO
963 INT gclBorder
; /* 000 */
964 HFONT hCaptionFont
; /* 004 */
965 HFONT hMsgFont
; /* 008 */
966 INT cxMsgFontChar
; /* 00C */
967 INT cyMsgFontChar
; /* 010 */
968 UINT wMaxBtnSize
; /* 014 */
969 } DPISERVERINFO
, *PDPISERVERINFO
;
972 #define PUSIF_PALETTEDISPLAY 0x01
973 #define PUSIF_SNAPTO 0x02
974 #define PUSIF_COMBOBOXANIMATION 0x04
975 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
976 #define PUSIF_KEYBOARDCUES 0x20
978 typedef struct _PERUSERSERVERINFO
980 INT aiSysMet
[SM_CMETRICS
];
981 ULONG argbSystemUnmatched
[NUM_SYSCOLORS
];
982 COLORREF argbSystem
[NUM_SYSCOLORS
];
983 HBRUSH ahbrSystem
[NUM_SYSCOLORS
];
987 DWORD dwLastRITEventTickCount
;
992 UINT ucWheelScrollLines
;
993 UINT ucWheelScrollChars
;
994 INT wMaxLeftOverlapChars
;
995 INT wMaxRightOverlapChars
;
998 TEXTMETRICW tmSysFont
;
999 DPISERVERINFO dpiSystem
;
1000 HICON hIconSmWindows
;
1003 DWORD dwAsyncKeyCache
;
1005 OEMBITMAPINFO oembmi
[OBI_CTYPES
];
1014 DWORD dwLastSystemRITEventTickCountUpdate
;
1015 ULONG adwDBGTAGFlags
[35];
1018 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
1020 typedef struct tagSERVERINFO
1023 ULONG_PTR cHandleEntries
;
1024 PFN_FNID mpFnidPfn
[FNID_NUM
];
1025 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
1026 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
1027 PFNCLIENT apfnClientA
;
1028 PFNCLIENT apfnClientW
;
1029 PFNCLIENTWORKER apfnClientWorker
;
1030 ULONG cbHandleTable
;
1031 ATOM atomSysClass
[ICLS_NOTUSED
+1];
1032 DWORD dwDefaultHeapBase
;
1033 DWORD dwDefaultHeapSize
;
1035 MBSTRING MBStrings
[MAX_MB_STRINGS
];
1036 ATOM atomIconSmProp
;
1038 ATOM atomContextHelpIdProp
;
1039 ATOM atomFrostedWindowProp
;
1040 CHAR acOemToAnsi
[256];
1041 CHAR acAnsiToOem
[256];
1042 DWORD dwInstalledEventHooks
;
1044 } SERVERINFO
, *PSERVERINFO
;
1047 C_ASSERT(sizeof(SERVERINFO
) <= PAGE_SIZE
);
1051 /* Server event activity bits. */
1052 #define SRV_EVENT_MENU 0x0001
1053 #define SRV_EVENT_END_APPLICATION 0x0002
1054 #define SRV_EVENT_RUNNING 0x0004
1055 #define SRV_EVENT_NAMECHANGE 0x0008
1056 #define SRV_EVENT_VALUECHANGE 0x0010
1057 #define SRV_EVENT_STATECHANGE 0x0020
1058 #define SRV_EVENT_LOCATIONCHANGE 0x0040
1059 #define SRV_EVENT_CREATE 0x8000
1061 typedef struct _PROPLISTITEM
1065 } PROPLISTITEM
, *PPROPLISTITEM
;
1067 #define PROPERTY_FLAG_SYSTEM 1
1069 typedef struct _PROPERTY
1071 LIST_ENTRY PropListEntry
;
1075 } PROPERTY
, *PPROPERTY
;
1077 typedef struct _BROADCASTPARM
1084 } BROADCASTPARM
, *PBROADCASTPARM
;
1086 struct _THREADINFO
*GetW32ThreadInfo(VOID
);
1087 struct _PROCESSINFO
*GetW32ProcessInfo(VOID
);
1089 typedef struct _WNDMSG
1095 typedef struct _SHAREDINFO
1097 PSERVERINFO psi
; /* Global Server Info */
1098 PVOID aheList
; /* Handle Entry List */
1099 PVOID pDispInfo
; /* Global PDISPLAYINFO pointer */
1100 ULONG_PTR ulSharedDelta
; /* Shared USER mapped section delta */
1101 WNDMSG awmControl
[FNID_NUM
];
1102 WNDMSG DefWindowMsgs
;
1103 WNDMSG DefWindowSpecMsgs
;
1104 } SHAREDINFO
, *PSHAREDINFO
;
1106 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1107 typedef struct _USERCONNECT
1110 ULONG ulCurrentVersion
;
1111 DWORD dwDispatchCount
;
1112 SHAREDINFO siClient
;
1113 } USERCONNECT
, *PUSERCONNECT
;
1115 /* WinNT 5.0 compatible user32 / win32k */
1116 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1118 #if defined(_M_IX86)
1119 C_ASSERT(sizeof(USERCONNECT
) == 0x124);
1122 typedef struct tagGETCLIPBDATA
1131 } GETCLIPBDATA
, *PGETCLIPBDATA
;
1133 typedef struct tagSETCLIPBDATA
1136 BOOL fIncSerialNumber
;
1137 } SETCLIPBDATA
, *PSETCLIPBDATA
;
1139 /* Used with NtUserSetCursorIconData, last parameter. */
1140 typedef struct tagCURSORDATA
1146 ULONG CURSORF_flags
;
1153 HBITMAP hbmUserAlpha
; /* Could be in W7U, not in W2k */
1159 struct tagCURSORDATA
*aspcur
;
1163 } CURSORDATA
, *PCURSORDATA
; /* !dso CURSORDATA */
1165 /* CURSORF_flags: */
1166 #define CURSORF_FROMRESOURCE 0x0001
1167 #define CURSORF_GLOBAL 0x0002
1168 #define CURSORF_LRSHARED 0x0004
1169 #define CURSORF_ACON 0x0008
1170 #define CURSORF_WOWCLEANUP 0x0010
1171 #define CURSORF_ACONFRAME 0x0040
1172 #define CURSORF_SECRET 0x0080
1173 #define CURSORF_LINKED 0x0100
1174 #define CURSORF_CURRENT 0x0200
1176 typedef struct tagIMEINFOEX
1180 WCHAR wszUIClass
[16];
1181 ULONG fdwInitConvMode
;
1184 DWORD dwProdVersion
;
1185 DWORD dwImeWinVersion
;
1186 WCHAR wszImeDescription
[50];
1187 WCHAR wszImeFile
[80];
1190 INT fSysWow64Only
:1;
1193 } IMEINFOEX
, *PIMEINFOEX
;
1195 typedef enum IMEINFOEXCLASS
1197 ImeInfoExKeyboardLayout
,
1198 ImeInfoExKeyboardLayoutTFS
,
1200 ImeInfoExImeFileName
1203 #define IS_IME_HKL(hkl) ((((ULONG_PTR)(hkl)) & 0xF0000000) == 0xE0000000)
1205 typedef struct tagIMEUI
1218 UINT fChildThreadDef
:1;
1219 UINT fCtrlShowStatus
:1;
1220 UINT fFreeActiveEvent
:1;
1224 /* Window Extra data container. */
1225 typedef struct _IMEWND
1231 typedef struct tagTRANSMSG
1236 } TRANSMSG
, *PTRANSMSG
, *LPTRANSMSG
;
1238 typedef struct tagTRANSMSGLIST
1241 TRANSMSG TransMsg
[ANYSIZE_ARRAY
];
1242 } TRANSMSGLIST
, *PTRANSMSGLIST
, *LPTRANSMSGLIST
;
1244 #define DEFINE_IME_ENTRY(type, name, params, extended) typedef type (WINAPI *FN_##name) params;
1245 #include "imetable.h"
1246 #undef DEFINE_IME_ENTRY
1248 typedef struct IMEDPI
1250 struct IMEDPI
*pNext
;
1255 WCHAR szUIClass
[16];
1258 #define DEFINE_IME_ENTRY(type, name, params, extended) FN_##name name;
1259 #include "imetable.h"
1260 #undef DEFINE_IME_ENTRY
1264 C_ASSERT(offsetof(IMEDPI
, pNext
) == 0x0);
1265 C_ASSERT(offsetof(IMEDPI
, hInst
) == 0x4);
1266 C_ASSERT(offsetof(IMEDPI
, hKL
) == 0x8);
1267 C_ASSERT(offsetof(IMEDPI
, ImeInfo
) == 0xc);
1268 C_ASSERT(offsetof(IMEDPI
, uCodePage
) == 0x28);
1269 C_ASSERT(offsetof(IMEDPI
, szUIClass
) == 0x2c);
1270 C_ASSERT(offsetof(IMEDPI
, cLockObj
) == 0x4c);
1271 C_ASSERT(offsetof(IMEDPI
, dwFlags
) == 0x50);
1272 C_ASSERT(offsetof(IMEDPI
, ImeInquire
) == 0x54);
1273 C_ASSERT(offsetof(IMEDPI
, ImeConversionList
) == 0x58);
1274 C_ASSERT(offsetof(IMEDPI
, ImeRegisterWord
) == 0x5c);
1275 C_ASSERT(offsetof(IMEDPI
, ImeUnregisterWord
) == 0x60);
1276 C_ASSERT(offsetof(IMEDPI
, ImeGetRegisterWordStyle
) == 0x64);
1277 C_ASSERT(offsetof(IMEDPI
, ImeEnumRegisterWord
) == 0x68);
1278 C_ASSERT(offsetof(IMEDPI
, ImeConfigure
) == 0x6c);
1279 C_ASSERT(offsetof(IMEDPI
, ImeDestroy
) == 0x70);
1280 C_ASSERT(offsetof(IMEDPI
, ImeEscape
) == 0x74);
1281 C_ASSERT(offsetof(IMEDPI
, ImeProcessKey
) == 0x78);
1282 C_ASSERT(offsetof(IMEDPI
, ImeSelect
) == 0x7c);
1283 C_ASSERT(offsetof(IMEDPI
, ImeSetActiveContext
) == 0x80);
1284 C_ASSERT(offsetof(IMEDPI
, ImeToAsciiEx
) == 0x84);
1285 C_ASSERT(offsetof(IMEDPI
, NotifyIME
) == 0x88);
1286 C_ASSERT(offsetof(IMEDPI
, ImeSetCompositionString
) == 0x8c);
1287 C_ASSERT(offsetof(IMEDPI
, ImeGetImeMenuItems
) == 0x90);
1288 C_ASSERT(offsetof(IMEDPI
, CtfImeInquireExW
) == 0x94);
1289 C_ASSERT(offsetof(IMEDPI
, CtfImeSelectEx
) == 0x98);
1290 C_ASSERT(offsetof(IMEDPI
, CtfImeEscapeEx
) == 0x9c);
1291 C_ASSERT(offsetof(IMEDPI
, CtfImeGetGuidAtom
) == 0xa0);
1292 C_ASSERT(offsetof(IMEDPI
, CtfImeIsGuidMapEnable
) == 0xa4);
1293 C_ASSERT(sizeof(IMEDPI
) == 0xa8);
1296 /* flags for IMEDPI.dwFlags */
1297 #define IMEDPI_FLAG_UNKNOWN 0x1
1298 #define IMEDPI_FLAG_LOCKED 0x2
1301 typedef struct tagCLIENTIMC
1303 HANDLE hInputContext
; /* LocalAlloc'ed LHND */
1306 DWORD dwCompatFlags
;
1307 RTL_CRITICAL_SECTION cs
;
1311 } CLIENTIMC
, *PCLIENTIMC
;
1314 C_ASSERT(offsetof(CLIENTIMC
, hInputContext
) == 0x0);
1315 C_ASSERT(offsetof(CLIENTIMC
, cLockObj
) == 0x4);
1316 C_ASSERT(offsetof(CLIENTIMC
, dwFlags
) == 0x8);
1317 C_ASSERT(offsetof(CLIENTIMC
, dwCompatFlags
) == 0xc);
1318 C_ASSERT(offsetof(CLIENTIMC
, cs
) == 0x10);
1319 C_ASSERT(offsetof(CLIENTIMC
, uCodePage
) == 0x28);
1320 C_ASSERT(offsetof(CLIENTIMC
, hKL
) == 0x2c);
1321 C_ASSERT(sizeof(CLIENTIMC
) == 0x34);
1324 /* flags for CLIENTIMC */
1325 #define CLIENTIMC_WIDE 0x1
1326 #define CLIENTIMC_UNKNOWN5 0x2
1327 #define CLIENTIMC_UNKNOWN4 0x20
1328 #define CLIENTIMC_DESTROY 0x40
1329 #define CLIENTIMC_DISABLEIME 0x80
1330 #define CLIENTIMC_UNKNOWN2 0x100
1334 NtUserAssociateInputContext(HWND hWnd
, HIMC hIMC
, DWORD dwFlags
);
1338 NtUserBuildHimcList(DWORD dwThreadId
, DWORD dwCount
, HIMC
*phList
, LPDWORD pdwCount
);
1351 NtUserCheckMenuItem(
1358 NtUserCtxDisplayIOCtl(
1365 NtUserDbgWin32HeapFail(
1371 NtUserDbgWin32HeapStat(
1389 NtUserDrawMenuBarTemp(
1398 NtUserEnableMenuItem(
1405 NtUserEndMenu(VOID
);
1409 NtUserGetMenuBarInfo(
1423 NtUserGetMenuItemRect(
1431 NtUserGetSystemMenu(
1437 NtUserHiliteMenuItem(
1445 NtUserMenuItemFromPoint(
1467 NtUserSetMenuContextHelpId(
1469 DWORD dwContextHelpId
);
1473 NtUserSetMenuDefaultItem(
1480 NtUserSetMenuFlagRtoL(
1485 NtUserSetSystemMenu(
1491 NtUserThunkedMenuInfo(
1497 NtUserThunkedMenuItemInfo(
1502 LPMENUITEMINFOW lpmii
,
1503 PUNICODE_STRING lpszCaption
);
1507 NtUserTrackPopupMenuEx(
1517 NtUserActivateKeyboardLayout(
1523 NtUserAlterWindowStyle(
1530 NtUserAttachThreadInput(
1532 IN DWORD idAttachTo
,
1559 NtUserBuildHwndList(
1566 ULONG
*pcHwndNeeded
);
1570 NtUserBuildNameList(
1574 PULONG pRequiredSize
);
1578 NtUserBuildPropList(
1584 /* apfnSimpleCall indices from Windows XP SP 2 */
1585 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1586 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1588 enum SimpleCallRoutines
1590 NOPARAM_ROUTINE_CREATEMENU
,
1591 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1592 #if (WIN32K_VERSION >= NTDDI_VISTA)
1593 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1594 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1595 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1596 NOPARAM_ROUTINE_DESTROY_CARET
,
1598 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1599 #if (WIN32K_VERSION < NTDDI_VISTA)
1600 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1601 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1602 NOPARAM_ROUTINE_DESTROY_CARET
,
1604 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1605 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1606 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1607 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1608 #if (WIN32K_VERSION >= NTDDI_VISTA)
1609 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1611 NOPARAM_ROUTINE_GETREMOTEPROCESSID
,
1613 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1614 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1615 #if (WIN32K_VERSION >= NTDDI_VISTA)
1616 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1617 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1619 NOPARAM_ROUTINE_RELEASECAPTURE
,
1620 NOPARAM_ROUTINE_RESETDBLCLICK
,
1621 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1622 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1623 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1624 NOPARAM_ROUTINE_REMOTELOGOFF
,
1625 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1626 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1627 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1628 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1629 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1630 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1631 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1632 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1633 #if (WIN32K_VERSION >= NTDDI_VISTA)
1634 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1636 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1637 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1638 #if (WIN32K_VERSION < NTDDI_VISTA)
1639 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1641 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1642 #if (WIN32K_VERSION >= NTDDI_VISTA)
1643 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1645 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1646 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1647 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1648 #if (WIN32K_VERSION < NTDDI_VISTA)
1649 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1651 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1652 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1653 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1654 #if (WIN32K_VERSION < NTDDI_VISTA)
1655 ONEPARAM_ROUTINE_GETCURSORPOS
,
1657 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1658 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1659 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1660 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1661 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1662 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1663 #if (WIN32K_VERSION < NTDDI_VISTA)
1664 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1666 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1667 ONEPARAM_ROUTINE_LOADFONTS
,
1668 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1669 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1670 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1671 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1672 #if (WIN32K_VERSION < NTDDI_VISTA)
1673 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1675 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1676 ONEPARAM_ROUTINE_REGISTERLPK
,
1677 #if (WIN32K_VERSION >= NTDDI_VISTA)
1678 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1680 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1681 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1682 ONEPARAM_ROUTINE_RELEASEDC
,
1683 #if (WIN32K_VERSION >= NTDDI_VISTA)
1684 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1686 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1687 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1688 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1689 #if (WIN32K_VERSION < NTDDI_VISTA)
1690 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1692 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1693 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1694 #if (WIN32K_VERSION >= NTDDI_VISTA)
1695 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1697 ONEPARAM_ROUTINE_SHOWCURSOR
,
1698 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1699 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1700 X_ROUTINE_WOWMODULEUNLOAD
,
1701 #if (WIN32K_VERSION < NTDDI_VISTA)
1702 X_ROUTINE_REMOTENOTIFY
,
1704 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1705 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1706 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1707 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1708 HWND_ROUTINE_SETMSGBOX
,
1709 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1710 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1711 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1712 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1713 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1714 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1715 HWNDPARAM_ROUTINE_SETVISIBLE
,
1716 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1717 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1718 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1719 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1720 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1721 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1722 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1723 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1724 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1725 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1726 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1727 HWNDLOCK_ROUTINE_SETSYSMENU
,
1728 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1729 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1730 TWOPARAM_ROUTINE_IMESHOWSTATUSCHANGE
,
1731 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1732 TWOPARAM_ROUTINE_REDRAWTITLE
,
1733 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1734 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1735 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1736 TWOPARAM_ROUTINE_VALIDATERGN
,
1737 #if (WIN32K_VERSION >= NTDDI_VISTA)
1738 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1739 TWOPARAM_ROUTINE_GETCURSORPOS
,
1741 TWOPARAM_ROUTINE_GETHDEVNAME
,
1742 TWOPARAM_ROUTINE_INITANSIOEM
,
1743 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1744 #if (WIN32K_VERSION >= NTDDI_VISTA)
1745 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1747 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1748 #if (WIN32K_VERSION >= NTDDI_VISTA)
1749 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1751 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1753 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1754 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1755 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1756 TWOPARAM_ROUTINE_SETCARETPOS
,
1757 TWOPARAM_ROUTINE_SETCURSORPOS
,
1758 #if (WIN32K_VERSION >= NTDDI_VISTA)
1759 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1761 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1762 TWOPARAM_ROUTINE_WOWCLEANUP
1785 NtUserCallHwndParam(
1792 NtUserCallHwndParamLock(
1799 NtUserCallMsgFilter(
1805 NtUserCallNextHookEx(
1831 NtUserChangeClipboardChain(
1837 NtUserChangeDisplaySettings(
1838 PUNICODE_STRING lpszDeviceName
,
1839 LPDEVMODEW lpDevMode
,
1845 NtUserCheckDesktopByThreadId(
1850 NtUserCheckWindowThreadDesktop(
1857 NtUserCheckImeHotKey(
1862 NtUserChildWindowFromPointEx(
1875 NtUserCloseClipboard(VOID
);
1884 NtUserCloseWindowStation(
1887 /* Console commands for NtUserConsoleControl */
1888 typedef enum _CONSOLECONTROL
1890 ConsoleCtrlDesktopConsoleThread
= 0,
1891 GuiConsoleWndClassAtom
= 1,
1892 ConsoleMakePalettePublic
= 5,
1893 ConsoleAcquireDisplayOwnership
,
1894 } CONSOLECONTROL
, *PCONSOLECONTROL
;
1896 typedef struct _DESKTOP_CONSOLE_THREAD
1898 HDESK DesktopHandle
;
1900 } DESKTOP_CONSOLE_THREAD
, *PDESKTOP_CONSOLE_THREAD
;
1904 NtUserConsoleControl(
1905 IN CONSOLECONTROL ConsoleCtrl
,
1906 IN PVOID ConsoleCtrlInfo
,
1907 IN ULONG ConsoleCtrlInfoLength
);
1911 NtUserConvertMemHandle(
1917 NtUserCopyAcceleratorTable(
1920 ULONG EntriesCount
);
1924 NtUserCountClipboardFormats(VOID
);
1928 NtUserCreateAcceleratorTable(
1930 ULONG EntriesCount
);
1942 NtUserCreateDesktop(
1943 POBJECT_ATTRIBUTES poa
,
1944 PUNICODE_STRING lpszDesktopDevice
,
1947 ACCESS_MASK dwDesiredAccess
);
1951 NtUserCreateInputContext(ULONG_PTR dwClientImcData
);
1955 NtUserCreateLocalMemHandle(
1963 NtUserCreateWindowEx(
1965 PLARGE_STRING plstrClassName
,
1966 PLARGE_STRING plstrClsVersion
,
1967 PLARGE_STRING plstrWindowName
,
1975 HINSTANCE hInstance
,
1982 NtUserCreateWindowStation(
1983 POBJECT_ATTRIBUTES ObjectAttributes
,
1984 ACCESS_MASK dwDesiredAccess
,
1993 NtUserDdeGetQualityOfService(
1996 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
2000 NtUserDdeInitialize(
2009 NtUserDdeSetQualityOfService(
2011 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
2012 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
2016 NtUserDeferWindowPos(
2019 HWND WndInsertAfter
,
2030 PLARGE_STRING WindowText
);
2034 NtUserDestroyAcceleratorTable(
2039 NtUserDestroyCursor(
2045 NtUserDestroyInputContext(HIMC hIMC
);
2049 NtUserDestroyWindow(
2054 NtUserDisableThreadIme(
2059 NtUserDispatchMessage(
2079 NtUserDrawAnimatedRects(
2095 NtUserDrawCaptionTemp(
2101 const PUNICODE_STRING str
,
2104 /* Used with NtUserDrawIconEx, last parameter. */
2105 typedef struct _DRAWICONEXDATA
2111 } DRAWICONEXDATA
, *PDRAWICONEXDATA
;
2123 HBRUSH hbrFlickerFreeDraw
,
2130 NtUserEmptyClipboard(VOID
);
2134 NtUserEnableScrollBar(
2141 NtUserEndDeferWindowPosEx(
2149 CONST PAINTSTRUCT
*lPs
);
2153 NtUserEnumDisplayDevices(
2154 PUNICODE_STRING lpDevice
, /* device name */
2155 DWORD iDevNum
, /* display device */
2156 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
2157 DWORD dwFlags
); /* reserved */
2162 NtUserEnumDisplayMonitors(
2165 MONITORENUMPROC lpfnEnum,
2168 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2171 NtUserEnumDisplayMonitors(
2172 OPTIONAL IN HDC hDC
,
2173 OPTIONAL IN LPCRECT pRect
,
2174 OPTIONAL OUT HMONITOR
*hMonitorList
,
2175 OPTIONAL OUT LPRECT monitorRectList
,
2176 OPTIONAL IN DWORD listSize
);
2181 NtUserEnumDisplaySettings(
2182 PUNICODE_STRING lpszDeviceName
,
2184 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
2194 NtUserExcludeUpdateRgn(
2210 HWND hwndChildAfter
,
2211 PUNICODE_STRING ucClassName
,
2212 PUNICODE_STRING ucWindowName
,
2217 NtUserFlashWindowEx(
2218 IN PFLASHWINFO pfwi
);
2222 NtUserGetAltTabInfo(
2238 NtUserGetAppImeLevel(HWND hWnd
);
2242 NtUserGetAsyncKeyState(
2245 _Success_(return != 0)
2246 _At_(pustrName
->Buffer
, _Out_z_bytecap_post_bytecount_(pustrName
->MaximumLength
, return * 2 + 2))
2251 _Inout_ PUNICODE_STRING pustrName
);
2255 NtUserGetCaretBlinkTime(VOID
);
2265 HINSTANCE hInstance
,
2266 PUNICODE_STRING ClassName
,
2268 LPWSTR
*ppszMenuName
,
2275 BOOL Real
, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2276 PUNICODE_STRING ClassName
);
2280 NtUserGetClipboardData(
2282 PGETCLIPBDATA pgcd
);
2286 NtUserGetClipboardFormatName(
2288 LPWSTR lpszFormatName
,
2293 NtUserGetClipboardOwner(VOID
);
2297 NtUserGetClipboardSequenceNumber(VOID
);
2301 NtUserGetClipboardViewer(VOID
);
2305 NtUserGetClipCursor(
2310 NtUserGetComboBoxInfo(
2312 PCOMBOBOXINFO pcbi
);
2316 NtUserGetControlBrush(
2323 NtUserGetControlColor(
2338 NtUserGetCursorFrameInfo(
2346 NtUserGetCursorInfo(
2363 NtUserGetDoubleClickTime(VOID
);
2367 NtUserGetForegroundWindow(VOID
);
2371 NtUserGetGuiResources(
2377 NtUserGetGUIThreadInfo(
2379 LPGUITHREADINFO lpgui
);
2381 _Success_(return != FALSE
)
2385 _In_ HANDLE hCurIcon
,
2386 _Out_opt_ PICONINFO IconInfo
,
2387 _Inout_opt_ PUNICODE_STRING lpInstName
,
2388 _Inout_opt_ PUNICODE_STRING lpResName
,
2389 _Out_opt_ LPDWORD pbpp
,
2390 _In_ BOOL bInternal
);
2402 NtUserGetImeHotKey(DWORD dwHotKeyId
,
2403 LPUINT lpuModifiers
,
2404 LPUINT lpuVirtualKey
,
2410 PIMEINFOEX pImeInfoEx
,
2411 IMEINFOEXCLASS SearchType
);
2415 NtUserGetInternalWindowPos(
2422 NtUserGetKeyboardLayout(
2427 NtUserGetKeyboardLayoutList(
2433 NtUserGetKeyboardLayoutName(
2434 _Inout_ PUNICODE_STRING pustrName
);
2438 NtUserGetKeyboardState(
2443 NtUserGetKeyboardType(
2448 NtUserGetKeyNameText(
2460 NtUserGetLayeredWindowAttributes(
2468 NtUserGetListBoxInfo(
2481 NtUserGetMouseMovePointsEx(
2483 LPMOUSEMOVEPOINT lppt
,
2484 LPMOUSEMOVEPOINT lpptBuf
,
2490 NtUserGetObjectInformation(
2493 PVOID pvInformation
,
2495 PDWORD nLengthNeeded
);
2499 NtUserGetOpenClipboardWindow(VOID
);
2503 NtUserGetPriorityClipboardFormat(
2504 UINT
*paFormatPriorityList
,
2509 NtUserGetProcessWindowStation(VOID
);
2513 NtUserGetRawInputBuffer(
2520 NtUserGetRawInputData(
2521 HRAWINPUT hRawInput
,
2529 NtUserGetRawInputDeviceInfo(
2537 NtUserGetRawInputDeviceList(
2538 PRAWINPUTDEVICELIST pRawInputDeviceList
,
2539 PUINT puiNumDevices
,
2544 NtUserGetRegisteredRawInputDevices(
2545 PRAWINPUTDEVICE pRawInputDevices
,
2546 PUINT puiNumDevices
,
2551 NtUserGetScrollBarInfo(
2554 PSCROLLBARINFO psbi
);
2558 NtUserGetThreadDesktop(
2560 HDESK hConsoleDesktop
);
2562 enum ThreadStateRoutines
2564 THREADSTATE_FOCUSWINDOW
= 0,
2565 THREADSTATE_ACTIVEWINDOW
,
2566 THREADSTATE_CAPTUREWINDOW
,
2567 THREADSTATE_DEFAULTIMEWINDOW
,
2568 THREADSTATE_DEFAULTINPUTCONTEXT
,
2569 THREADSTATE_GETINPUTSTATE
,
2570 THREADSTATE_GETCURSOR
,
2571 THREADSTATE_CHANGEBITS
,
2572 THREADSTATE_UPTIMELASTREAD
,
2573 THREADSTATE_GETMESSAGEEXTRAINFO
,
2574 THREADSTATE_INSENDMESSAGE
,
2575 THREADSTATE_GETMESSAGETIME
,
2576 THREADSTATE_FOREGROUNDTHREAD
,
2577 THREADSTATE_IMECOMPATFLAGS
,
2578 THREADSTATE_OLDKEYBOARDLAYOUT
,
2579 THREADSTATE_ISWINLOGON
,
2580 THREADSTATE_ISWINLOGON2
,
2581 THREADSTATE_CHECKCONIME
,
2582 THREADSTATE_GETTHREADINFO
,
2583 THREADSTATE_PROGMANWINDOW
, /* FIXME: Delete this HACK */
2584 THREADSTATE_TASKMANWINDOW
, /* FIXME: Delete this HACK */
2589 NtUserGetThreadState(
2594 NtUserGetTitleBarInfo(
2600 NtUserGetUpdateRect(
2619 NtUserGetWindowPlacement(
2621 WINDOWPLACEMENT
*lpwndpl
);
2626 HINSTANCE hInstance
,
2627 PUNICODE_STRING ClassName
);
2631 NtUserHardErrorControl(
2638 NtUserImpersonateDdeClientWindow(
2646 HANDLE hPowerRequestEvent
,
2647 HANDLE hMediaRequestEvent
);
2651 NtUserInitializeClientPfnArrays(
2652 PPFNCLIENT pfnClientA
,
2653 PPFNCLIENT pfnClientW
,
2654 PPFNCLIENTWORKER pfnClientWorker
,
2655 HINSTANCE hmodUser
);
2675 NtUserInternalGetWindowText(
2682 NtUserInvalidateRect(
2689 NtUserInvalidateRgn(
2696 NtUserIsClipboardFormatAvailable(
2707 NtUserLoadKeyboardLayoutEx(
2710 IN PUNICODE_STRING puszKeyboardName
,
2712 IN PUNICODE_STRING puszKLID
,
2718 NtUserLockWindowStation(
2719 HWINSTA hWindowStation
);
2723 NtUserLockWindowUpdate(
2728 NtUserLockWorkStation(VOID
);
2732 NtUserMapVirtualKeyEx(
2738 typedef struct tagDOSENDMESSAGE
2744 DOSENDMESSAGE
, *PDOSENDMESSAGE
;
2753 ULONG_PTR ResultInfo
,
2754 DWORD dwType
, /* FNID_XX types */
2761 UINT cmd
, /* Wine SW_ commands */
2766 NtUserMNDragLeave(VOID
);
2776 NtUserModifyUserStartupInfoFlags(
2793 NtUserNotifyIMEStatus(HWND hwnd
, BOOL fOpen
, DWORD dwConversion
);
2797 NtUserNotifyProcessCreate(
2798 HANDLE NewProcessId
,
2799 HANDLE ParentThreadId
,
2805 NtUserNotifyWinEvent(
2813 NtUserOpenClipboard(
2820 POBJECT_ATTRIBUTES ObjectAttributes
,
2822 ACCESS_MASK dwDesiredAccess
);
2826 NtUserOpenInputDesktop(
2829 ACCESS_MASK dwDesiredAccess
);
2833 NtUserOpenWindowStation(
2834 POBJECT_ATTRIBUTES ObjectAttributes
,
2835 ACCESS_MASK dwDesiredAccess
);
2848 ULONG right
, // width, // Scale the edge thickness, offset?
2850 BOOL bActive
); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground.
2871 NtUserPostThreadMessage(
2886 NtUserProcessConnect(
2887 IN HANDLE ProcessHandle
,
2888 OUT PUSERCONNECT pUserConnect
,
2889 IN ULONG Size
); /* sizeof(USERCONNECT) */
2893 NtUserQueryInformationThread(
2894 IN HANDLE ThreadHandle
,
2895 IN USERTHREADINFOCLASS ThreadInformationClass
,
2896 OUT PVOID ThreadInformation
,
2897 IN ULONG ThreadInformationLength
);
2901 NtUserQueryInputContext(
2907 NtUserQuerySendMessage(
2912 NtUserQueryUserCounters(
2919 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2920 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2921 #define QUERY_WINDOW_ACTIVE 0x02
2922 #define QUERY_WINDOW_FOCUS 0x03
2923 #define QUERY_WINDOW_ISHUNG 0x04
2924 #define QUERY_WINDOW_REAL_ID 0x05
2925 #define QUERY_WINDOW_FOREGROUND 0x06
2926 #define QUERY_WINDOW_DEFAULT_IME 0x07
2927 #define QUERY_WINDOW_DEFAULT_ICONTEXT 0x08
2928 #define QUERY_WINDOW_ACTIVE_IME 0x09
2938 NtUserRealInternalGetMessage(
2948 NtUserRealChildWindowFromPoint(
2955 NtUserRealWaitMessageEx(
2963 CONST RECT
*lprcUpdate
,
2969 NtUserRegisterClassExWOW(
2971 PUNICODE_STRING pustrClassName
,
2972 PUNICODE_STRING pustrCVersion
,
2973 PCLSMENUNAME pClassMenuName
,
2980 NtUserRegisterRawInputDevices(
2981 IN PCRAWINPUTDEVICE pRawInputDevices
,
2982 IN UINT uiNumDevices
,
2987 NtUserRegisterUserApiHook(
2988 PUNICODE_STRING m_dllname1
,
2989 PUNICODE_STRING m_funname1
,
2995 NtUserRegisterHotKey(
3003 NtUserRegisterTasklist(
3008 NtUserRegisterWindowMessage(
3009 PUNICODE_STRING MessageName
);
3013 NtUserRemoteConnect(
3020 NtUserRemoteRedrawRectangle(
3028 NtUserRemoteRedrawScreen(VOID
);
3032 NtUserRemoteStopScreenUpdates(VOID
);
3042 NtUserResolveDesktop(
3043 IN HANDLE ProcessHandle
,
3044 IN PUNICODE_STRING DesktopPath
,
3046 OUT HWINSTA
* phWinSta
);
3050 NtUserResolveDesktopForWOW(
3067 CONST RECT
*lprcScroll
,
3068 CONST RECT
*lprcClip
,
3074 NtUserScrollWindowEx(
3079 const RECT
*clipRect
,
3093 NtUserSetActiveWindow(
3098 NtUserSetAppImeLevel(
3112 ULONG_PTR dwNewLong
,
3124 NtUserSetClipboardData(
3131 NtUserSetClipboardViewer(
3132 HWND hWndNewViewer
);
3136 NtUserSelectPalette(
3139 BOOL ForceBackground
);
3143 NtUserSetConsoleReserveKeys(
3154 NtUserSetCursorContents(
3156 PICONINFO IconInfo
);
3160 NtUserSetCursorIconData(
3161 _In_ HCURSOR hCursor
,
3162 _In_opt_ PUNICODE_STRING pustrModule
,
3163 _In_opt_ PUNICODE_STRING puSrcName
,
3164 _In_
const CURSORDATA
*pCursorData
);
3166 typedef struct _tagFINDEXISTINGCURICONPARAM
3171 } FINDEXISTINGCURICONPARAM
;
3175 NtUserFindExistingCursorIcon(
3176 _In_ PUNICODE_STRING pustrModule
,
3177 _In_ PUNICODE_STRING pustrRsrc
,
3178 _In_ FINDEXISTINGCURICONPARAM
*param
);
3188 NtUserSetDbgTagCount(
3208 PIMEINFOEX pImeInfoEx
);
3212 NtUserSetImeOwnerWindow(HWND hImeWnd
, HWND hwndFocus
);
3216 NtUserSetInformationProcess(
3224 NtUserSetInformationThread(
3225 IN HANDLE ThreadHandle
,
3226 IN USERTHREADINFOCLASS ThreadInformationClass
,
3227 IN PVOID ThreadInformation
,
3228 IN ULONG ThreadInformationLength
);
3232 NtUserSetInternalWindowPos(
3240 NtUserSetKeyboardState(
3245 NtUserSetLayeredWindowAttributes(
3253 NtUserSetLogonNotifyWindow(
3258 NtUserSetObjectInformation(
3261 PVOID pvInformation
,
3268 HWND hWndNewParent
);
3272 NtUserSetProcessWindowStation(
3273 HWINSTA hWindowStation
);
3289 NtUserSetScrollInfo(
3297 NtUserSetShellWindowEx(
3299 HWND hwndShellListView
);
3305 IN CONST INT
*lpaElements
,
3306 IN CONST COLORREF
*lpaRgbValues
,
3311 NtUserSetSystemCursor(
3317 NtUserSetThreadDesktop(
3322 NtUserSetThreadState(
3328 NtUserSetSystemTimer(
3332 TIMERPROC lpTimerFunc
);
3336 NtUserSetThreadLayoutHandles(HKL hNewKL
, HKL hOldKL
);
3344 TIMERPROC lpTimerFunc
);
3348 NtUserSetWindowFNID(
3354 NtUserSetWindowLong(
3363 NtUserSetWindowLongPtr(
3372 NtUserSetWindowPlacement(
3374 WINDOWPLACEMENT
*lpwndpl
);
3380 HWND hWndInsertAfter
,
3396 NtUserSetWindowsHookAW(
3403 NtUserSetWindowsHookEx(
3405 PUNICODE_STRING ModuleName
,
3413 NtUserSetWindowStationUser(
3414 IN HWINSTA hWindowStation
,
3416 IN PSID psid OPTIONAL
,
3421 NtUserSetWindowWord(
3428 NtUserSetWinEventHook(
3431 HMODULE hmodWinEventProc
,
3432 PUNICODE_STRING puString
,
3433 WINEVENTPROC lpfnWinEventProc
,
3450 NtUserShowScrollBar(
3463 NtUserShowWindowAsync(
3469 NtUserSoundSentry(VOID
);
3473 NtUserSwitchDesktop(
3478 NtUserSystemParametersInfo(
3486 NtUserTestForInteractiveUser(
3502 NtUserTrackMouseEvent(
3503 LPTRACKMOUSEEVENT lpEventTrack
);
3507 NtUserTranslateAccelerator(
3514 NtUserTranslateMessage(
3520 NtUserUnhookWindowsHookEx(
3525 NtUserUnhookWinEvent(
3526 HWINEVENTHOOK hWinEventHook
);
3530 NtUserUnloadKeyboardLayout(
3535 NtUserUnlockWindowStation(
3536 HWINSTA hWindowStation
);
3540 NtUserUnregisterClass(
3541 PUNICODE_STRING ClassNameOrAtom
,
3542 HINSTANCE hInstance
,
3543 PCLSMENUNAME pClassMenuName
);
3547 NtUserUnregisterHotKey(
3553 NtUserUnregisterUserApiHook(VOID
);
3557 NtUserUpdateInputContext(
3564 NtUserUpdateInstance(
3571 NtUserUpdateLayeredWindow(
3579 BLENDFUNCTION
*pblend
,
3585 NtUserUpdatePerUserSystemParameters(
3591 NtUserUserHandleGrantAccess(
3592 IN HANDLE hUserHandle
,
3598 NtUserValidateHandleSecure(
3605 CONST RECT
*lpRect
);
3609 NtUserValidateTimerCallback(
3621 NtUserWaitForInputIdle(
3623 IN DWORD dwMilliseconds
,
3624 IN BOOL bSharedWow
); /* Always FALSE */
3628 NtUserWaitForMsgAndEvent(
3633 NtUserWaitMessage(VOID
);
3637 NtUserWin32PoolAllocationStats(
3647 NtUserWindowFromPoint(
3653 NtUserYieldTask(VOID
);
3656 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3659 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3660 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3661 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3662 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3663 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3664 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3666 #define MSQ_STATE_CAPTURE 0x1
3667 #define MSQ_STATE_ACTIVE 0x2
3668 #define MSQ_STATE_FOCUS 0x3
3669 #define MSQ_STATE_MENUOWNER 0x4
3670 #define MSQ_STATE_MOVESIZE 0x5
3671 #define MSQ_STATE_CARET 0x6
3673 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3674 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3678 NtUserGetMonitorInfo(
3679 IN HMONITOR hMonitor
,
3680 OUT LPMONITORINFO pMonitorInfo
);
3682 /* Should be done in usermode */
3686 NtUserMonitorFromPoint(
3692 NtUserMonitorFromRect(
3698 NtUserMonitorFromWindow(
3702 typedef struct _SETSCROLLBARINFO
3706 DWORD rgstate
[CCHILDREN_SCROLLBAR
+ 1];
3707 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3711 NtUserSetScrollBarInfo(
3714 SETSCROLLBARINFO
*info
);
3716 #endif /* __WIN32K_NTUSER_H */