1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
13 #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
14 #define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
16 #define HANDLEENTRY_INDESTROY 1
18 typedef struct _USER_HANDLE_ENTRY
20 void *ptr
; /* pointer to object */
24 struct _THREADINFO
*pti
; /* pointer to Win32ThreadInfo */
25 struct _PROCESSINFO
*ppi
; /* pointer to W32ProcessInfo */
27 unsigned char type
; /* object type (0 if free) */
29 unsigned short generation
; /* generation counter */
30 } USER_HANDLE_ENTRY
, *PUSER_HANDLE_ENTRY
;
32 typedef struct _USER_HANDLE_TABLE
34 PUSER_HANDLE_ENTRY handles
;
35 PUSER_HANDLE_ENTRY freelist
;
37 int allocated_handles
;
38 } USER_HANDLE_TABLE
, *PUSER_HANDLE_TABLE
;
40 typedef enum _HANDLE_TYPE
46 TYPE_SETWINDOWPOS
= 4,
57 TYPE_WINEVENTHOOK
= 15,
59 TYPE_INPUTCONTEXT
= 17,
62 TYPE_TOUCHINPUTINFO
= 20,
63 TYPE_GESTUREINFOOBJ
= 21,
66 } HANDLE_TYPE
, *PHANDLE_TYPE
;
68 typedef enum _USERTHREADINFOCLASS
70 UserThreadShutdownInformation
,
73 UserThreadWOWInformation
,
75 UserThreadInitiateShutdown
,
76 UserThreadEndShutdown
,
77 UserThreadUseActiveDesktop
,
79 UserThreadRestoreDesktop
,
81 } USERTHREADINFOCLASS
;
83 typedef struct _LARGE_UNICODE_STRING
86 ULONG MaximumLength
:31;
89 } LARGE_UNICODE_STRING
, *PLARGE_UNICODE_STRING
;
91 typedef struct _LARGE_STRING
94 ULONG MaximumLength
:31;
97 } LARGE_STRING
, *PLARGE_STRING
;
100 /* Based on ANSI_STRING */
101 typedef struct _LARGE_ANSI_STRING
104 ULONG MaximumLength
:31;
107 } LARGE_ANSI_STRING
, *PLARGE_ANSI_STRING
;
111 RtlInitLargeAnsiString(
112 IN OUT PLARGE_ANSI_STRING
,
118 RtlInitLargeUnicodeString(
119 IN OUT PLARGE_UNICODE_STRING
,
125 RtlLargeStringToUnicodeString(
129 #define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1)
131 typedef struct _DESKTOPINFO
134 PVOID pvDesktopLimit
;
137 LIST_ENTRY aphkStart
[NB_HOOKS
];
142 struct _WND
*spwndShell
;
144 struct _PROCESSINFO
*ppiShellProcess
;
151 UINT LastInputWasKbd
:1;
155 WCHAR szDesktopName
[1];
156 } DESKTOPINFO
, *PDESKTOPINFO
;
158 #define CTI_THREADSYSLOCK 0x0001
159 #define CTI_INSENDMESSAGE 0x0002
161 typedef struct _CLIENTTHREADINFO
166 WORD fsWakeBitsJournal
;
168 ULONG tickLastMsgChecked
;
170 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
178 typedef struct _THROBJHEAD
181 struct _THREADINFO
*pti
;
182 } THROBJHEAD
, *PTHROBJHEAD
;
184 typedef struct _THRDESKHEAD
187 struct _DESKTOP
*rpdesk
;
189 } THRDESKHEAD
, *PTHRDESKHEAD
;
191 typedef struct _PROCDESKHEAD
195 struct _DESKTOP
*rpdesk
;
197 } PROCDESKHEAD
, *PPROCDESKHEAD
;
199 typedef struct _PROCMARKHEAD
203 struct _PROCESSINFO
*ppi
;
204 } PROCMARKHEAD
, *PPROCMARKHEAD
;
206 #define UserHMGetHandle(obj) ((obj)->head.h)
208 /* Window Client Information structure */
211 #define WEF_SETBYWNDPTI 0x0001
213 typedef struct tagHOOK
216 struct tagHOOK
*phkNext
; /* This is for user space. */
217 int HookId
; /* Hook table index */
219 ULONG flags
; /* Some internal flags */
221 struct _THREADINFO
*ptiHooked
;
222 struct _DESKTOP
*rpdesk
;
224 LIST_ENTRY Chain
; /* Hook chain entry */
225 HOOKPROC Proc
; /* Hook function */
226 BOOLEAN Ansi
; /* Is it an Ansi hook? */
227 UNICODE_STRING ModuleName
; /* Module name for global hooks */
230 typedef struct tagCLIPBOARDDATA
235 } CLIPBOARDDATA
, *PCLIPBOARDDATA
;
237 /* THREADINFO Flags */
238 #define TIF_INCLEANUP 0x00000001
239 #define TIF_16BIT 0x00000002
240 #define TIF_SYSTEMTHREAD 0x00000004
241 #define TIF_CSRSSTHREAD 0x00000008
242 #define TIF_TRACKRECTVISIBLE 0x00000010
243 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
244 #define TIF_DONTATTACHQUEUE 0x00000040
245 #define TIF_DONTJOURNALATTACH 0x00000080
246 #define TIF_WOW64 0x00000100
247 #define TIF_INACTIVATEAPPMSG 0x00000200
248 #define TIF_SPINNING 0x00000400
249 #define TIF_PALETTEAWARE 0x00000800
250 #define TIF_SHAREDWOW 0x00001000
251 #define TIF_FIRSTIDLE 0x00002000
252 #define TIF_WAITFORINPUTIDLE 0x00004000
253 #define TIF_MOVESIZETRACKING 0x00008000
254 #define TIF_VDMAPP 0x00010000
255 #define TIF_DOSEMULATOR 0x00020000
256 #define TIF_GLOBALHOOKER 0x00040000
257 #define TIF_DELAYEDEVENT 0x00080000
258 #define TIF_MSGPOSCHANGED 0x00100000
259 #define TIF_SHUTDOWNCOMPLETE 0x00200000
260 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
261 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
262 #define TIF_GUITHREADINITIALIZED 0x02000000
263 #define TIF_DISABLEIME 0x04000000
264 #define TIF_INGETTEXTLENGTH 0x08000000
265 #define TIF_ANSILENGTH 0x10000000
266 #define TIF_DISABLEHOOKS 0x20000000
268 typedef struct _CALLBACKWND
273 } CALLBACKWND
, *PCALLBACKWND
;
275 #define CI_TRANSACTION 0x00000001
276 #define CI_QUEUEMSG 0x00000002
277 #define CI_WOW 0x00000004
278 #define CI_INITTHREAD 0x00000008
279 #define CI_CURTHPRHOOK 0x00000010
280 #define CI_CLASSESREGISTERED 0x00000020
281 #define CI_IMMACTIVATE 0x00000040
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 typedef struct tagMENU
381 ULONG fFlags
; /* [Style flags | Menu flags] */
382 INT iItem
; /* nPos of selected item, if -1 not selected. AKA focused item */
383 UINT cAlloced
; /* Number of allocated items. Inc's of 8 */
384 UINT cItems
; /* Number of items in the menu */
385 ULONG cxMenu
; /* Width of the whole menu */
386 ULONG cyMenu
; /* Height of the whole menu */
387 ULONG cxTextAlign
; /* Offset of text when items have both bitmaps and text */
388 struct _WND
*spwndNotify
; /* window receiving the messages for ownerdraw */
389 PITEM rgItems
; /* Array of menu items */
390 struct tagMENULIST
*pParentMenus
; /* If this is SubMenu, list of parents. */
391 DWORD dwContextHelpId
;
392 ULONG cyMax
; /* max height of the whole menu, 0 is screen height */
393 DWORD_PTR dwMenuData
; /* application defined value */
394 HBRUSH hbrBack
; /* brush for menu background */
395 INT iTop
; /* Current scroll position Top */
396 INT iMaxTop
; /* Current scroll position Max Top */
397 DWORD dwArrowsOn
:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
399 LIST_ENTRY ListEntry
;
400 HWND hWnd
; /* Window containing the menu, use POPUPMENU */
404 typedef struct tagPOPUPMENU
409 ULONG fIsTrackPopup
:1;
410 ULONG fDroppedLeft
:1;
411 ULONG fHierarchyDropped
:1;
412 ULONG fRightButton
:1;
414 ULONG fSynchronous
:1;
416 ULONG fDropNextPopup
:1;
418 ULONG fAboutToHide
:1;
422 ULONG fDelayedFree
:1;
423 ULONG fFlushDelayedFree
:1;
426 ULONG fTrackMouseEvent
:1;
429 // ULONG fDesktopMenu:1;
431 ULONG fUseMonitorRect
:1;
432 struct _WND
*spwndNotify
;
433 struct _WND
*spwndPopupMenu
;
434 struct _WND
*spwndNextPopup
;
435 struct _WND
*spwndPrevPopup
;
437 PMENU spmenuAlternate
;
438 struct _WND
*spwndActivePopup
;
439 struct tagPOPUPMENU
*ppopupmenuRoot
;
440 struct tagPOPUPMENU
*ppmDelayedFree
;
441 UINT posSelectedItem
;
443 } POPUPMENU
, *PPOPUPMENU
;
445 typedef struct _REGISTER_SYSCLASS
447 /* This is a reactos specific class used to initialize the
448 system window classes during user32 initialization */
457 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
459 typedef struct _CLSMENUNAME
461 LPSTR pszClientAnsiMenuName
;
462 LPWSTR pwszClientUnicodeMenuName
;
463 PUNICODE_STRING pusMenuName
;
464 } CLSMENUNAME
, *PCLSMENUNAME
;
466 typedef struct tagSBDATA
474 typedef struct tagSBINFO
481 typedef struct tagSBCALC
503 UserGetCPDA2U
= 0x01, /* " Unicode " */
504 UserGetCPDU2A
= 0X02, /* " Ansi " */
505 UserGetCPDClass
= 0X10,
506 UserGetCPDWindow
= 0X20,
507 UserGetCPDDialog
= 0X40,
508 UserGetCPDWndtoCls
= 0X80
511 typedef struct _CALLPROCDATA
514 struct _CALLPROCDATA
*spcpdNext
;
515 WNDPROC pfnClientPrevious
;
517 } CALLPROCDATA
, *PCALLPROCDATA
;
519 #define CSF_SERVERSIDEPROC 0x0001
520 #define CSF_ANSIPROC 0x0002
521 #define CSF_WOWDEFERDESTROY 0x0004
522 #define CSF_SYSTEMCLASS 0x0008
523 #define CSF_WOWCLASS 0x0010
524 #define CSF_WOWEXTRA 0x0020
525 #define CSF_CACHEDSMICON 0x0040
526 #define CSF_WIN40COMPAT 0x0080
530 struct _CLS
*pclsNext
;
531 RTL_ATOM atomClassName
;
532 ATOM atomNVClassName
;
534 struct _DESKTOP
*rpdeskParent
;
537 PSTR lpszClientAnsiMenuName
; /* For client use */
538 PWSTR lpszClientUnicodeMenuName
; /* " " " */
539 PCALLPROCDATA spcpdFirst
;
540 struct _CLS
*pclsBase
;
541 struct _CLS
*pclsClone
;
542 ULONG cWndReferenceCount
;
548 struct _CURICON_OBJECT
*spicn
;
549 struct _CURICON_OBJECT
*spcur
;
550 HBRUSH hbrBackground
;
551 PWSTR lpszMenuName
; /* kernel use */
552 PSTR lpszAnsiClassName
; /* " */
553 struct _CURICON_OBJECT
*spicnSm
;
555 UINT Unicode
:1; // !CSF_ANSIPROC
556 UINT Global
:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
557 UINT MenuNameIsString
:1;
561 typedef struct _SBINFOEX
563 SCROLLBARINFO ScrollBarInfo
;
564 SCROLLINFO ScrollInfo
;
565 } SBINFOEX
, *PSBINFOEX
;
567 /* State Flags !Not Implemented! */
568 #define WNDS_HASMENU 0X00000001
569 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
570 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
571 #define WNDS_HASCAPTION 0X00000008
572 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
573 #define WNDS_MSGBOX 0X00000020
574 #define WNDS_ACTIVEFRAME 0X00000040
575 #define WNDS_HASSPB 0X00000080
576 #define WNDS_NONCPAINT 0X00000100
577 #define WNDS_SENDERASEBACKGROUND 0X00000200
578 #define WNDS_ERASEBACKGROUND 0X00000400
579 #define WNDS_SENDNCPAINT 0X00000800
580 #define WNDS_INTERNALPAINT 0X00001000
581 #define WNDS_UPDATEDIRTY 0X00002000
582 #define WNDS_HIDDENPOPUP 0X00004000
583 #define WNDS_FORCEMENUDRAW 0X00008000
584 #define WNDS_DIALOGWINDOW 0X00010000
585 #define WNDS_HASCREATESTRUCTNAME 0X00020000
586 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */
587 #define WNDS_ANSIWINDOWPROC 0x00080000
588 #define WNDS_BEINGACTIVATED 0x00100000
589 #define WNDS_HASPALETTE 0x00200000
590 #define WNDS_PAINTNOTPROCESSED 0x00400000
591 #define WNDS_SYNCPAINTPENDING 0x00800000
592 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
593 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000
594 #define WNDS_TOGGLETOPMOST 0x04000000
595 #define WNDS_REDRAWIFHUNG 0x08000000
596 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
597 #define WNDS_ANSICREATOR 0x20000000
598 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
599 #define WNDS_DESTROYED 0x80000000
601 #define WNDSACTIVEFRAME 0x00000006
603 /* State2 Flags !Not Implemented! */
604 #define WNDS2_WMPAINTSENT 0X00000001
605 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
606 #define WNDS2_STARTPAINT 0X00000004
607 #define WNDS2_OLDUI 0X00000008
608 #define WNDS2_HASCLIENTEDGE 0X00000010
609 #define WNDS2_BOTTOMMOST 0X00000020
610 #define WNDS2_FULLSCREEN 0X00000040
611 #define WNDS2_INDESTROY 0X00000080
612 #define WNDS2_WIN31COMPAT 0X00000100
613 #define WNDS2_WIN40COMPAT 0X00000200
614 #define WNDS2_WIN50COMPAT 0X00000400
615 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
616 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
617 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
618 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
619 #define WNDS2_HELPBUTTONDOWN 0X00008000
620 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
621 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
622 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
623 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
624 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
625 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
626 #define WNDS2_FORCENCPAINT 0X00400000
627 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
628 #define WNDS2_FULLSCREENMODE 0X01000000
629 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
630 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
631 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
632 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
633 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
636 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
637 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
638 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
639 #define WS_EX2_LINKED 0X00000008
640 #define WS_EX2_LAYEREDFORDWM 0X00000010
641 #define WS_EX2_LAYEREDLIMBO 0X00000020
642 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
643 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
644 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
645 #define WS_EX2_HASOVERLAY 0X00000200
646 #define WS_EX2_CONSOLEWINDOW 0X00000400
647 #define WS_EX2_CHILDNOACTIVATE 0X00000800
649 #define WPF_MININIT 0x0008
650 #define WPF_MAXINIT 0x0010
657 /* Extended style. */
661 /* Handle of the module that created the window. */
664 struct _WND
*spwndNext
;
665 struct _WND
*spwndPrev
;
666 struct _WND
*spwndParent
;
667 struct _WND
*spwndChild
;
668 struct _WND
*spwndOwner
;
672 /* Pointer to the window class. */
675 /* Property list head.*/
676 LIST_ENTRY PropListHead
;
680 /* system menu handle. */
683 /* Window menu handle or window id */
684 UINT IDMenu
; // Use spmenu
689 LARGE_UNICODE_STRING strName
;
690 /* Size of the extra data associated with the window. */
692 struct _WND
*spwndLastActive
;
693 HIMC hImc
; // Input context associated with this window.
696 //PD3DMATRIX pTransForm;
697 struct _WND
*spwndClipboardListener
;
706 UINT flags
; /* WPF_ flags. */
709 UINT Unicode
:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
710 UINT InternalPosInitialized
:1;
711 UINT HideFocus
:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
712 UINT HideAccel
:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
715 PSBINFOEX pSBInfoex
; // convert to PSBINFO
716 /* Entry in the list of thread windows. */
717 LIST_ENTRY ThreadListEntry
;
720 #define PWND_BOTTOM ((PWND)1)
722 typedef struct _SBWND
730 typedef struct _MENUWND
733 PPOPUPMENU ppopupmenu
;
734 } MENUWND
, *PMENUWND
;
736 typedef struct _PFNCLIENT
738 WNDPROC pfnScrollBarWndProc
;
739 WNDPROC pfnTitleWndProc
;
740 WNDPROC pfnMenuWndProc
;
741 WNDPROC pfnDesktopWndProc
;
742 WNDPROC pfnDefWindowProc
;
743 WNDPROC pfnMessageWindowProc
;
744 WNDPROC pfnSwitchWindowProc
;
745 WNDPROC pfnButtonWndProc
;
746 WNDPROC pfnComboBoxWndProc
;
747 WNDPROC pfnComboListBoxProc
;
748 WNDPROC pfnDialogWndProc
;
749 WNDPROC pfnEditWndProc
;
750 WNDPROC pfnListBoxWndProc
;
751 WNDPROC pfnMDIClientWndProc
;
752 WNDPROC pfnStaticWndProc
;
753 WNDPROC pfnImeWndProc
;
754 WNDPROC pfnGhostWndProc
;
755 WNDPROC pfnHkINLPCWPSTRUCT
;
756 WNDPROC pfnHkINLPCWPRETSTRUCT
;
757 WNDPROC pfnDispatchHook
;
758 WNDPROC pfnDispatchDefWindowProc
;
759 WNDPROC pfnDispatchMessage
;
760 WNDPROC pfnMDIActivateDlgProc
;
761 } PFNCLIENT
, *PPFNCLIENT
;
764 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
765 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
769 (CALLBACK
*WNDPROC_EX
)(
776 typedef struct _PFNCLIENTWORKER
778 WNDPROC_EX pfnButtonWndProc
;
779 WNDPROC_EX pfnComboBoxWndProc
;
780 WNDPROC_EX pfnComboListBoxProc
;
781 WNDPROC_EX pfnDialogWndProc
;
782 WNDPROC_EX pfnEditWndProc
;
783 WNDPROC_EX pfnListBoxWndProc
;
784 WNDPROC_EX pfnMDIClientWndProc
;
785 WNDPROC_EX pfnStaticWndProc
;
786 WNDPROC_EX pfnImeWndProc
;
787 WNDPROC_EX pfnGhostWndProc
;
788 WNDPROC_EX pfnCtfHookProc
;
789 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
799 /* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
800 #define FNID_FIRST 0x029A
801 #define FNID_SCROLLBAR 0x029A
802 #define FNID_ICONTITLE 0x029B
803 #define FNID_MENU 0x029C
804 #define FNID_DESKTOP 0x029D
805 #define FNID_DEFWINDOWPROC 0x029E
806 #define FNID_MESSAGEWND 0x029F
807 #define FNID_SWITCH 0x02A0
808 #define FNID_BUTTON 0x02A1
809 #define FNID_COMBOBOX 0x02A2
810 #define FNID_COMBOLBOX 0x02A3
811 #define FNID_DIALOG 0x02A4
812 #define FNID_EDIT 0x02A5
813 #define FNID_LISTBOX 0x02A6
814 #define FNID_MDICLIENT 0x02A7
815 #define FNID_STATIC 0x02A8
816 #define FNID_IME 0x02A9
817 #define FNID_GHOST 0x02AA
818 #define FNID_CALLWNDPROC 0x02AB
819 #define FNID_CALLWNDPROCRET 0x02AC
820 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
821 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
822 #define FNID_MB_DLGPROC 0x02AF
823 #define FNID_MDIACTIVATEDLGPROC 0x02B0
824 #define FNID_SENDMESSAGE 0x02B1
825 #define FNID_SENDMESSAGEFF 0x02B2
826 /* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
827 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
828 #define FNID_SENDMESSAGECALLPROC 0x02B4
829 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
830 #define FNID_TOOLTIPS 0x02B6
831 #define FNID_SENDNOTIFYMESSAGE 0x02B7
832 #define FNID_SENDMESSAGECALLBACK 0x02B8
833 #define FNID_LAST 0x02B9
835 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
836 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
838 #define FNID_DDEML 0x2000 /* Registers DDEML */
839 #define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
840 /* Seen during WM_CREATE on error exit too. */
841 #define FNID_FREED 0x8000 /* Window being Freed... */
843 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
845 #define GETPFNCLIENTA(fnid) \
846 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
847 #define GETPFNCLIENTW(fnid) \
848 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
850 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
852 /* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
853 #define ICLS_BUTTON 0
855 #define ICLS_STATIC 2
856 #define ICLS_LISTBOX 3
857 #define ICLS_SCROLLBAR 4
858 #define ICLS_COMBOBOX 5
859 #define ICLS_MDICLIENT 6
860 #define ICLS_COMBOLBOX 7
861 #define ICLS_DDEMLEVENT 8
862 #define ICLS_DDEMLMOTHER 9
863 #define ICLS_DDEML16BIT 10
864 #define ICLS_DDEMLCLIENTA 11
865 #define ICLS_DDEMLCLIENTW 12
866 #define ICLS_DDEMLSERVERA 13
867 #define ICLS_DDEMLSERVERW 14
869 #define ICLS_GHOST 16
870 #define ICLS_DESKTOP 17
871 #define ICLS_DIALOG 18
873 #define ICLS_SWITCH 20
874 #define ICLS_ICONTITLE 21
875 #define ICLS_TOOLTIPS 22
876 #if (_WIN32_WINNT <= 0x0501)
877 #define ICLS_UNKNOWN 22
878 #define ICLS_NOTUSED 23
880 #define ICLS_SYSSHADOW 23
881 #define ICLS_HWNDMESSAGE 24
882 #define ICLS_NOTUSED 25
886 #define COLOR_LAST COLOR_MENUBAR
887 #define MAX_MB_STRINGS 11
889 #define SRVINFO_DBCSENABLED 0x0002
890 #define SRVINFO_IMM32 0x0004
891 #define SRVINFO_APIHOOK 0x0010
892 #define SRVINFO_METRICS 0x0020
893 #define SRVINFO_KBDPREF 0x0080
895 #define NUM_SYSCOLORS 31
897 typedef struct tagOEMBITMAPINFO
903 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
905 typedef struct tagMBSTRING
910 } MBSTRING
, *PMBSTRING
;
912 typedef struct tagDPISERVERINFO
914 INT gclBorder
; /* 000 */
915 HFONT hCaptionFont
; /* 004 */
916 HFONT hMsgFont
; /* 008 */
917 INT cxMsgFontChar
; /* 00C */
918 INT cyMsgFontChar
; /* 010 */
919 UINT wMaxBtnSize
; /* 014 */
920 } DPISERVERINFO
, *PDPISERVERINFO
;
923 #define PUSIF_PALETTEDISPLAY 0x01
924 #define PUSIF_SNAPTO 0x02
925 #define PUSIF_COMBOBOXANIMATION 0x04
926 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
927 #define PUSIF_KEYBOARDCUES 0x20
929 typedef struct _PERUSERSERVERINFO
931 INT aiSysMet
[SM_CMETRICS
];
932 ULONG argbSystemUnmatched
[NUM_SYSCOLORS
];
933 COLORREF argbSystem
[NUM_SYSCOLORS
];
934 HBRUSH ahbrSystem
[NUM_SYSCOLORS
];
938 DWORD dwLastRITEventTickCount
;
943 UINT ucWheelScrollLines
;
944 UINT ucWheelScrollChars
;
945 INT wMaxLeftOverlapChars
;
946 INT wMaxRightOverlapChars
;
949 TEXTMETRICW tmSysFont
;
950 DPISERVERINFO dpiSystem
;
951 HICON hIconSmWindows
;
954 DWORD dwAsyncKeyCache
;
956 OEMBITMAPINFO oembmi
[93];
965 DWORD dwLastSystemRITEventTickCountUpdate
;
966 ULONG adwDBGTAGFlags
[35];
969 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
971 typedef struct tagSERVERINFO
974 ULONG_PTR cHandleEntries
;
975 PFN_FNID mpFnidPfn
[FNID_NUM
];
976 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
977 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
978 PFNCLIENT apfnClientA
;
979 PFNCLIENT apfnClientW
;
980 PFNCLIENTWORKER apfnClientWorker
;
982 ATOM atomSysClass
[ICLS_NOTUSED
+1];
983 DWORD dwDefaultHeapBase
;
984 DWORD dwDefaultHeapSize
;
986 MBSTRING MBStrings
[MAX_MB_STRINGS
];
989 ATOM atomContextHelpIdProp
;
990 ATOM atomFrostedWindowProp
;
991 CHAR acOemToAnsi
[256];
992 CHAR acAnsiToOem
[256];
993 DWORD dwInstalledEventHooks
;
995 } SERVERINFO
, *PSERVERINFO
;
998 C_ASSERT(sizeof(SERVERINFO
) <= PAGE_SIZE
);
1002 /* Server event activity bits. */
1003 #define SRV_EVENT_MENU 0x0001
1004 #define SRV_EVENT_END_APPLICATION 0x0002
1005 #define SRV_EVENT_RUNNING 0x0004
1006 #define SRV_EVENT_NAMECHANGE 0x0008
1007 #define SRV_EVENT_VALUECHANGE 0x0010
1008 #define SRV_EVENT_STATECHANGE 0x0020
1009 #define SRV_EVENT_LOCATIONCHANGE 0x0040
1010 #define SRV_EVENT_CREATE 0x8000
1012 typedef struct _PROPLISTITEM
1016 } PROPLISTITEM
, *PPROPLISTITEM
;
1018 typedef struct _PROPERTY
1020 LIST_ENTRY PropListEntry
;
1024 } PROPERTY
, *PPROPERTY
;
1026 typedef struct _BROADCASTPARM
1033 } BROADCASTPARM
, *PBROADCASTPARM
;
1035 struct _THREADINFO
*GetW32ThreadInfo(VOID
);
1036 struct _PROCESSINFO
*GetW32ProcessInfo(VOID
);
1038 typedef struct _WNDMSG
1044 typedef struct _SHAREDINFO
1046 PSERVERINFO psi
; /* global Server Info */
1047 PVOID aheList
; /* Handle Entry List */
1048 PVOID pDispInfo
; /* global PDISPLAYINFO pointer */
1049 ULONG_PTR ulSharedDelta
; /* Heap delta */
1050 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
1051 WNDMSG DefWindowMsgs
;
1052 WNDMSG DefWindowSpecMsgs
;
1053 } SHAREDINFO
, *PSHAREDINFO
;
1055 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1056 typedef struct _USERCONNECT
1059 ULONG ulCurrentVersion
;
1060 DWORD dwDispatchCount
;
1061 SHAREDINFO siClient
;
1062 } USERCONNECT
, *PUSERCONNECT
;
1064 /* WinNT 5.0 compatible user32 / win32k */
1065 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1067 #if defined(_M_IX86)
1068 C_ASSERT(sizeof(USERCONNECT
) == 0x124);
1071 typedef struct tagGETCLIPBDATA
1080 } GETCLIPBDATA
, *PGETCLIPBDATA
;
1082 typedef struct tagSETCLIPBDATA
1085 BOOL fIncSerialNumber
;
1086 } SETCLIPBDATA
, *PSETCLIPBDATA
;
1088 /* Used with NtUserSetCursorIconData, last parameter. */
1089 typedef struct tagCURSORDATA
1095 ULONG CURSORF_flags
;
1102 HBITMAP hbmUserAlpha
; /* Could be in W7U, not in W2k */
1108 struct tagCURSORDATA
*aspcur
;
1112 } CURSORDATA
, *PCURSORDATA
; /* !dso CURSORDATA */
1114 /* CURSORF_flags: */
1115 #define CURSORF_FROMRESOURCE 0x0001
1116 #define CURSORF_GLOBAL 0x0002
1117 #define CURSORF_LRSHARED 0x0004
1118 #define CURSORF_ACON 0x0008
1119 #define CURSORF_WOWCLEANUP 0x0010
1120 #define CURSORF_ACONFRAME 0x0040
1121 #define CURSORF_SECRET 0x0080
1122 #define CURSORF_LINKED 0x0100
1123 #define CURSORF_CURRENT 0x0200
1125 typedef struct tagIMEINFOEX
1129 WCHAR wszUIClass
[16];
1130 ULONG fdwInitConvMode
;
1133 DWORD dwProdVersion
;
1134 DWORD dwImeWinVersion
;
1135 WCHAR wszImeDescription
[50];
1136 WCHAR wszImeFile
[80];
1139 INT fSysWow64Only
:1;
1142 } IMEINFOEX
, *PIMEINFOEX
;
1144 typedef struct tagIMEUI
1157 UINT fChildThreadDef
:1;
1158 UINT fCtrlShowStatus
:1;
1159 UINT fFreeActiveEvent
:1;
1163 /* Window Extra data container. */
1164 typedef struct _IMEWND
1172 NtUserAssociateInputContext(
1179 NtUserBuildHimcList(
1196 NtUserCheckMenuItem(
1203 NtUserCtxDisplayIOCtl(
1222 NtUserDrawMenuBarTemp(
1231 NtUserEnableMenuItem(
1238 NtUserEndMenu(VOID
);
1242 NtUserGetMenuBarInfo(
1256 NtUserGetMenuItemRect(
1264 NtUserGetSystemMenu(
1270 NtUserHiliteMenuItem(
1278 NtUserMenuItemFromPoint(
1300 NtUserSetMenuContextHelpId(
1302 DWORD dwContextHelpId
);
1306 NtUserSetMenuDefaultItem(
1313 NtUserSetMenuFlagRtoL(
1318 NtUserSetSystemMenu(
1324 NtUserThunkedMenuInfo(
1330 NtUserThunkedMenuItemInfo(
1335 LPMENUITEMINFOW lpmii
,
1336 PUNICODE_STRING lpszCaption
);
1340 NtUserTrackPopupMenuEx(
1350 NtUserActivateKeyboardLayout(
1356 NtUserAlterWindowStyle(
1363 NtUserAttachThreadInput(
1365 IN DWORD idAttachTo
,
1392 NtUserBuildHwndList(
1403 NtUserBuildNameList(
1407 PULONG pRequiredSize
);
1411 NtUserBuildPropList(
1417 /* apfnSimpleCall indices from Windows XP SP 2 */
1418 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1419 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1421 enum SimpleCallRoutines
1423 NOPARAM_ROUTINE_CREATEMENU
,
1424 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1425 #if (WIN32K_VERSION >= NTDDI_VISTA)
1426 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1427 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1428 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1429 NOPARAM_ROUTINE_DESTROY_CARET
,
1431 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1432 #if (WIN32K_VERSION < NTDDI_VISTA)
1433 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1434 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1435 NOPARAM_ROUTINE_DESTROY_CARET
,
1437 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1438 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1439 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1440 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1441 #if (WIN32K_VERSION >= NTDDI_VISTA)
1442 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1444 NOPARAM_ROUTINE_GETREMOTEPROCESSID
,
1446 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1447 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1448 #if (WIN32K_VERSION >= NTDDI_VISTA)
1449 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1450 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1452 NOPARAM_ROUTINE_RELEASECAPTURE
,
1453 NOPARAM_ROUTINE_RESETDBLCLICK
,
1454 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1455 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1456 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1457 NOPARAM_ROUTINE_REMOTELOGOFF
,
1458 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1459 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1460 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1461 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1462 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1463 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1464 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1465 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1466 #if (WIN32K_VERSION >= NTDDI_VISTA)
1467 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1469 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1470 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1471 #if (WIN32K_VERSION < NTDDI_VISTA)
1472 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1474 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1475 #if (WIN32K_VERSION >= NTDDI_VISTA)
1476 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1478 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1479 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1480 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1481 #if (WIN32K_VERSION < NTDDI_VISTA)
1482 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1484 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1485 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1486 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1487 #if (WIN32K_VERSION < NTDDI_VISTA)
1488 ONEPARAM_ROUTINE_GETCURSORPOS
,
1490 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1491 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1492 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1493 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1494 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1495 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1496 #if (WIN32K_VERSION < NTDDI_VISTA)
1497 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1499 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1500 ONEPARAM_ROUTINE_LOADFONTS
,
1501 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1502 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1503 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1504 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1505 #if (WIN32K_VERSION < NTDDI_VISTA)
1506 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1508 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1509 ONEPARAM_ROUTINE_REGISTERLPK
,
1510 #if (WIN32K_VERSION >= NTDDI_VISTA)
1511 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1513 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1514 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1515 ONEPARAM_ROUTINE_RELEASEDC
,
1516 #if (WIN32K_VERSION >= NTDDI_VISTA)
1517 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1519 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1520 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1521 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1522 #if (WIN32K_VERSION < NTDDI_VISTA)
1523 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1525 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1526 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1527 #if (WIN32K_VERSION >= NTDDI_VISTA)
1528 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1530 ONEPARAM_ROUTINE_SHOWCURSOR
,
1531 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1532 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1533 X_ROUTINE_WOWMODULEUNLOAD
,
1534 #if (WIN32K_VERSION < NTDDI_VISTA)
1535 X_ROUTINE_REMOTENOTIFY
,
1537 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1538 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1539 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1540 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1541 HWND_ROUTINE_SETMSGBOX
,
1542 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1543 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1544 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1545 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1546 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1547 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1548 HWNDPARAM_ROUTINE_SETVISIBLE
,
1549 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1550 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1551 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1552 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1553 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1554 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1555 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1556 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1557 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1558 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1559 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1560 HWNDLOCK_ROUTINE_SETSYSMENU
,
1561 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1562 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1563 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1564 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1565 TWOPARAM_ROUTINE_REDRAWTITLE
,
1566 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1567 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1568 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1569 TWOPARAM_ROUTINE_VALIDATERGN
,
1570 #if (WIN32K_VERSION >= NTDDI_VISTA)
1571 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1572 TWOPARAM_ROUTINE_GETCURSORPOS
,
1574 TWOPARAM_ROUTINE_GETHDEVNAME
,
1575 TWOPARAM_ROUTINE_INITANSIOEM
,
1576 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1577 #if (WIN32K_VERSION >= NTDDI_VISTA)
1578 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1580 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1581 #if (WIN32K_VERSION >= NTDDI_VISTA)
1582 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1584 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1586 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1587 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1588 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1589 TWOPARAM_ROUTINE_SETCARETPOS
,
1590 TWOPARAM_ROUTINE_SETCURSORPOS
,
1591 #if (WIN32K_VERSION >= NTDDI_VISTA)
1592 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1594 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1595 TWOPARAM_ROUTINE_WOWCLEANUP
1618 NtUserCallHwndParam(
1625 NtUserCallHwndParamLock(
1632 NtUserCallMsgFilter(
1638 NtUserCallNextHookEx(
1664 NtUserChangeClipboardChain(
1670 NtUserChangeDisplaySettings(
1671 PUNICODE_STRING lpszDeviceName
,
1672 LPDEVMODEW lpDevMode
,
1679 NtUserCheckDesktopByThreadId(
1684 NtUserCheckWindowThreadDesktop(
1691 NtUserCheckImeHotKey(
1696 NtUserChildWindowFromPointEx(
1709 NtUserCloseClipboard(VOID
);
1718 NtUserCloseWindowStation(
1721 /* Console commands for NtUserConsoleControl */
1722 typedef enum _CONSOLECONTROL
1724 ConsoleCtrlDesktopConsoleThread
= 0,
1725 GuiConsoleWndClassAtom
= 1,
1726 ConsoleMakePalettePublic
= 5,
1727 ConsoleAcquireDisplayOwnership
,
1728 } CONSOLECONTROL
, *PCONSOLECONTROL
;
1730 typedef struct _DESKTOP_CONSOLE_THREAD
1732 HDESK DesktopHandle
;
1734 } DESKTOP_CONSOLE_THREAD
, *PDESKTOP_CONSOLE_THREAD
;
1738 NtUserConsoleControl(
1739 IN CONSOLECONTROL ConsoleCtrl
,
1740 IN PVOID ConsoleCtrlInfo
,
1741 IN ULONG ConsoleCtrlInfoLength
);
1745 NtUserConvertMemHandle(
1751 NtUserCopyAcceleratorTable(
1754 ULONG EntriesCount
);
1758 NtUserCountClipboardFormats(VOID
);
1762 NtUserCreateAcceleratorTable(
1764 ULONG EntriesCount
);
1776 NtUserCreateDesktop(
1777 POBJECT_ATTRIBUTES poa
,
1778 PUNICODE_STRING lpszDesktopDevice
,
1781 ACCESS_MASK dwDesiredAccess
);
1785 NtUserCreateInputContext(
1790 NtUserCreateLocalMemHandle(
1798 NtUserCreateWindowEx(
1800 PLARGE_STRING plstrClassName
,
1801 PLARGE_STRING plstrClsVersion
,
1802 PLARGE_STRING plstrWindowName
,
1810 HINSTANCE hInstance
,
1817 NtUserCreateWindowStation(
1818 POBJECT_ATTRIBUTES ObjectAttributes
,
1819 ACCESS_MASK dwDesiredAccess
,
1828 NtUserDdeGetQualityOfService(
1831 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1835 NtUserDdeInitialize(
1844 NtUserDdeSetQualityOfService(
1846 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1847 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1851 NtUserDeferWindowPos(
1854 HWND WndInsertAfter
,
1865 PLARGE_STRING WindowText
);
1869 NtUserDestroyAcceleratorTable(
1874 NtUserDestroyCursor(
1880 NtUserDestroyInputContext(
1885 NtUserDestroyWindow(
1890 NtUserDisableThreadIme(
1895 NtUserDispatchMessage(
1915 NtUserDrawAnimatedRects(
1931 NtUserDrawCaptionTemp(
1937 const PUNICODE_STRING str
,
1940 /* Used with NtUserDrawIconEx, last parameter. */
1941 typedef struct _DRAWICONEXDATA
1947 } DRAWICONEXDATA
, *PDRAWICONEXDATA
;
1959 HBRUSH hbrFlickerFreeDraw
,
1966 NtUserEmptyClipboard(VOID
);
1970 NtUserEnableScrollBar(
1977 NtUserEndDeferWindowPosEx(
1985 CONST PAINTSTRUCT
*lPs
);
1989 NtUserEnumDisplayDevices(
1990 PUNICODE_STRING lpDevice
, /* device name */
1991 DWORD iDevNum
, /* display device */
1992 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1993 DWORD dwFlags
); /* reserved */
1998 NtUserEnumDisplayMonitors(
2001 MONITORENUMPROC lpfnEnum,
2004 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2007 NtUserEnumDisplayMonitors(
2008 OPTIONAL IN HDC hDC
,
2009 OPTIONAL IN LPCRECT pRect
,
2010 OPTIONAL OUT HMONITOR
*hMonitorList
,
2011 OPTIONAL OUT LPRECT monitorRectList
,
2012 OPTIONAL IN DWORD listSize
);
2017 NtUserEnumDisplaySettings(
2018 PUNICODE_STRING lpszDeviceName
,
2020 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
2030 NtUserExcludeUpdateRgn(
2046 HWND hwndChildAfter
,
2047 PUNICODE_STRING ucClassName
,
2048 PUNICODE_STRING ucWindowName
,
2053 NtUserFlashWindowEx(
2054 IN PFLASHWINFO pfwi
);
2058 NtUserGetAltTabInfo(
2074 NtUserGetAppImeLevel(
2079 NtUserGetAsyncKeyState(
2082 _Success_(return != 0)
2083 _At_(pustrName
->Buffer
, _Out_z_bytecap_post_bytecount_(pustrName
->MaximumLength
, return * 2 + 2))
2088 _Inout_ PUNICODE_STRING pustrName
);
2092 NtUserGetCaretBlinkTime(VOID
);
2102 HINSTANCE hInstance
,
2103 PUNICODE_STRING ClassName
,
2105 LPWSTR
*ppszMenuName
,
2112 BOOL Real
, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2113 PUNICODE_STRING ClassName
);
2117 NtUserGetClipboardData(
2119 PGETCLIPBDATA pgcd
);
2123 NtUserGetClipboardFormatName(
2125 LPWSTR lpszFormatName
,
2130 NtUserGetClipboardOwner(VOID
);
2134 NtUserGetClipboardSequenceNumber(VOID
);
2138 NtUserGetClipboardViewer(VOID
);
2142 NtUserGetClipCursor(
2147 NtUserGetComboBoxInfo(
2149 PCOMBOBOXINFO pcbi
);
2153 NtUserGetControlBrush(
2160 NtUserGetControlColor(
2175 NtUserGetCursorFrameInfo(
2183 NtUserGetCursorInfo(
2200 NtUserGetDoubleClickTime(VOID
);
2204 NtUserGetForegroundWindow(VOID
);
2208 NtUserGetGuiResources(
2214 NtUserGetGUIThreadInfo(
2216 LPGUITHREADINFO lpgui
);
2218 _Success_(return != FALSE
)
2222 _In_ HANDLE hCurIcon
,
2223 _Out_opt_ PICONINFO IconInfo
,
2224 _Inout_opt_ PUNICODE_STRING lpInstName
,
2225 _Inout_opt_ PUNICODE_STRING lpResName
,
2226 _Out_opt_ LPDWORD pbpp
,
2227 _In_ BOOL bInternal
);
2248 PIMEINFOEX pImeInfoEx
,
2253 NtUserGetInternalWindowPos(
2260 NtUserGetKeyboardLayout(
2265 NtUserGetKeyboardLayoutList(
2271 NtUserGetKeyboardLayoutName(
2276 NtUserGetKeyboardState(
2281 NtUserGetKeyboardType(
2286 NtUserGetKeyNameText(
2298 NtUserGetLayeredWindowAttributes(
2306 NtUserGetListBoxInfo(
2319 NtUserGetMouseMovePointsEx(
2321 LPMOUSEMOVEPOINT lppt
,
2322 LPMOUSEMOVEPOINT lpptBuf
,
2328 NtUserGetObjectInformation(
2331 PVOID pvInformation
,
2333 PDWORD nLengthNeeded
);
2337 NtUserGetOpenClipboardWindow(VOID
);
2341 NtUserGetPriorityClipboardFormat(
2342 UINT
*paFormatPriorityList
,
2347 NtUserGetProcessWindowStation(VOID
);
2351 NtUserGetRawInputBuffer(
2358 NtUserGetRawInputData(
2359 HRAWINPUT hRawInput
,
2367 NtUserGetRawInputDeviceInfo(
2375 NtUserGetRawInputDeviceList(
2376 PRAWINPUTDEVICELIST pRawInputDeviceList
,
2377 PUINT puiNumDevices
,
2382 NtUserGetRegisteredRawInputDevices(
2383 PRAWINPUTDEVICE pRawInputDevices
,
2384 PUINT puiNumDevices
,
2389 NtUserGetScrollBarInfo(
2392 PSCROLLBARINFO psbi
);
2396 NtUserGetThreadDesktop(
2400 enum ThreadStateRoutines
2402 THREADSTATE_GETTHREADINFO
,
2403 THREADSTATE_INSENDMESSAGE
,
2404 THREADSTATE_FOCUSWINDOW
,
2405 THREADSTATE_ACTIVEWINDOW
,
2406 THREADSTATE_CAPTUREWINDOW
,
2407 THREADSTATE_PROGMANWINDOW
,
2408 THREADSTATE_TASKMANWINDOW
,
2409 THREADSTATE_GETMESSAGETIME
,
2410 THREADSTATE_GETINPUTSTATE
,
2411 THREADSTATE_UPTIMELASTREAD
,
2412 THREADSTATE_FOREGROUNDTHREAD
,
2413 THREADSTATE_GETCURSOR
,
2414 THREADSTATE_GETMESSAGEEXTRAINFO
2419 NtUserGetThreadState(
2424 NtUserGetTitleBarInfo(
2430 NtUserGetUpdateRect(
2449 NtUserGetWindowPlacement(
2451 WINDOWPLACEMENT
*lpwndpl
);
2456 HINSTANCE hInstance
,
2457 PUNICODE_STRING ClassName
);
2461 NtUserHardErrorControl(
2468 NtUserImpersonateDdeClientWindow(
2476 HANDLE hPowerRequestEvent
,
2477 HANDLE hMediaRequestEvent
);
2481 NtUserInitializeClientPfnArrays(
2482 PPFNCLIENT pfnClientA
,
2483 PPFNCLIENT pfnClientW
,
2484 PPFNCLIENTWORKER pfnClientWorker
,
2485 HINSTANCE hmodUser
);
2505 NtUserInternalGetWindowText(
2512 NtUserInvalidateRect(
2519 NtUserInvalidateRgn(
2526 NtUserIsClipboardFormatAvailable(
2537 NtUserLoadKeyboardLayoutEx(
2540 IN PUNICODE_STRING puszKeyboardName
,
2542 IN PUNICODE_STRING puszKLID
,
2548 NtUserLockWindowStation(
2549 HWINSTA hWindowStation
);
2553 NtUserLockWindowUpdate(
2558 NtUserLockWorkStation(VOID
);
2562 NtUserMapVirtualKeyEx(
2568 typedef struct tagDOSENDMESSAGE
2574 DOSENDMESSAGE
, *PDOSENDMESSAGE
;
2583 ULONG_PTR ResultInfo
,
2584 DWORD dwType
, /* FNID_XX types */
2591 UINT cmd
, /* Wine SW_ commands */
2596 NtUserMNDragLeave(VOID
);
2606 NtUserModifyUserStartupInfoFlags(
2623 NtUserNotifyIMEStatus(
2630 NtUserNotifyProcessCreate(
2631 HANDLE NewProcessId
,
2632 HANDLE ParentThreadId
,
2638 NtUserNotifyWinEvent(
2646 NtUserOpenClipboard(
2653 POBJECT_ATTRIBUTES ObjectAttributes
,
2655 ACCESS_MASK dwDesiredAccess
);
2659 NtUserOpenInputDesktop(
2662 ACCESS_MASK dwDesiredAccess
);
2666 NtUserOpenWindowStation(
2667 POBJECT_ATTRIBUTES ObjectAttributes
,
2668 ACCESS_MASK dwDesiredAccess
);
2704 NtUserPostThreadMessage(
2719 NtUserProcessConnect(
2720 IN HANDLE ProcessHandle
,
2721 OUT PUSERCONNECT pUserConnect
,
2722 IN ULONG Size
); /* sizeof(USERCONNECT) */
2726 NtUserQueryInformationThread(
2727 IN HANDLE ThreadHandle
,
2728 IN USERTHREADINFOCLASS ThreadInformationClass
,
2729 OUT PVOID ThreadInformation
,
2730 IN ULONG ThreadInformationLength
);
2734 NtUserQueryInputContext(
2740 NtUserQuerySendMessage(
2745 NtUserQueryUserCounters(
2752 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2753 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2754 #define QUERY_WINDOW_ACTIVE 0x02
2755 #define QUERY_WINDOW_FOCUS 0x03
2756 #define QUERY_WINDOW_ISHUNG 0x04
2757 #define QUERY_WINDOW_REAL_ID 0x05
2758 #define QUERY_WINDOW_FOREGROUND 0x06
2768 NtUserRealInternalGetMessage(
2778 NtUserRealChildWindowFromPoint(
2785 NtUserRealWaitMessageEx(
2793 CONST RECT
*lprcUpdate
,
2799 NtUserRegisterClassExWOW(
2801 PUNICODE_STRING pustrClassName
,
2802 PUNICODE_STRING pustrCNVersion
,
2803 PCLSMENUNAME pClassMenuName
,
2810 NtUserRegisterRawInputDevices(
2811 IN PCRAWINPUTDEVICE pRawInputDevices
,
2812 IN UINT uiNumDevices
,
2817 NtUserRegisterUserApiHook(
2818 PUNICODE_STRING m_dllname1
,
2819 PUNICODE_STRING m_funname1
,
2825 NtUserRegisterHotKey(
2833 NtUserRegisterTasklist(
2838 NtUserRegisterWindowMessage(
2839 PUNICODE_STRING MessageName
);
2843 NtUserRemoteConnect(
2850 NtUserRemoteRedrawRectangle(
2858 NtUserRemoteRedrawScreen(VOID
);
2862 NtUserRemoteStopScreenUpdates(VOID
);
2872 NtUserResolveDesktop(
2873 IN HANDLE ProcessHandle
,
2874 IN PUNICODE_STRING DesktopPath
,
2876 OUT HWINSTA
* phWinSta
);
2880 NtUserResolveDesktopForWOW(
2897 CONST RECT
*lprcScroll
,
2898 CONST RECT
*lprcClip
,
2904 NtUserScrollWindowEx(
2909 const RECT
*clipRect
,
2923 NtUserSetActiveWindow(
2928 NtUserSetAppImeLevel(
2942 ULONG_PTR dwNewLong
,
2954 NtUserSetClipboardData(
2961 NtUserSetClipboardViewer(
2962 HWND hWndNewViewer
);
2966 NtUserSelectPalette(
2969 BOOL ForceBackground
);
2973 NtUserSetConsoleReserveKeys(
2984 NtUserSetCursorContents(
2986 PICONINFO IconInfo
);
2990 NtUserSetCursorIconData(
2991 _In_ HCURSOR hCursor
,
2992 _In_opt_ PUNICODE_STRING pustrModule
,
2993 _In_opt_ PUNICODE_STRING puSrcName
,
2994 _In_
const CURSORDATA
*pCursorData
);
2996 typedef struct _tagFINDEXISTINGCURICONPARAM
3001 } FINDEXISTINGCURICONPARAM
;
3005 NtUserFindExistingCursorIcon(
3006 _In_ PUNICODE_STRING pustrModule
,
3007 _In_ PUNICODE_STRING pustrRsrc
,
3008 _In_ FINDEXISTINGCURICONPARAM
*param
);
3033 PIMEINFOEX pImeInfoEx
);
3037 NtUserSetImeOwnerWindow(
3043 NtUserSetInformationProcess(
3051 NtUserSetInformationThread(
3052 IN HANDLE ThreadHandle
,
3053 IN USERTHREADINFOCLASS ThreadInformationClass
,
3054 IN PVOID ThreadInformation
,
3055 IN ULONG ThreadInformationLength
);
3059 NtUserSetInternalWindowPos(
3067 NtUserSetKeyboardState(
3072 NtUserSetLayeredWindowAttributes(
3080 NtUserSetLogonNotifyWindow(
3085 NtUserSetObjectInformation(
3088 PVOID pvInformation
,
3095 HWND hWndNewParent
);
3099 NtUserSetProcessWindowStation(
3100 HWINSTA hWindowStation
);
3117 NtUserSetScrollInfo(
3125 NtUserSetShellWindowEx(
3127 HWND hwndShellListView
);
3133 IN CONST INT
*lpaElements
,
3134 IN CONST COLORREF
*lpaRgbValues
,
3139 NtUserSetSystemCursor(
3145 NtUserSetThreadDesktop(
3150 NtUserSetThreadState(
3156 NtUserSetSystemTimer(
3160 TIMERPROC lpTimerFunc
);
3164 NtUserSetThreadLayoutHandles(
3174 TIMERPROC lpTimerFunc
);
3178 NtUserSetWindowFNID(
3184 NtUserSetWindowLong(
3192 NtUserSetWindowPlacement(
3194 WINDOWPLACEMENT
*lpwndpl
);
3200 HWND hWndInsertAfter
,
3216 NtUserSetWindowsHookAW(
3223 NtUserSetWindowsHookEx(
3225 PUNICODE_STRING ModuleName
,
3233 NtUserSetWindowStationUser(
3234 HWINSTA hWindowStation
,
3241 NtUserSetWindowWord(
3248 NtUserSetWinEventHook(
3251 HMODULE hmodWinEventProc
,
3252 PUNICODE_STRING puString
,
3253 WINEVENTPROC lpfnWinEventProc
,
3270 NtUserShowScrollBar(
3283 NtUserShowWindowAsync(
3289 NtUserSoundSentry(VOID
);
3293 NtUserSwitchDesktop(
3298 NtUserSystemParametersInfo(
3306 NtUserTestForInteractiveUser(
3322 NtUserTrackMouseEvent(
3323 LPTRACKMOUSEEVENT lpEventTrack
);
3327 NtUserTranslateAccelerator(
3334 NtUserTranslateMessage(
3340 NtUserUnhookWindowsHookEx(
3345 NtUserUnhookWinEvent(
3346 HWINEVENTHOOK hWinEventHook
);
3350 NtUserUnloadKeyboardLayout(
3355 NtUserUnlockWindowStation(
3356 HWINSTA hWindowStation
);
3360 NtUserUnregisterClass(
3361 PUNICODE_STRING ClassNameOrAtom
,
3362 HINSTANCE hInstance
,
3363 PCLSMENUNAME pClassMenuName
);
3367 NtUserUnregisterHotKey(
3373 NtUserUnregisterUserApiHook(VOID
);
3377 NtUserUpdateInputContext(
3384 NtUserUpdateInstance(
3391 NtUserUpdateLayeredWindow(
3399 BLENDFUNCTION
*pblend
,
3405 NtUserUpdatePerUserSystemParameters(
3411 NtUserUserHandleGrantAccess(
3412 IN HANDLE hUserHandle
,
3418 NtUserValidateHandleSecure(
3426 CONST RECT
*lpRect
);
3430 NtUserValidateTimerCallback(
3444 NtUserWaitForInputIdle(
3446 IN DWORD dwMilliseconds
,
3447 IN BOOL Unknown2
); /* Always FALSE */
3451 NtUserWaitForMsgAndEvent(
3456 NtUserWaitMessage(VOID
);
3460 NtUserWin32PoolAllocationStats(
3470 NtUserWindowFromPoint(
3476 NtUserYieldTask(VOID
);
3479 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3482 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3483 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3484 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3485 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3486 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3487 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3489 #define MSQ_STATE_CAPTURE 0x1
3490 #define MSQ_STATE_ACTIVE 0x2
3491 #define MSQ_STATE_FOCUS 0x3
3492 #define MSQ_STATE_MENUOWNER 0x4
3493 #define MSQ_STATE_MOVESIZE 0x5
3494 #define MSQ_STATE_CARET 0x6
3496 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3497 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3501 NtUserGetMonitorInfo(
3502 IN HMONITOR hMonitor
,
3503 OUT LPMONITORINFO pMonitorInfo
);
3505 /* Should be done in usermode */
3507 /* (other FocusedItem values give the position of the focused item) */
3508 #define NO_SELECTED_ITEM 0xffff
3510 typedef struct tagROSMENUINFO
3512 /* ----------- MENUINFO ----------- */
3518 DWORD dwContextHelpID
;
3519 ULONG_PTR dwMenuData
;
3520 /* ----------- Extra ----------- */
3521 ULONG fFlags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3522 UINT iItem
; /* Currently focused item */
3523 UINT cItems
; /* Number of items in the menu */
3524 WORD cxMenu
; /* Width of the whole menu */
3525 WORD cyMenu
; /* Height of the whole menu */
3527 PWND spwndNotify
; /* window receiving the messages for ownerdraw */
3532 HMENU Self
; /* Handle of this menu */
3533 HWND Wnd
; /* Window containing the menu */
3534 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3535 } ROSMENUINFO
, *PROSMENUINFO
;
3537 typedef struct tagROSMENUITEMINFO
3539 /* ----------- MENUITEMINFOW ----------- */
3546 HBITMAP hbmpChecked
;
3547 HBITMAP hbmpUnchecked
;
3552 /* ----------- Extra ----------- */
3553 RECT Rect
; /* Item area (relative to menu window) */
3554 UINT dxTab
; /* X position of text after Tab */
3555 LPWSTR lpstr
; /* Copy of the text pointer in MenuItem->Text */
3556 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3557 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3561 NtUserMonitorFromPoint(
3567 NtUserMonitorFromRect(
3573 NtUserMonitorFromWindow(
3577 typedef struct _SETSCROLLBARINFO
3581 DWORD rgstate
[CCHILDREN_SCROLLBAR
+ 1];
3582 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3586 NtUserSetScrollBarInfo(
3589 SETSCROLLBARINFO
*info
);
3591 #endif /* __WIN32K_NTUSER_H */