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 _PROCDESKHEAD
194 struct _DESKTOP
*rpdesk
;
196 } PROCDESKHEAD
, *PPROCDESKHEAD
;
198 typedef struct _PROCMARKHEAD
202 struct _PROCESSINFO
*ppi
;
203 } PROCMARKHEAD
, *PPROCMARKHEAD
;
205 #define UserHMGetHandle(obj) ((obj)->head.h)
207 /* Window Client Information structure */
210 #define WEF_SETBYWNDPTI 0x0001
212 typedef struct tagHOOK
215 struct tagHOOK
*phkNext
; /* This is for user space. */
216 int HookId
; /* Hook table index */
218 ULONG flags
; /* Some internal flags */
220 struct _THREADINFO
*ptiHooked
;
221 struct _DESKTOP
*rpdesk
;
223 LIST_ENTRY Chain
; /* Hook chain entry */
224 HOOKPROC Proc
; /* Hook function */
225 BOOLEAN Ansi
; /* Is it an Ansi hook? */
226 UNICODE_STRING ModuleName
; /* Module name for global hooks */
229 typedef struct tagCLIPBOARDDATA
234 } CLIPBOARDDATA
, *PCLIPBOARDDATA
;
236 /* THREADINFO Flags */
237 #define TIF_INCLEANUP 0x00000001
238 #define TIF_16BIT 0x00000002
239 #define TIF_SYSTEMTHREAD 0x00000004
240 #define TIF_CSRSSTHREAD 0x00000008
241 #define TIF_TRACKRECTVISIBLE 0x00000010
242 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
243 #define TIF_DONTATTACHQUEUE 0x00000040
244 #define TIF_DONTJOURNALATTACH 0x00000080
245 #define TIF_WOW64 0x00000100
246 #define TIF_INACTIVATEAPPMSG 0x00000200
247 #define TIF_SPINNING 0x00000400
248 #define TIF_PALETTEAWARE 0x00000800
249 #define TIF_SHAREDWOW 0x00001000
250 #define TIF_FIRSTIDLE 0x00002000
251 #define TIF_WAITFORINPUTIDLE 0x00004000
252 #define TIF_MOVESIZETRACKING 0x00008000
253 #define TIF_VDMAPP 0x00010000
254 #define TIF_DOSEMULATOR 0x00020000
255 #define TIF_GLOBALHOOKER 0x00040000
256 #define TIF_DELAYEDEVENT 0x00080000
257 #define TIF_MSGPOSCHANGED 0x00100000
258 #define TIF_SHUTDOWNCOMPLETE 0x00200000
259 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
260 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
261 #define TIF_GUITHREADINITIALIZED 0x02000000
262 #define TIF_DISABLEIME 0x04000000
263 #define TIF_INGETTEXTLENGTH 0x08000000
264 #define TIF_ANSILENGTH 0x10000000
265 #define TIF_DISABLEHOOKS 0x20000000
267 typedef struct _CALLBACKWND
272 } CALLBACKWND
, *PCALLBACKWND
;
274 #define CI_TRANSACTION 0x00000001
275 #define CI_QUEUEMSG 0x00000002
276 #define CI_WOW 0x00000004
277 #define CI_INITTHREAD 0x00000008
278 #define CI_CURTHPRHOOK 0x00000010
279 #define CI_CLASSESREGISTERED 0x00000020
280 #define CI_IMMACTIVATE 0x00000040
281 #define CI_TFSDISABLED 0x00000400
283 typedef struct _CLIENTINFO
289 DWORD dwCompatFlags2
;
290 DWORD dwTIFlags
; /* ThreadInfo TIF_Xxx flags for User space. */
291 PDESKTOPINFO pDeskInfo
;
292 ULONG_PTR ulClientDelta
;
295 CALLBACKWND CallbackWnd
;
297 INT cInDDEMLCallback
;
298 PCLIENTTHREADINFO pClientThreadInfo
;
299 ULONG_PTR dwHookData
;
302 DWORD dwAsyncKeyCache
;
303 BYTE afAsyncKeyState
[8];
304 BYTE afAsyncKeyStateRecentDow
[8];
309 LPDWORD lpdwRegisteredClasses
;
310 ULONG Win32ClientInfo3
[26];
311 /* It's just a pointer reference not to be used w the structure in user space. */
312 struct _PROCESSINFO
*ppi
;
313 } CLIENTINFO
, *PCLIENTINFO
;
315 /* Make sure it fits into the TEB */
316 C_ASSERT(sizeof(CLIENTINFO
) <= sizeof(((PTEB
)0)->Win32ClientInfo
));
318 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
320 typedef struct tagDDEPACK
324 } DDEPACK
, *PDDEPACK
;
326 #define HRGN_NULL ((HRGN)0) /* NULL empty region */
327 #define HRGN_WINDOW ((HRGN)1) /* region from window rcWindow */
328 #define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */
330 /* Menu Item fType. */
331 #define MFT_RTOL 0x6000
333 /* Menu Item fState. */
334 #define MFS_HBMMENUBMP 0x20000000
336 typedef struct tagITEM
341 struct tagMENU
*spSubMenu
; /* Pop-up menu. */
343 HANDLE hbmpUnchecked
;
344 USHORT
*Xlpstr
; /* Item text pointer. */
346 DWORD_PTR dwItemData
;
347 ULONG xItem
; /* Item position. left */
348 ULONG yItem
; /* " top */
349 ULONG cxItem
; /* Item Size Width */
350 ULONG cyItem
; /* " Height */
351 ULONG dxTab
; /* X position of text after Tab */
352 ULONG ulX
; /* underline.. start position */
353 ULONG ulWidth
; /* underline.. width */
354 HBITMAP hbmp
; /* bitmap */
355 INT cxBmp
; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
356 INT cyBmp
; /* Height " */
358 UNICODE_STRING lpstr
;
361 typedef struct tagMENULIST
363 struct tagMENULIST
*pNext
;
364 struct tagMENU
*pMenu
;
365 } MENULIST
, *PMENULIST
;
367 /* Menu fFlags, upper byte is MNS_X style flags. */
368 #define MNF_POPUP 0x0001
369 #define MNF_UNDERLINE 0x0004
370 #define MNF_INACTIVE 0x0010
371 #define MNF_RTOL 0x0020
372 #define MNF_DESKTOPMN 0x0040
373 #define MNF_SYSDESKMN 0x0080
374 #define MNF_SYSSUBMENU 0x0100
376 #define MNF_SYSMENU 0x0200
378 /* (other FocusedItem values give the position of the focused item) */
379 #define NO_SELECTED_ITEM 0xffff
381 typedef struct tagMENU
384 ULONG fFlags
; /* [Style flags | Menu flags] */
385 INT iItem
; /* nPos of selected item, if -1 not selected. AKA focused item */
386 UINT cAlloced
; /* Number of allocated items. Inc's of 8 */
387 UINT cItems
; /* Number of items in the menu */
388 ULONG cxMenu
; /* Width of the whole menu */
389 ULONG cyMenu
; /* Height of the whole menu */
390 ULONG cxTextAlign
; /* Offset of text when items have both bitmaps and text */
391 struct _WND
*spwndNotify
; /* window receiving the messages for ownerdraw */
392 PITEM rgItems
; /* Array of menu items */
393 struct tagMENULIST
*pParentMenus
; /* If this is SubMenu, list of parents. */
394 DWORD dwContextHelpId
;
395 ULONG cyMax
; /* max height of the whole menu, 0 is screen height */
396 DWORD_PTR dwMenuData
; /* application defined value */
397 HBRUSH hbrBack
; /* brush for menu background */
398 INT iTop
; /* Current scroll position Top */
399 INT iMaxTop
; /* Current scroll position Max Top */
400 DWORD dwArrowsOn
:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
402 LIST_ENTRY ListEntry
;
403 HWND hWnd
; /* Window containing the menu, use POPUPMENU */
407 typedef struct tagPOPUPMENU
412 ULONG fIsTrackPopup
:1;
413 ULONG fDroppedLeft
:1;
414 ULONG fHierarchyDropped
:1;
415 ULONG fRightButton
:1;
417 ULONG fSynchronous
:1;
419 ULONG fDropNextPopup
:1;
421 ULONG fAboutToHide
:1;
425 ULONG fDelayedFree
:1;
426 ULONG fFlushDelayedFree
:1;
429 ULONG fTrackMouseEvent
:1;
432 // ULONG fDesktopMenu:1;
434 ULONG fUseMonitorRect
:1;
435 struct _WND
*spwndNotify
;
436 struct _WND
*spwndPopupMenu
;
437 struct _WND
*spwndNextPopup
;
438 struct _WND
*spwndPrevPopup
;
440 PMENU spmenuAlternate
;
441 struct _WND
*spwndActivePopup
;
442 struct tagPOPUPMENU
*ppopupmenuRoot
;
443 struct tagPOPUPMENU
*ppmDelayedFree
;
444 UINT posSelectedItem
;
446 } POPUPMENU
, *PPOPUPMENU
;
448 typedef struct _REGISTER_SYSCLASS
450 /* This is a reactos specific class used to initialize the
451 system window classes during user32 initialization */
460 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
462 typedef struct _CLSMENUNAME
464 LPSTR pszClientAnsiMenuName
;
465 LPWSTR pwszClientUnicodeMenuName
;
466 PUNICODE_STRING pusMenuName
;
467 } CLSMENUNAME
, *PCLSMENUNAME
;
469 typedef struct tagSBDATA
477 typedef struct tagSBINFO
484 typedef struct tagSBCALC
506 UserGetCPDA2U
= 0x01, /* " Unicode " */
507 UserGetCPDU2A
= 0X02, /* " Ansi " */
508 UserGetCPDClass
= 0X10,
509 UserGetCPDWindow
= 0X20,
510 UserGetCPDDialog
= 0X40,
511 UserGetCPDWndtoCls
= 0X80
514 typedef struct _CALLPROCDATA
517 struct _CALLPROCDATA
*spcpdNext
;
518 WNDPROC pfnClientPrevious
;
520 } CALLPROCDATA
, *PCALLPROCDATA
;
522 #define CSF_SERVERSIDEPROC 0x0001
523 #define CSF_ANSIPROC 0x0002
524 #define CSF_WOWDEFERDESTROY 0x0004
525 #define CSF_SYSTEMCLASS 0x0008
526 #define CSF_WOWCLASS 0x0010
527 #define CSF_WOWEXTRA 0x0020
528 #define CSF_CACHEDSMICON 0x0040
529 #define CSF_WIN40COMPAT 0x0080
533 struct _CLS
*pclsNext
;
534 RTL_ATOM atomClassName
;
535 ATOM atomNVClassName
;
537 struct _DESKTOP
*rpdeskParent
;
540 PSTR lpszClientAnsiMenuName
; /* For client use */
541 PWSTR lpszClientUnicodeMenuName
; /* " " " */
542 PCALLPROCDATA spcpdFirst
;
543 struct _CLS
*pclsBase
;
544 struct _CLS
*pclsClone
;
545 ULONG cWndReferenceCount
;
551 struct _CURICON_OBJECT
*spicn
;
552 struct _CURICON_OBJECT
*spcur
;
553 HBRUSH hbrBackground
;
554 PWSTR lpszMenuName
; /* kernel use */
555 PSTR lpszAnsiClassName
; /* " */
556 struct _CURICON_OBJECT
*spicnSm
;
558 UINT Unicode
:1; // !CSF_ANSIPROC
559 UINT Global
:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
560 UINT MenuNameIsString
:1;
564 typedef struct _SBINFOEX
566 SCROLLBARINFO ScrollBarInfo
;
567 SCROLLINFO ScrollInfo
;
568 } SBINFOEX
, *PSBINFOEX
;
570 /* State Flags !Not Implemented! */
571 #define WNDS_HASMENU 0X00000001
572 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
573 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
574 #define WNDS_HASCAPTION 0X00000008
575 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
576 #define WNDS_MSGBOX 0X00000020
577 #define WNDS_ACTIVEFRAME 0X00000040
578 #define WNDS_HASSPB 0X00000080
579 #define WNDS_NONCPAINT 0X00000100
580 #define WNDS_SENDERASEBACKGROUND 0X00000200
581 #define WNDS_ERASEBACKGROUND 0X00000400
582 #define WNDS_SENDNCPAINT 0X00000800
583 #define WNDS_INTERNALPAINT 0X00001000
584 #define WNDS_UPDATEDIRTY 0X00002000
585 #define WNDS_HIDDENPOPUP 0X00004000
586 #define WNDS_FORCEMENUDRAW 0X00008000
587 #define WNDS_DIALOGWINDOW 0X00010000
588 #define WNDS_HASCREATESTRUCTNAME 0X00020000
589 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */
590 #define WNDS_ANSIWINDOWPROC 0x00080000
591 #define WNDS_BEINGACTIVATED 0x00100000
592 #define WNDS_HASPALETTE 0x00200000
593 #define WNDS_PAINTNOTPROCESSED 0x00400000
594 #define WNDS_SYNCPAINTPENDING 0x00800000
595 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
596 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000
597 #define WNDS_TOGGLETOPMOST 0x04000000
598 #define WNDS_REDRAWIFHUNG 0x08000000
599 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
600 #define WNDS_ANSICREATOR 0x20000000
601 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
602 #define WNDS_DESTROYED 0x80000000
604 #define WNDSACTIVEFRAME 0x00000006
606 /* State2 Flags !Not Implemented! */
607 #define WNDS2_WMPAINTSENT 0X00000001
608 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
609 #define WNDS2_STARTPAINT 0X00000004
610 #define WNDS2_OLDUI 0X00000008
611 #define WNDS2_HASCLIENTEDGE 0X00000010
612 #define WNDS2_BOTTOMMOST 0X00000020
613 #define WNDS2_FULLSCREEN 0X00000040
614 #define WNDS2_INDESTROY 0X00000080
615 #define WNDS2_WIN31COMPAT 0X00000100
616 #define WNDS2_WIN40COMPAT 0X00000200
617 #define WNDS2_WIN50COMPAT 0X00000400
618 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
619 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
620 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
621 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
622 #define WNDS2_HELPBUTTONDOWN 0X00008000
623 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
624 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
625 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
626 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
627 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
628 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
629 #define WNDS2_FORCENCPAINT 0X00400000
630 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
631 #define WNDS2_FULLSCREENMODE 0X01000000
632 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
633 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
634 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
635 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
636 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
639 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
640 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
641 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
642 #define WS_EX2_LINKED 0X00000008
643 #define WS_EX2_LAYEREDFORDWM 0X00000010
644 #define WS_EX2_LAYEREDLIMBO 0X00000020
645 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
646 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
647 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
648 #define WS_EX2_HASOVERLAY 0X00000200
649 #define WS_EX2_CONSOLEWINDOW 0X00000400
650 #define WS_EX2_CHILDNOACTIVATE 0X00000800
652 #define WPF_MININIT 0x0008
653 #define WPF_MAXINIT 0x0010
661 /* These fields should be moved in the WW at some point. */
662 /* Plese do not change them to keep the same layout with WW. */
665 /* Extended style. */
669 /* Handle of the module that created the window. */
673 struct _WND
*spwndNext
;
674 struct _WND
*spwndPrev
;
675 struct _WND
*spwndParent
;
676 struct _WND
*spwndChild
;
677 struct _WND
*spwndOwner
;
681 /* Pointer to the window class. */
684 /* Property list head.*/
685 LIST_ENTRY PropListHead
;
689 /* system menu handle. */
692 /* Window menu handle or window id */
693 UINT_PTR IDMenu
; // Use spmenu
698 LARGE_UNICODE_STRING strName
;
699 /* Size of the extra data associated with the window. */
701 struct _WND
*spwndLastActive
;
702 HIMC hImc
; // Input context associated with this window.
705 //PD3DMATRIX pTransForm;
706 struct _WND
*spwndClipboardListener
;
715 UINT flags
; /* WPF_ flags. */
718 UINT Unicode
:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
719 UINT InternalPosInitialized
:1;
720 UINT HideFocus
:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
721 UINT HideAccel
:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
724 PSBINFOEX pSBInfoex
; // convert to PSBINFO
725 /* Entry in the list of thread windows. */
726 LIST_ENTRY ThreadListEntry
;
731 #define PWND_BOTTOM ((PWND)1)
733 typedef struct _SBWND
741 typedef struct _MDIWND
748 #define GWLP_MDIWND 4
750 typedef struct _MENUWND
753 PPOPUPMENU ppopupmenu
;
754 } MENUWND
, *PMENUWND
;
756 typedef struct _PFNCLIENT
758 WNDPROC pfnScrollBarWndProc
;
759 WNDPROC pfnTitleWndProc
;
760 WNDPROC pfnMenuWndProc
;
761 WNDPROC pfnDesktopWndProc
;
762 WNDPROC pfnDefWindowProc
;
763 WNDPROC pfnMessageWindowProc
;
764 WNDPROC pfnSwitchWindowProc
;
765 WNDPROC pfnButtonWndProc
;
766 WNDPROC pfnComboBoxWndProc
;
767 WNDPROC pfnComboListBoxProc
;
768 WNDPROC pfnDialogWndProc
;
769 WNDPROC pfnEditWndProc
;
770 WNDPROC pfnListBoxWndProc
;
771 WNDPROC pfnMDIClientWndProc
;
772 WNDPROC pfnStaticWndProc
;
773 WNDPROC pfnImeWndProc
;
774 WNDPROC pfnGhostWndProc
;
775 WNDPROC pfnHkINLPCWPSTRUCT
;
776 WNDPROC pfnHkINLPCWPRETSTRUCT
;
777 WNDPROC pfnDispatchHook
;
778 WNDPROC pfnDispatchDefWindowProc
;
779 WNDPROC pfnDispatchMessage
;
780 WNDPROC pfnMDIActivateDlgProc
;
781 } PFNCLIENT
, *PPFNCLIENT
;
784 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
785 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
789 (CALLBACK
*WNDPROC_EX
)(
796 typedef struct _PFNCLIENTWORKER
798 WNDPROC_EX pfnButtonWndProc
;
799 WNDPROC_EX pfnComboBoxWndProc
;
800 WNDPROC_EX pfnComboListBoxProc
;
801 WNDPROC_EX pfnDialogWndProc
;
802 WNDPROC_EX pfnEditWndProc
;
803 WNDPROC_EX pfnListBoxWndProc
;
804 WNDPROC_EX pfnMDIClientWndProc
;
805 WNDPROC_EX pfnStaticWndProc
;
806 WNDPROC_EX pfnImeWndProc
;
807 WNDPROC_EX pfnGhostWndProc
;
808 WNDPROC_EX pfnCtfHookProc
;
809 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
819 /* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
820 #define FNID_FIRST 0x029A
821 #define FNID_SCROLLBAR 0x029A
822 #define FNID_ICONTITLE 0x029B
823 #define FNID_MENU 0x029C
824 #define FNID_DESKTOP 0x029D
825 #define FNID_DEFWINDOWPROC 0x029E
826 #define FNID_MESSAGEWND 0x029F
827 #define FNID_SWITCH 0x02A0
828 #define FNID_BUTTON 0x02A1
829 #define FNID_COMBOBOX 0x02A2
830 #define FNID_COMBOLBOX 0x02A3
831 #define FNID_DIALOG 0x02A4
832 #define FNID_EDIT 0x02A5
833 #define FNID_LISTBOX 0x02A6
834 #define FNID_MDICLIENT 0x02A7
835 #define FNID_STATIC 0x02A8
836 #define FNID_IME 0x02A9
837 #define FNID_GHOST 0x02AA
838 #define FNID_CALLWNDPROC 0x02AB
839 #define FNID_CALLWNDPROCRET 0x02AC
840 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
841 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
842 #define FNID_MB_DLGPROC 0x02AF
843 #define FNID_MDIACTIVATEDLGPROC 0x02B0
844 #define FNID_SENDMESSAGE 0x02B1
845 #define FNID_SENDMESSAGEFF 0x02B2
846 /* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
847 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
848 #define FNID_SENDMESSAGECALLPROC 0x02B4
849 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
850 #define FNID_TOOLTIPS 0x02B6
851 #define FNID_SENDNOTIFYMESSAGE 0x02B7
852 #define FNID_SENDMESSAGECALLBACK 0x02B8
853 #define FNID_LAST 0x02B9
855 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
856 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
858 #define FNID_DDEML 0x2000 /* Registers DDEML */
859 #define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
860 /* Seen during WM_CREATE on error exit too. */
861 #define FNID_FREED 0x8000 /* Window being Freed... */
863 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
865 #define GETPFNCLIENTA(fnid) \
866 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
867 #define GETPFNCLIENTW(fnid) \
868 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
870 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
872 /* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
873 #define ICLS_BUTTON 0
875 #define ICLS_STATIC 2
876 #define ICLS_LISTBOX 3
877 #define ICLS_SCROLLBAR 4
878 #define ICLS_COMBOBOX 5
879 #define ICLS_MDICLIENT 6
880 #define ICLS_COMBOLBOX 7
881 #define ICLS_DDEMLEVENT 8
882 #define ICLS_DDEMLMOTHER 9
883 #define ICLS_DDEML16BIT 10
884 #define ICLS_DDEMLCLIENTA 11
885 #define ICLS_DDEMLCLIENTW 12
886 #define ICLS_DDEMLSERVERA 13
887 #define ICLS_DDEMLSERVERW 14
889 #define ICLS_GHOST 16
890 #define ICLS_DESKTOP 17
891 #define ICLS_DIALOG 18
893 #define ICLS_SWITCH 20
894 #define ICLS_ICONTITLE 21
895 #define ICLS_TOOLTIPS 22
896 #if (_WIN32_WINNT <= 0x0501)
897 #define ICLS_UNKNOWN 22
898 #define ICLS_NOTUSED 23
900 #define ICLS_SYSSHADOW 23
901 #define ICLS_HWNDMESSAGE 24
902 #define ICLS_NOTUSED 25
906 #define COLOR_LAST COLOR_MENUBAR
907 #define MAX_MB_STRINGS 11
909 #define SRVINFO_DBCSENABLED 0x0002
910 #define SRVINFO_IMM32 0x0004
911 #define SRVINFO_APIHOOK 0x0010
912 #define SRVINFO_CICERO_ENABLED 0x0020
913 #define SRVINFO_KBDPREF 0x0080
915 #define NUM_SYSCOLORS 31
917 typedef struct tagOEMBITMAPINFO
923 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
925 typedef enum _OBI_TYPES
936 typedef struct tagMBSTRING
941 } MBSTRING
, *PMBSTRING
;
943 typedef struct tagDPISERVERINFO
945 INT gclBorder
; /* 000 */
946 HFONT hCaptionFont
; /* 004 */
947 HFONT hMsgFont
; /* 008 */
948 INT cxMsgFontChar
; /* 00C */
949 INT cyMsgFontChar
; /* 010 */
950 UINT wMaxBtnSize
; /* 014 */
951 } DPISERVERINFO
, *PDPISERVERINFO
;
954 #define PUSIF_PALETTEDISPLAY 0x01
955 #define PUSIF_SNAPTO 0x02
956 #define PUSIF_COMBOBOXANIMATION 0x04
957 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
958 #define PUSIF_KEYBOARDCUES 0x20
960 typedef struct _PERUSERSERVERINFO
962 INT aiSysMet
[SM_CMETRICS
];
963 ULONG argbSystemUnmatched
[NUM_SYSCOLORS
];
964 COLORREF argbSystem
[NUM_SYSCOLORS
];
965 HBRUSH ahbrSystem
[NUM_SYSCOLORS
];
969 DWORD dwLastRITEventTickCount
;
974 UINT ucWheelScrollLines
;
975 UINT ucWheelScrollChars
;
976 INT wMaxLeftOverlapChars
;
977 INT wMaxRightOverlapChars
;
980 TEXTMETRICW tmSysFont
;
981 DPISERVERINFO dpiSystem
;
982 HICON hIconSmWindows
;
985 DWORD dwAsyncKeyCache
;
987 OEMBITMAPINFO oembmi
[OBI_CTYPES
];
996 DWORD dwLastSystemRITEventTickCountUpdate
;
997 ULONG adwDBGTAGFlags
[35];
1000 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
1002 typedef struct tagSERVERINFO
1005 ULONG_PTR cHandleEntries
;
1006 PFN_FNID mpFnidPfn
[FNID_NUM
];
1007 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
1008 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
1009 PFNCLIENT apfnClientA
;
1010 PFNCLIENT apfnClientW
;
1011 PFNCLIENTWORKER apfnClientWorker
;
1012 ULONG cbHandleTable
;
1013 ATOM atomSysClass
[ICLS_NOTUSED
+1];
1014 DWORD dwDefaultHeapBase
;
1015 DWORD dwDefaultHeapSize
;
1017 MBSTRING MBStrings
[MAX_MB_STRINGS
];
1018 ATOM atomIconSmProp
;
1020 ATOM atomContextHelpIdProp
;
1021 ATOM atomFrostedWindowProp
;
1022 CHAR acOemToAnsi
[256];
1023 CHAR acAnsiToOem
[256];
1024 DWORD dwInstalledEventHooks
;
1026 } SERVERINFO
, *PSERVERINFO
;
1029 C_ASSERT(sizeof(SERVERINFO
) <= PAGE_SIZE
);
1033 /* Server event activity bits. */
1034 #define SRV_EVENT_MENU 0x0001
1035 #define SRV_EVENT_END_APPLICATION 0x0002
1036 #define SRV_EVENT_RUNNING 0x0004
1037 #define SRV_EVENT_NAMECHANGE 0x0008
1038 #define SRV_EVENT_VALUECHANGE 0x0010
1039 #define SRV_EVENT_STATECHANGE 0x0020
1040 #define SRV_EVENT_LOCATIONCHANGE 0x0040
1041 #define SRV_EVENT_CREATE 0x8000
1043 typedef struct _PROPLISTITEM
1047 } PROPLISTITEM
, *PPROPLISTITEM
;
1049 #define PROPERTY_FLAG_SYSTEM 1
1051 typedef struct _PROPERTY
1053 LIST_ENTRY PropListEntry
;
1057 } PROPERTY
, *PPROPERTY
;
1059 typedef struct _BROADCASTPARM
1066 } BROADCASTPARM
, *PBROADCASTPARM
;
1068 struct _THREADINFO
*GetW32ThreadInfo(VOID
);
1069 struct _PROCESSINFO
*GetW32ProcessInfo(VOID
);
1071 typedef struct _WNDMSG
1077 typedef struct _SHAREDINFO
1079 PSERVERINFO psi
; /* global Server Info */
1080 PVOID aheList
; /* Handle Entry List */
1081 PVOID pDispInfo
; /* global PDISPLAYINFO pointer */
1082 ULONG_PTR ulSharedDelta
; /* Heap delta */
1083 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
1084 WNDMSG DefWindowMsgs
;
1085 WNDMSG DefWindowSpecMsgs
;
1086 } SHAREDINFO
, *PSHAREDINFO
;
1088 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1089 typedef struct _USERCONNECT
1092 ULONG ulCurrentVersion
;
1093 DWORD dwDispatchCount
;
1094 SHAREDINFO siClient
;
1095 } USERCONNECT
, *PUSERCONNECT
;
1097 /* WinNT 5.0 compatible user32 / win32k */
1098 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1100 #if defined(_M_IX86)
1101 C_ASSERT(sizeof(USERCONNECT
) == 0x124);
1104 typedef struct tagGETCLIPBDATA
1113 } GETCLIPBDATA
, *PGETCLIPBDATA
;
1115 typedef struct tagSETCLIPBDATA
1118 BOOL fIncSerialNumber
;
1119 } SETCLIPBDATA
, *PSETCLIPBDATA
;
1121 /* Used with NtUserSetCursorIconData, last parameter. */
1122 typedef struct tagCURSORDATA
1128 ULONG CURSORF_flags
;
1135 HBITMAP hbmUserAlpha
; /* Could be in W7U, not in W2k */
1141 struct tagCURSORDATA
*aspcur
;
1145 } CURSORDATA
, *PCURSORDATA
; /* !dso CURSORDATA */
1147 /* CURSORF_flags: */
1148 #define CURSORF_FROMRESOURCE 0x0001
1149 #define CURSORF_GLOBAL 0x0002
1150 #define CURSORF_LRSHARED 0x0004
1151 #define CURSORF_ACON 0x0008
1152 #define CURSORF_WOWCLEANUP 0x0010
1153 #define CURSORF_ACONFRAME 0x0040
1154 #define CURSORF_SECRET 0x0080
1155 #define CURSORF_LINKED 0x0100
1156 #define CURSORF_CURRENT 0x0200
1158 typedef struct tagIMEINFOEX
1162 WCHAR wszUIClass
[16];
1163 ULONG fdwInitConvMode
;
1166 DWORD dwProdVersion
;
1167 DWORD dwImeWinVersion
;
1168 WCHAR wszImeDescription
[50];
1169 WCHAR wszImeFile
[80];
1172 INT fSysWow64Only
:1;
1175 } IMEINFOEX
, *PIMEINFOEX
;
1177 typedef enum IMEINFOEXCLASS
1179 ImeInfoExKeyboardLayout
,
1181 ImeInfoExImeFileName
1184 #define IS_IME_HKL(hkl) ((((ULONG_PTR)(hkl)) & 0xF0000000) == 0xE0000000)
1186 typedef struct tagIMEUI
1199 UINT fChildThreadDef
:1;
1200 UINT fCtrlShowStatus
:1;
1201 UINT fFreeActiveEvent
:1;
1205 /* Window Extra data container. */
1206 typedef struct _IMEWND
1212 typedef struct tagTRANSMSG
1217 } TRANSMSG
, *PTRANSMSG
, *LPTRANSMSG
;
1219 typedef struct tagTRANSMSGLIST
1222 TRANSMSG TransMsg
[ANYSIZE_ARRAY
];
1223 } TRANSMSGLIST
, *PTRANSMSGLIST
, *LPTRANSMSGLIST
;
1225 #define DEFINE_IME_ENTRY(type, name, params, extended) typedef type (WINAPI *FN_##name) params;
1226 #include "imetable.h"
1227 #undef DEFINE_IME_ENTRY
1229 typedef struct IMEDPI
1231 struct IMEDPI
*pNext
;
1236 WCHAR szUIClass
[16];
1239 #define DEFINE_IME_ENTRY(type, name, params, extended) FN_##name name;
1240 #include "imetable.h"
1241 #undef DEFINE_IME_ENTRY
1245 C_ASSERT(offsetof(IMEDPI
, pNext
) == 0x0);
1246 C_ASSERT(offsetof(IMEDPI
, hInst
) == 0x4);
1247 C_ASSERT(offsetof(IMEDPI
, hKL
) == 0x8);
1248 C_ASSERT(offsetof(IMEDPI
, ImeInfo
) == 0xc);
1249 C_ASSERT(offsetof(IMEDPI
, uCodePage
) == 0x28);
1250 C_ASSERT(offsetof(IMEDPI
, szUIClass
) == 0x2c);
1251 C_ASSERT(offsetof(IMEDPI
, cLockObj
) == 0x4c);
1252 C_ASSERT(offsetof(IMEDPI
, dwFlags
) == 0x50);
1253 C_ASSERT(offsetof(IMEDPI
, ImeInquire
) == 0x54);
1254 C_ASSERT(offsetof(IMEDPI
, ImeConversionList
) == 0x58);
1255 C_ASSERT(offsetof(IMEDPI
, ImeRegisterWord
) == 0x5c);
1256 C_ASSERT(offsetof(IMEDPI
, ImeUnregisterWord
) == 0x60);
1257 C_ASSERT(offsetof(IMEDPI
, ImeGetRegisterWordStyle
) == 0x64);
1258 C_ASSERT(offsetof(IMEDPI
, ImeEnumRegisterWord
) == 0x68);
1259 C_ASSERT(offsetof(IMEDPI
, ImeConfigure
) == 0x6c);
1260 C_ASSERT(offsetof(IMEDPI
, ImeDestroy
) == 0x70);
1261 C_ASSERT(offsetof(IMEDPI
, ImeEscape
) == 0x74);
1262 C_ASSERT(offsetof(IMEDPI
, ImeSelect
) == 0x78);
1263 C_ASSERT(offsetof(IMEDPI
, ImeProcessKey
) == 0x7c);
1264 C_ASSERT(offsetof(IMEDPI
, ImeSetActiveContext
) == 0x80);
1265 C_ASSERT(offsetof(IMEDPI
, ImeToAsciiEx
) == 0x84);
1266 C_ASSERT(offsetof(IMEDPI
, NotifyIME
) == 0x88);
1267 C_ASSERT(offsetof(IMEDPI
, ImeSetCompositionString
) == 0x8c);
1268 C_ASSERT(offsetof(IMEDPI
, ImeGetImeMenuItems
) == 0x90);
1269 C_ASSERT(offsetof(IMEDPI
, CtfImeInquireExW
) == 0x94);
1270 C_ASSERT(offsetof(IMEDPI
, CtfImeSelectEx
) == 0x98);
1271 C_ASSERT(offsetof(IMEDPI
, CtfImeEscapeEx
) == 0x9c);
1272 C_ASSERT(offsetof(IMEDPI
, CtfImeGetGuidAtom
) == 0xa0);
1273 C_ASSERT(offsetof(IMEDPI
, CtfImeIsGuidMapEnable
) == 0xa4);
1274 C_ASSERT(sizeof(IMEDPI
) == 0xa8);
1277 /* flags for IMEDPI.dwFlags */
1278 #define IMEDPI_FLAG_UNKNOWN 0x1
1279 #define IMEDPI_FLAG_LOCKED 0x2
1282 typedef struct tagCLIENTIMC
1288 RTL_CRITICAL_SECTION cs
;
1292 } CLIENTIMC
, *PCLIENTIMC
;
1295 C_ASSERT(offsetof(CLIENTIMC
, hImc
) == 0x0);
1296 C_ASSERT(offsetof(CLIENTIMC
, cLockObj
) == 0x4);
1297 C_ASSERT(offsetof(CLIENTIMC
, dwFlags
) == 0x8);
1298 C_ASSERT(offsetof(CLIENTIMC
, cs
) == 0x10);
1299 C_ASSERT(offsetof(CLIENTIMC
, hKL
) == 0x2c);
1300 C_ASSERT(sizeof(CLIENTIMC
) == 0x34);
1303 /* flags for CLIENTIMC */
1304 #define CLIENTIMC_WIDE 0x1
1305 #define CLIENTIMC_UNKNOWN1 0x40
1306 #define CLIENTIMC_UNKNOWN2 0x100
1310 NtUserAssociateInputContext(
1317 NtUserBuildHimcList(DWORD dwThreadId
, DWORD dwCount
, HIMC
*phList
, LPDWORD pdwCount
);
1330 NtUserCheckMenuItem(
1337 NtUserCtxDisplayIOCtl(
1344 NtUserDbgWin32HeapFail(
1350 NtUserDbgWin32HeapStat(
1368 NtUserDrawMenuBarTemp(
1377 NtUserEnableMenuItem(
1384 NtUserEndMenu(VOID
);
1388 NtUserGetMenuBarInfo(
1402 NtUserGetMenuItemRect(
1410 NtUserGetSystemMenu(
1416 NtUserHiliteMenuItem(
1424 NtUserMenuItemFromPoint(
1446 NtUserSetMenuContextHelpId(
1448 DWORD dwContextHelpId
);
1452 NtUserSetMenuDefaultItem(
1459 NtUserSetMenuFlagRtoL(
1464 NtUserSetSystemMenu(
1470 NtUserThunkedMenuInfo(
1476 NtUserThunkedMenuItemInfo(
1481 LPMENUITEMINFOW lpmii
,
1482 PUNICODE_STRING lpszCaption
);
1486 NtUserTrackPopupMenuEx(
1496 NtUserActivateKeyboardLayout(
1502 NtUserAlterWindowStyle(
1509 NtUserAttachThreadInput(
1511 IN DWORD idAttachTo
,
1538 NtUserBuildHwndList(
1549 NtUserBuildNameList(
1553 PULONG pRequiredSize
);
1557 NtUserBuildPropList(
1563 /* apfnSimpleCall indices from Windows XP SP 2 */
1564 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1565 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1567 enum SimpleCallRoutines
1569 NOPARAM_ROUTINE_CREATEMENU
,
1570 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1571 #if (WIN32K_VERSION >= NTDDI_VISTA)
1572 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1573 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1574 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1575 NOPARAM_ROUTINE_DESTROY_CARET
,
1577 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1578 #if (WIN32K_VERSION < NTDDI_VISTA)
1579 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1580 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1581 NOPARAM_ROUTINE_DESTROY_CARET
,
1583 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1584 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1585 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1586 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1587 #if (WIN32K_VERSION >= NTDDI_VISTA)
1588 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1590 NOPARAM_ROUTINE_GETREMOTEPROCESSID
,
1592 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1593 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1594 #if (WIN32K_VERSION >= NTDDI_VISTA)
1595 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1596 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1598 NOPARAM_ROUTINE_RELEASECAPTURE
,
1599 NOPARAM_ROUTINE_RESETDBLCLICK
,
1600 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1601 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1602 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1603 NOPARAM_ROUTINE_REMOTELOGOFF
,
1604 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1605 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1606 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1607 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1608 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1609 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1610 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1611 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1612 #if (WIN32K_VERSION >= NTDDI_VISTA)
1613 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1615 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1616 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1617 #if (WIN32K_VERSION < NTDDI_VISTA)
1618 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1620 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1621 #if (WIN32K_VERSION >= NTDDI_VISTA)
1622 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1624 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1625 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1626 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1627 #if (WIN32K_VERSION < NTDDI_VISTA)
1628 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1630 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1631 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1632 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1633 #if (WIN32K_VERSION < NTDDI_VISTA)
1634 ONEPARAM_ROUTINE_GETCURSORPOS
,
1636 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1637 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1638 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1639 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1640 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1641 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1642 #if (WIN32K_VERSION < NTDDI_VISTA)
1643 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1645 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1646 ONEPARAM_ROUTINE_LOADFONTS
,
1647 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1648 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1649 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1650 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1651 #if (WIN32K_VERSION < NTDDI_VISTA)
1652 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1654 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1655 ONEPARAM_ROUTINE_REGISTERLPK
,
1656 #if (WIN32K_VERSION >= NTDDI_VISTA)
1657 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1659 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1660 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1661 ONEPARAM_ROUTINE_RELEASEDC
,
1662 #if (WIN32K_VERSION >= NTDDI_VISTA)
1663 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1665 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1666 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1667 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1668 #if (WIN32K_VERSION < NTDDI_VISTA)
1669 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1671 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1672 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1673 #if (WIN32K_VERSION >= NTDDI_VISTA)
1674 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1676 ONEPARAM_ROUTINE_SHOWCURSOR
,
1677 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1678 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1679 X_ROUTINE_WOWMODULEUNLOAD
,
1680 #if (WIN32K_VERSION < NTDDI_VISTA)
1681 X_ROUTINE_REMOTENOTIFY
,
1683 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1684 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1685 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1686 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1687 HWND_ROUTINE_SETMSGBOX
,
1688 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1689 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1690 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1691 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1692 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1693 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1694 HWNDPARAM_ROUTINE_SETVISIBLE
,
1695 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1696 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1697 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1698 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1699 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1700 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1701 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1702 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1703 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1704 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1705 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1706 HWNDLOCK_ROUTINE_SETSYSMENU
,
1707 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1708 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1709 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1710 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1711 TWOPARAM_ROUTINE_REDRAWTITLE
,
1712 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1713 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1714 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1715 TWOPARAM_ROUTINE_VALIDATERGN
,
1716 #if (WIN32K_VERSION >= NTDDI_VISTA)
1717 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1718 TWOPARAM_ROUTINE_GETCURSORPOS
,
1720 TWOPARAM_ROUTINE_GETHDEVNAME
,
1721 TWOPARAM_ROUTINE_INITANSIOEM
,
1722 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1723 #if (WIN32K_VERSION >= NTDDI_VISTA)
1724 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1726 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1727 #if (WIN32K_VERSION >= NTDDI_VISTA)
1728 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1730 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1732 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1733 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1734 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1735 TWOPARAM_ROUTINE_SETCARETPOS
,
1736 TWOPARAM_ROUTINE_SETCURSORPOS
,
1737 #if (WIN32K_VERSION >= NTDDI_VISTA)
1738 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1740 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1741 TWOPARAM_ROUTINE_WOWCLEANUP
1764 NtUserCallHwndParam(
1771 NtUserCallHwndParamLock(
1778 NtUserCallMsgFilter(
1784 NtUserCallNextHookEx(
1810 NtUserChangeClipboardChain(
1816 NtUserChangeDisplaySettings(
1817 PUNICODE_STRING lpszDeviceName
,
1818 LPDEVMODEW lpDevMode
,
1824 NtUserCheckDesktopByThreadId(
1829 NtUserCheckWindowThreadDesktop(
1836 NtUserCheckImeHotKey(
1841 NtUserChildWindowFromPointEx(
1854 NtUserCloseClipboard(VOID
);
1863 NtUserCloseWindowStation(
1866 /* Console commands for NtUserConsoleControl */
1867 typedef enum _CONSOLECONTROL
1869 ConsoleCtrlDesktopConsoleThread
= 0,
1870 GuiConsoleWndClassAtom
= 1,
1871 ConsoleMakePalettePublic
= 5,
1872 ConsoleAcquireDisplayOwnership
,
1873 } CONSOLECONTROL
, *PCONSOLECONTROL
;
1875 typedef struct _DESKTOP_CONSOLE_THREAD
1877 HDESK DesktopHandle
;
1879 } DESKTOP_CONSOLE_THREAD
, *PDESKTOP_CONSOLE_THREAD
;
1883 NtUserConsoleControl(
1884 IN CONSOLECONTROL ConsoleCtrl
,
1885 IN PVOID ConsoleCtrlInfo
,
1886 IN ULONG ConsoleCtrlInfoLength
);
1890 NtUserConvertMemHandle(
1896 NtUserCopyAcceleratorTable(
1899 ULONG EntriesCount
);
1903 NtUserCountClipboardFormats(VOID
);
1907 NtUserCreateAcceleratorTable(
1909 ULONG EntriesCount
);
1921 NtUserCreateDesktop(
1922 POBJECT_ATTRIBUTES poa
,
1923 PUNICODE_STRING lpszDesktopDevice
,
1926 ACCESS_MASK dwDesiredAccess
);
1930 NtUserCreateInputContext(PCLIENTIMC pClientImc
);
1934 NtUserCreateLocalMemHandle(
1942 NtUserCreateWindowEx(
1944 PLARGE_STRING plstrClassName
,
1945 PLARGE_STRING plstrClsVersion
,
1946 PLARGE_STRING plstrWindowName
,
1954 HINSTANCE hInstance
,
1961 NtUserCreateWindowStation(
1962 POBJECT_ATTRIBUTES ObjectAttributes
,
1963 ACCESS_MASK dwDesiredAccess
,
1972 NtUserDdeGetQualityOfService(
1975 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1979 NtUserDdeInitialize(
1988 NtUserDdeSetQualityOfService(
1990 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1991 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1995 NtUserDeferWindowPos(
1998 HWND WndInsertAfter
,
2009 PLARGE_STRING WindowText
);
2013 NtUserDestroyAcceleratorTable(
2018 NtUserDestroyCursor(
2024 NtUserDestroyInputContext(HIMC hIMC
);
2028 NtUserDestroyWindow(
2033 NtUserDisableThreadIme(
2038 NtUserDispatchMessage(
2058 NtUserDrawAnimatedRects(
2074 NtUserDrawCaptionTemp(
2080 const PUNICODE_STRING str
,
2083 /* Used with NtUserDrawIconEx, last parameter. */
2084 typedef struct _DRAWICONEXDATA
2090 } DRAWICONEXDATA
, *PDRAWICONEXDATA
;
2102 HBRUSH hbrFlickerFreeDraw
,
2109 NtUserEmptyClipboard(VOID
);
2113 NtUserEnableScrollBar(
2120 NtUserEndDeferWindowPosEx(
2128 CONST PAINTSTRUCT
*lPs
);
2132 NtUserEnumDisplayDevices(
2133 PUNICODE_STRING lpDevice
, /* device name */
2134 DWORD iDevNum
, /* display device */
2135 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
2136 DWORD dwFlags
); /* reserved */
2141 NtUserEnumDisplayMonitors(
2144 MONITORENUMPROC lpfnEnum,
2147 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2150 NtUserEnumDisplayMonitors(
2151 OPTIONAL IN HDC hDC
,
2152 OPTIONAL IN LPCRECT pRect
,
2153 OPTIONAL OUT HMONITOR
*hMonitorList
,
2154 OPTIONAL OUT LPRECT monitorRectList
,
2155 OPTIONAL IN DWORD listSize
);
2160 NtUserEnumDisplaySettings(
2161 PUNICODE_STRING lpszDeviceName
,
2163 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
2173 NtUserExcludeUpdateRgn(
2189 HWND hwndChildAfter
,
2190 PUNICODE_STRING ucClassName
,
2191 PUNICODE_STRING ucWindowName
,
2196 NtUserFlashWindowEx(
2197 IN PFLASHWINFO pfwi
);
2201 NtUserGetAltTabInfo(
2217 NtUserGetAppImeLevel(HWND hWnd
);
2221 NtUserGetAsyncKeyState(
2224 _Success_(return != 0)
2225 _At_(pustrName
->Buffer
, _Out_z_bytecap_post_bytecount_(pustrName
->MaximumLength
, return * 2 + 2))
2230 _Inout_ PUNICODE_STRING pustrName
);
2234 NtUserGetCaretBlinkTime(VOID
);
2244 HINSTANCE hInstance
,
2245 PUNICODE_STRING ClassName
,
2247 LPWSTR
*ppszMenuName
,
2254 BOOL Real
, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2255 PUNICODE_STRING ClassName
);
2259 NtUserGetClipboardData(
2261 PGETCLIPBDATA pgcd
);
2265 NtUserGetClipboardFormatName(
2267 LPWSTR lpszFormatName
,
2272 NtUserGetClipboardOwner(VOID
);
2276 NtUserGetClipboardSequenceNumber(VOID
);
2280 NtUserGetClipboardViewer(VOID
);
2284 NtUserGetClipCursor(
2289 NtUserGetComboBoxInfo(
2291 PCOMBOBOXINFO pcbi
);
2295 NtUserGetControlBrush(
2302 NtUserGetControlColor(
2317 NtUserGetCursorFrameInfo(
2325 NtUserGetCursorInfo(
2342 NtUserGetDoubleClickTime(VOID
);
2346 NtUserGetForegroundWindow(VOID
);
2350 NtUserGetGuiResources(
2356 NtUserGetGUIThreadInfo(
2358 LPGUITHREADINFO lpgui
);
2360 _Success_(return != FALSE
)
2364 _In_ HANDLE hCurIcon
,
2365 _Out_opt_ PICONINFO IconInfo
,
2366 _Inout_opt_ PUNICODE_STRING lpInstName
,
2367 _Inout_opt_ PUNICODE_STRING lpResName
,
2368 _Out_opt_ LPDWORD pbpp
,
2369 _In_ BOOL bInternal
);
2380 NtUserGetImeHotKey(IN DWORD dwHotKey
,
2381 OUT LPUINT lpuModifiers
,
2388 PIMEINFOEX pImeInfoEx
,
2389 IMEINFOEXCLASS SearchType
);
2393 NtUserGetInternalWindowPos(
2400 NtUserGetKeyboardLayout(
2405 NtUserGetKeyboardLayoutList(
2411 NtUserGetKeyboardLayoutName(
2416 NtUserGetKeyboardState(
2421 NtUserGetKeyboardType(
2426 NtUserGetKeyNameText(
2438 NtUserGetLayeredWindowAttributes(
2446 NtUserGetListBoxInfo(
2459 NtUserGetMouseMovePointsEx(
2461 LPMOUSEMOVEPOINT lppt
,
2462 LPMOUSEMOVEPOINT lpptBuf
,
2468 NtUserGetObjectInformation(
2471 PVOID pvInformation
,
2473 PDWORD nLengthNeeded
);
2477 NtUserGetOpenClipboardWindow(VOID
);
2481 NtUserGetPriorityClipboardFormat(
2482 UINT
*paFormatPriorityList
,
2487 NtUserGetProcessWindowStation(VOID
);
2491 NtUserGetRawInputBuffer(
2498 NtUserGetRawInputData(
2499 HRAWINPUT hRawInput
,
2507 NtUserGetRawInputDeviceInfo(
2515 NtUserGetRawInputDeviceList(
2516 PRAWINPUTDEVICELIST pRawInputDeviceList
,
2517 PUINT puiNumDevices
,
2522 NtUserGetRegisteredRawInputDevices(
2523 PRAWINPUTDEVICE pRawInputDevices
,
2524 PUINT puiNumDevices
,
2529 NtUserGetScrollBarInfo(
2532 PSCROLLBARINFO psbi
);
2536 NtUserGetThreadDesktop(
2538 HDESK hConsoleDesktop
);
2540 enum ThreadStateRoutines
2542 THREADSTATE_GETTHREADINFO
,
2543 THREADSTATE_INSENDMESSAGE
,
2544 THREADSTATE_FOCUSWINDOW
,
2545 THREADSTATE_ACTIVEWINDOW
,
2546 THREADSTATE_CAPTUREWINDOW
,
2547 THREADSTATE_PROGMANWINDOW
,
2548 THREADSTATE_TASKMANWINDOW
,
2549 THREADSTATE_GETMESSAGETIME
,
2550 THREADSTATE_GETINPUTSTATE
,
2551 THREADSTATE_UPTIMELASTREAD
,
2552 THREADSTATE_FOREGROUNDTHREAD
,
2553 THREADSTATE_GETCURSOR
,
2554 THREADSTATE_GETMESSAGEEXTRAINFO
,
2555 THREADSTATE_UNKNOWN13
2560 NtUserGetThreadState(
2565 NtUserGetTitleBarInfo(
2571 NtUserGetUpdateRect(
2590 NtUserGetWindowPlacement(
2592 WINDOWPLACEMENT
*lpwndpl
);
2597 HINSTANCE hInstance
,
2598 PUNICODE_STRING ClassName
);
2602 NtUserHardErrorControl(
2609 NtUserImpersonateDdeClientWindow(
2617 HANDLE hPowerRequestEvent
,
2618 HANDLE hMediaRequestEvent
);
2622 NtUserInitializeClientPfnArrays(
2623 PPFNCLIENT pfnClientA
,
2624 PPFNCLIENT pfnClientW
,
2625 PPFNCLIENTWORKER pfnClientWorker
,
2626 HINSTANCE hmodUser
);
2646 NtUserInternalGetWindowText(
2653 NtUserInvalidateRect(
2660 NtUserInvalidateRgn(
2667 NtUserIsClipboardFormatAvailable(
2678 NtUserLoadKeyboardLayoutEx(
2681 IN PUNICODE_STRING puszKeyboardName
,
2683 IN PUNICODE_STRING puszKLID
,
2689 NtUserLockWindowStation(
2690 HWINSTA hWindowStation
);
2694 NtUserLockWindowUpdate(
2699 NtUserLockWorkStation(VOID
);
2703 NtUserMapVirtualKeyEx(
2709 typedef struct tagDOSENDMESSAGE
2715 DOSENDMESSAGE
, *PDOSENDMESSAGE
;
2724 ULONG_PTR ResultInfo
,
2725 DWORD dwType
, /* FNID_XX types */
2732 UINT cmd
, /* Wine SW_ commands */
2737 NtUserMNDragLeave(VOID
);
2747 NtUserModifyUserStartupInfoFlags(
2764 NtUserNotifyIMEStatus(
2767 DWORD dwConversion
);
2771 NtUserNotifyProcessCreate(
2772 HANDLE NewProcessId
,
2773 HANDLE ParentThreadId
,
2779 NtUserNotifyWinEvent(
2787 NtUserOpenClipboard(
2794 POBJECT_ATTRIBUTES ObjectAttributes
,
2796 ACCESS_MASK dwDesiredAccess
);
2800 NtUserOpenInputDesktop(
2803 ACCESS_MASK dwDesiredAccess
);
2807 NtUserOpenWindowStation(
2808 POBJECT_ATTRIBUTES ObjectAttributes
,
2809 ACCESS_MASK dwDesiredAccess
);
2822 ULONG right
, // width, // Scale the edge thickness, offset?
2824 BOOL bActive
); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground.
2845 NtUserPostThreadMessage(
2860 NtUserProcessConnect(
2861 IN HANDLE ProcessHandle
,
2862 OUT PUSERCONNECT pUserConnect
,
2863 IN ULONG Size
); /* sizeof(USERCONNECT) */
2867 NtUserQueryInformationThread(
2868 IN HANDLE ThreadHandle
,
2869 IN USERTHREADINFOCLASS ThreadInformationClass
,
2870 OUT PVOID ThreadInformation
,
2871 IN ULONG ThreadInformationLength
);
2875 NtUserQueryInputContext(
2881 NtUserQuerySendMessage(
2886 NtUserQueryUserCounters(
2893 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2894 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2895 #define QUERY_WINDOW_ACTIVE 0x02
2896 #define QUERY_WINDOW_FOCUS 0x03
2897 #define QUERY_WINDOW_ISHUNG 0x04
2898 #define QUERY_WINDOW_REAL_ID 0x05
2899 #define QUERY_WINDOW_FOREGROUND 0x06
2900 #define QUERY_WINDOW_DEFAULT_IME 0x07
2901 #define QUERY_WINDOW_DEFAULT_ICONTEXT 0x08
2902 #define QUERY_WINDOW_ACTIVE_IME 0x09
2912 NtUserRealInternalGetMessage(
2922 NtUserRealChildWindowFromPoint(
2929 NtUserRealWaitMessageEx(
2937 CONST RECT
*lprcUpdate
,
2943 NtUserRegisterClassExWOW(
2945 PUNICODE_STRING pustrClassName
,
2946 PUNICODE_STRING pustrCVersion
,
2947 PCLSMENUNAME pClassMenuName
,
2954 NtUserRegisterRawInputDevices(
2955 IN PCRAWINPUTDEVICE pRawInputDevices
,
2956 IN UINT uiNumDevices
,
2961 NtUserRegisterUserApiHook(
2962 PUNICODE_STRING m_dllname1
,
2963 PUNICODE_STRING m_funname1
,
2969 NtUserRegisterHotKey(
2977 NtUserRegisterTasklist(
2982 NtUserRegisterWindowMessage(
2983 PUNICODE_STRING MessageName
);
2987 NtUserRemoteConnect(
2994 NtUserRemoteRedrawRectangle(
3002 NtUserRemoteRedrawScreen(VOID
);
3006 NtUserRemoteStopScreenUpdates(VOID
);
3016 NtUserResolveDesktop(
3017 IN HANDLE ProcessHandle
,
3018 IN PUNICODE_STRING DesktopPath
,
3020 OUT HWINSTA
* phWinSta
);
3024 NtUserResolveDesktopForWOW(
3041 CONST RECT
*lprcScroll
,
3042 CONST RECT
*lprcClip
,
3048 NtUserScrollWindowEx(
3053 const RECT
*clipRect
,
3067 NtUserSetActiveWindow(
3072 NtUserSetAppImeLevel(
3086 ULONG_PTR dwNewLong
,
3098 NtUserSetClipboardData(
3105 NtUserSetClipboardViewer(
3106 HWND hWndNewViewer
);
3110 NtUserSelectPalette(
3113 BOOL ForceBackground
);
3117 NtUserSetConsoleReserveKeys(
3128 NtUserSetCursorContents(
3130 PICONINFO IconInfo
);
3134 NtUserSetCursorIconData(
3135 _In_ HCURSOR hCursor
,
3136 _In_opt_ PUNICODE_STRING pustrModule
,
3137 _In_opt_ PUNICODE_STRING puSrcName
,
3138 _In_
const CURSORDATA
*pCursorData
);
3140 typedef struct _tagFINDEXISTINGCURICONPARAM
3145 } FINDEXISTINGCURICONPARAM
;
3149 NtUserFindExistingCursorIcon(
3150 _In_ PUNICODE_STRING pustrModule
,
3151 _In_ PUNICODE_STRING pustrRsrc
,
3152 _In_ FINDEXISTINGCURICONPARAM
*param
);
3162 NtUserSetDbgTagCount(
3182 PIMEINFOEX pImeInfoEx
);
3186 NtUserSetImeOwnerWindow(PIMEINFOEX pImeInfoEx
, BOOL fFlag
);
3190 NtUserSetInformationProcess(
3198 NtUserSetInformationThread(
3199 IN HANDLE ThreadHandle
,
3200 IN USERTHREADINFOCLASS ThreadInformationClass
,
3201 IN PVOID ThreadInformation
,
3202 IN ULONG ThreadInformationLength
);
3206 NtUserSetInternalWindowPos(
3214 NtUserSetKeyboardState(
3219 NtUserSetLayeredWindowAttributes(
3227 NtUserSetLogonNotifyWindow(
3232 NtUserSetObjectInformation(
3235 PVOID pvInformation
,
3242 HWND hWndNewParent
);
3246 NtUserSetProcessWindowStation(
3247 HWINSTA hWindowStation
);
3263 NtUserSetScrollInfo(
3271 NtUserSetShellWindowEx(
3273 HWND hwndShellListView
);
3279 IN CONST INT
*lpaElements
,
3280 IN CONST COLORREF
*lpaRgbValues
,
3285 NtUserSetSystemCursor(
3291 NtUserSetThreadDesktop(
3296 NtUserSetThreadState(
3302 NtUserSetSystemTimer(
3306 TIMERPROC lpTimerFunc
);
3310 NtUserSetThreadLayoutHandles(
3320 TIMERPROC lpTimerFunc
);
3324 NtUserSetWindowFNID(
3330 NtUserSetWindowLong(
3339 NtUserSetWindowLongPtr(
3348 NtUserSetWindowPlacement(
3350 WINDOWPLACEMENT
*lpwndpl
);
3356 HWND hWndInsertAfter
,
3372 NtUserSetWindowsHookAW(
3379 NtUserSetWindowsHookEx(
3381 PUNICODE_STRING ModuleName
,
3389 NtUserSetWindowStationUser(
3390 IN HWINSTA hWindowStation
,
3392 IN PSID psid OPTIONAL
,
3397 NtUserSetWindowWord(
3404 NtUserSetWinEventHook(
3407 HMODULE hmodWinEventProc
,
3408 PUNICODE_STRING puString
,
3409 WINEVENTPROC lpfnWinEventProc
,
3426 NtUserShowScrollBar(
3439 NtUserShowWindowAsync(
3445 NtUserSoundSentry(VOID
);
3449 NtUserSwitchDesktop(
3454 NtUserSystemParametersInfo(
3462 NtUserTestForInteractiveUser(
3478 NtUserTrackMouseEvent(
3479 LPTRACKMOUSEEVENT lpEventTrack
);
3483 NtUserTranslateAccelerator(
3490 NtUserTranslateMessage(
3496 NtUserUnhookWindowsHookEx(
3501 NtUserUnhookWinEvent(
3502 HWINEVENTHOOK hWinEventHook
);
3506 NtUserUnloadKeyboardLayout(
3511 NtUserUnlockWindowStation(
3512 HWINSTA hWindowStation
);
3516 NtUserUnregisterClass(
3517 PUNICODE_STRING ClassNameOrAtom
,
3518 HINSTANCE hInstance
,
3519 PCLSMENUNAME pClassMenuName
);
3523 NtUserUnregisterHotKey(
3529 NtUserUnregisterUserApiHook(VOID
);
3533 NtUserUpdateInputContext(
3540 NtUserUpdateInstance(
3547 NtUserUpdateLayeredWindow(
3555 BLENDFUNCTION
*pblend
,
3561 NtUserUpdatePerUserSystemParameters(
3567 NtUserUserHandleGrantAccess(
3568 IN HANDLE hUserHandle
,
3574 NtUserValidateHandleSecure(
3581 CONST RECT
*lpRect
);
3585 NtUserValidateTimerCallback(
3597 NtUserWaitForInputIdle(
3599 IN DWORD dwMilliseconds
,
3600 IN BOOL bSharedWow
); /* Always FALSE */
3604 NtUserWaitForMsgAndEvent(
3609 NtUserWaitMessage(VOID
);
3613 NtUserWin32PoolAllocationStats(
3623 NtUserWindowFromPoint(
3629 NtUserYieldTask(VOID
);
3632 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3635 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3636 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3637 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3638 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3639 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3640 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3642 #define MSQ_STATE_CAPTURE 0x1
3643 #define MSQ_STATE_ACTIVE 0x2
3644 #define MSQ_STATE_FOCUS 0x3
3645 #define MSQ_STATE_MENUOWNER 0x4
3646 #define MSQ_STATE_MOVESIZE 0x5
3647 #define MSQ_STATE_CARET 0x6
3649 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3650 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3654 NtUserGetMonitorInfo(
3655 IN HMONITOR hMonitor
,
3656 OUT LPMONITORINFO pMonitorInfo
);
3658 /* Should be done in usermode */
3662 NtUserMonitorFromPoint(
3668 NtUserMonitorFromRect(
3674 NtUserMonitorFromWindow(
3678 typedef struct _SETSCROLLBARINFO
3682 DWORD rgstate
[CCHILDREN_SCROLLBAR
+ 1];
3683 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3687 NtUserSetScrollBarInfo(
3690 SETSCROLLBARINFO
*info
);
3692 #endif /* __WIN32K_NTUSER_H */