1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
4 typedef struct _PROCESSINFO
*PPROCESSINFO
;
5 typedef struct _THREADINFO
*PTHREADINFO
;
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 PTHREADINFO pti
; /* pointer to Win32ThreadInfo */
25 PPROCESSINFO 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 PPROCESSINFO 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
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
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 PTHREADINFO 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. */
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 #ifdef NEW_CURSORICON
549 struct _CURICON_OBJECT
*spicn
;
550 struct _CURICON_OBJECT
*spcur
;
552 HANDLE hIcon
; /* FIXME - Use pointer! */
553 HANDLE hCursor
; /* FIXME - Use pointer! */
555 HBRUSH hbrBackground
;
556 PWSTR lpszMenuName
; /* kernel use */
557 PSTR lpszAnsiClassName
; /* " */
558 #ifdef NEW_CURSORICON
559 struct _CURICON_OBJECT
*spicnSm
;
561 HANDLE hIconSm
; /* FIXME - Use pointer! */
563 //// ReactOS doesn't support cache icons. */
564 HICON hIconSmIntern
; /* Internal small icon, derived from hIcon */
567 UINT Unicode
:1; // !CSF_ANSIPROC
568 UINT Global
:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
569 UINT MenuNameIsString
:1;
573 typedef struct _SBINFOEX
575 SCROLLBARINFO ScrollBarInfo
;
576 SCROLLINFO ScrollInfo
;
577 } SBINFOEX
, *PSBINFOEX
;
579 /* State Flags !Not Implemented! */
580 #define WNDS_HASMENU 0X00000001
581 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
582 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
583 #define WNDS_HASCAPTION 0X00000008
584 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
585 #define WNDS_MSGBOX 0X00000020
586 #define WNDS_ACTIVEFRAME 0X00000040
587 #define WNDS_HASSPB 0X00000080
588 #define WNDS_NONCPAINT 0X00000100
589 #define WNDS_SENDERASEBACKGROUND 0X00000200
590 #define WNDS_ERASEBACKGROUND 0X00000400
591 #define WNDS_SENDNCPAINT 0X00000800
592 #define WNDS_INTERNALPAINT 0X00001000
593 #define WNDS_UPDATEDIRTY 0X00002000
594 #define WNDS_HIDDENPOPUP 0X00004000
595 #define WNDS_FORCEMENUDRAW 0X00008000
596 #define WNDS_DIALOGWINDOW 0X00010000
597 #define WNDS_HASCREATESTRUCTNAME 0X00020000
598 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */
599 #define WNDS_ANSIWINDOWPROC 0x00080000
600 #define WNDS_BEINGACTIVATED 0x00100000
601 #define WNDS_HASPALETTE 0x00200000
602 #define WNDS_PAINTNOTPROCESSED 0x00400000
603 #define WNDS_SYNCPAINTPENDING 0x00800000
604 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
605 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000
606 #define WNDS_TOGGLETOPMOST 0x04000000
607 #define WNDS_REDRAWIFHUNG 0x08000000
608 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
609 #define WNDS_ANSICREATOR 0x20000000
610 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
611 #define WNDS_DESTROYED 0x80000000
613 #define WNDSACTIVEFRAME 0x00000006
615 /* State2 Flags !Not Implemented! */
616 #define WNDS2_WMPAINTSENT 0X00000001
617 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
618 #define WNDS2_STARTPAINT 0X00000004
619 #define WNDS2_OLDUI 0X00000008
620 #define WNDS2_HASCLIENTEDGE 0X00000010
621 #define WNDS2_BOTTOMMOST 0X00000020
622 #define WNDS2_FULLSCREEN 0X00000040
623 #define WNDS2_INDESTROY 0X00000080
624 #define WNDS2_WIN31COMPAT 0X00000100
625 #define WNDS2_WIN40COMPAT 0X00000200
626 #define WNDS2_WIN50COMPAT 0X00000400
627 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
628 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
629 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
630 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
631 #define WNDS2_HELPBUTTONDOWN 0X00008000
632 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
633 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
634 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
635 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
636 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
637 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
638 #define WNDS2_FORCENCPAINT 0X00400000
639 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
640 #define WNDS2_FULLSCREENMODE 0X01000000
641 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
642 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
643 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
644 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
645 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
648 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
649 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
650 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
651 #define WS_EX2_LINKED 0X00000008
652 #define WS_EX2_LAYEREDFORDWM 0X00000010
653 #define WS_EX2_LAYEREDLIMBO 0X00000020
654 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
655 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
656 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
657 #define WS_EX2_HASOVERLAY 0X00000200
658 #define WS_EX2_CONSOLEWINDOW 0X00000400
659 #define WS_EX2_CHILDNOACTIVATE 0X00000800
661 #define WPF_MININIT 0x0008
662 #define WPF_MAXINIT 0x0010
669 /* Extended style. */
673 /* Handle of the module that created the window. */
676 struct _WND
*spwndNext
;
677 struct _WND
*spwndPrev
;
678 struct _WND
*spwndParent
;
679 struct _WND
*spwndChild
;
680 struct _WND
*spwndOwner
;
684 /* Pointer to the window class. */
687 /* Property list head.*/
688 LIST_ENTRY PropListHead
;
692 /* system menu handle. */
695 /* Window menu handle or window id */
696 UINT IDMenu
; // Use spmenu
701 LARGE_UNICODE_STRING strName
;
702 /* Size of the extra data associated with the window. */
704 struct _WND
*spwndLastActive
;
705 HIMC hImc
; // Input context associated with this window.
708 //PD3DMATRIX pTransForm;
709 struct _WND
*spwndClipboardListener
;
718 UINT flags
; /* WPF_ flags. */
721 UINT Unicode
:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
722 UINT InternalPosInitialized
:1;
723 UINT HideFocus
:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
724 UINT HideAccel
:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
727 PSBINFOEX pSBInfoex
; // convert to PSBINFO
728 /* Entry in the list of thread windows. */
729 LIST_ENTRY ThreadListEntry
;
732 #define PWND_BOTTOM ((PWND)1)
734 typedef struct _SBWND
742 typedef struct _MENUWND
745 PPOPUPMENU ppopupmenu
;
746 } MENUWND
, *PMENUWND
;
748 typedef struct _PFNCLIENT
750 WNDPROC pfnScrollBarWndProc
;
751 WNDPROC pfnTitleWndProc
;
752 WNDPROC pfnMenuWndProc
;
753 WNDPROC pfnDesktopWndProc
;
754 WNDPROC pfnDefWindowProc
;
755 WNDPROC pfnMessageWindowProc
;
756 WNDPROC pfnSwitchWindowProc
;
757 WNDPROC pfnButtonWndProc
;
758 WNDPROC pfnComboBoxWndProc
;
759 WNDPROC pfnComboListBoxProc
;
760 WNDPROC pfnDialogWndProc
;
761 WNDPROC pfnEditWndProc
;
762 WNDPROC pfnListBoxWndProc
;
763 WNDPROC pfnMDIClientWndProc
;
764 WNDPROC pfnStaticWndProc
;
765 WNDPROC pfnImeWndProc
;
766 WNDPROC pfnGhostWndProc
;
767 WNDPROC pfnHkINLPCWPSTRUCT
;
768 WNDPROC pfnHkINLPCWPRETSTRUCT
;
769 WNDPROC pfnDispatchHook
;
770 WNDPROC pfnDispatchDefWindowProc
;
771 WNDPROC pfnDispatchMessage
;
772 WNDPROC pfnMDIActivateDlgProc
;
773 } PFNCLIENT
, *PPFNCLIENT
;
776 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
777 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
781 (CALLBACK
*WNDPROC_EX
)(
788 typedef struct _PFNCLIENTWORKER
790 WNDPROC_EX pfnButtonWndProc
;
791 WNDPROC_EX pfnComboBoxWndProc
;
792 WNDPROC_EX pfnComboListBoxProc
;
793 WNDPROC_EX pfnDialogWndProc
;
794 WNDPROC_EX pfnEditWndProc
;
795 WNDPROC_EX pfnListBoxWndProc
;
796 WNDPROC_EX pfnMDIClientWndProc
;
797 WNDPROC_EX pfnStaticWndProc
;
798 WNDPROC_EX pfnImeWndProc
;
799 WNDPROC_EX pfnGhostWndProc
;
800 WNDPROC_EX pfnCtfHookProc
;
801 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
811 /* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
812 #define FNID_FIRST 0x029A
813 #define FNID_SCROLLBAR 0x029A
814 #define FNID_ICONTITLE 0x029B
815 #define FNID_MENU 0x029C
816 #define FNID_DESKTOP 0x029D
817 #define FNID_DEFWINDOWPROC 0x029E
818 #define FNID_MESSAGEWND 0x029F
819 #define FNID_SWITCH 0x02A0
820 #define FNID_BUTTON 0x02A1
821 #define FNID_COMBOBOX 0x02A2
822 #define FNID_COMBOLBOX 0x02A3
823 #define FNID_DIALOG 0x02A4
824 #define FNID_EDIT 0x02A5
825 #define FNID_LISTBOX 0x02A6
826 #define FNID_MDICLIENT 0x02A7
827 #define FNID_STATIC 0x02A8
828 #define FNID_IME 0x02A9
829 #define FNID_GHOST 0x02AA
830 #define FNID_CALLWNDPROC 0x02AB
831 #define FNID_CALLWNDPROCRET 0x02AC
832 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
833 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
834 #define FNID_MB_DLGPROC 0x02AF
835 #define FNID_MDIACTIVATEDLGPROC 0x02B0
836 #define FNID_SENDMESSAGE 0x02B1
837 #define FNID_SENDMESSAGEFF 0x02B2
838 /* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
839 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
840 #define FNID_SENDMESSAGECALLPROC 0x02B4
841 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
842 #define FNID_TOOLTIPS 0x02B6
843 #define FNID_SENDNOTIFYMESSAGE 0x02B7
844 #define FNID_SENDMESSAGECALLBACK 0x02B8
845 #define FNID_LAST 0x02B9
847 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
848 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
850 #define FNID_DDEML 0x2000 /* Registers DDEML */
851 #define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
852 /* Seen during WM_CREATE on error exit too. */
853 #define FNID_FREED 0x8000 /* Window being Freed... */
855 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
857 #define GETPFNCLIENTA(fnid) \
858 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
859 #define GETPFNCLIENTW(fnid) \
860 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
862 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
864 /* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
865 #define ICLS_BUTTON 0
867 #define ICLS_STATIC 2
868 #define ICLS_LISTBOX 3
869 #define ICLS_SCROLLBAR 4
870 #define ICLS_COMBOBOX 5
871 #define ICLS_MDICLIENT 6
872 #define ICLS_COMBOLBOX 7
873 #define ICLS_DDEMLEVENT 8
874 #define ICLS_DDEMLMOTHER 9
875 #define ICLS_DDEML16BIT 10
876 #define ICLS_DDEMLCLIENTA 11
877 #define ICLS_DDEMLCLIENTW 12
878 #define ICLS_DDEMLSERVERA 13
879 #define ICLS_DDEMLSERVERW 14
881 #define ICLS_GHOST 16
882 #define ICLS_DESKTOP 17
883 #define ICLS_DIALOG 18
885 #define ICLS_SWITCH 20
886 #define ICLS_ICONTITLE 21
887 #define ICLS_TOOLTIPS 22
888 #if (_WIN32_WINNT <= 0x0501)
889 #define ICLS_UNKNOWN 22
890 #define ICLS_NOTUSED 23
892 #define ICLS_SYSSHADOW 23
893 #define ICLS_HWNDMESSAGE 24
894 #define ICLS_NOTUSED 25
898 #define COLOR_LAST COLOR_MENUBAR
899 #define MAX_MB_STRINGS 11
901 #define SRVINFO_DBCSENABLED 0x0002
902 #define SRVINFO_IMM32 0x0004
903 #define SRVINFO_APIHOOK 0x0010
904 #define SRVINFO_METRICS 0x0020
905 #define SRVINFO_KBDPREF 0x0080
907 #define NUM_SYSCOLORS 31
909 typedef struct tagOEMBITMAPINFO
915 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
917 typedef struct tagMBSTRING
922 } MBSTRING
, *PMBSTRING
;
924 typedef struct tagDPISERVERINFO
926 INT gclBorder
; /* 000 */
927 HFONT hCaptionFont
; /* 004 */
928 HFONT hMsgFont
; /* 008 */
929 INT cxMsgFontChar
; /* 00C */
930 INT cyMsgFontChar
; /* 010 */
931 UINT wMaxBtnSize
; /* 014 */
932 } DPISERVERINFO
, *PDPISERVERINFO
;
935 #define PUSIF_PALETTEDISPLAY 0x01
936 #define PUSIF_SNAPTO 0x02
937 #define PUSIF_COMBOBOXANIMATION 0x04
938 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
939 #define PUSIF_KEYBOARDCUES 0x20
941 typedef struct _PERUSERSERVERINFO
943 INT aiSysMet
[SM_CMETRICS
];
944 ULONG argbSystemUnmatched
[NUM_SYSCOLORS
];
945 COLORREF argbSystem
[NUM_SYSCOLORS
];
946 HBRUSH ahbrSystem
[NUM_SYSCOLORS
];
950 DWORD dwLastRITEventTickCount
;
955 UINT ucWheelScrollLines
;
956 UINT ucWheelScrollChars
;
957 INT wMaxLeftOverlapChars
;
958 INT wMaxRightOverlapChars
;
961 TEXTMETRICW tmSysFont
;
962 DPISERVERINFO dpiSystem
;
963 HICON hIconSmWindows
;
966 DWORD dwAsyncKeyCache
;
968 OEMBITMAPINFO oembmi
[93];
977 DWORD dwLastSystemRITEventTickCountUpdate
;
978 ULONG adwDBGTAGFlags
[35];
981 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
983 typedef struct tagSERVERINFO
986 ULONG_PTR cHandleEntries
;
987 PFN_FNID mpFnidPfn
[FNID_NUM
];
988 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
989 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
990 PFNCLIENT apfnClientA
;
991 PFNCLIENT apfnClientW
;
992 PFNCLIENTWORKER apfnClientWorker
;
994 ATOM atomSysClass
[ICLS_NOTUSED
+1];
995 DWORD dwDefaultHeapBase
;
996 DWORD dwDefaultHeapSize
;
998 MBSTRING MBStrings
[MAX_MB_STRINGS
];
1001 ATOM atomContextHelpIdProp
;
1002 ATOM atomFrostedWindowProp
;
1003 CHAR acOemToAnsi
[256];
1004 CHAR acAnsiToOem
[256];
1005 DWORD dwInstalledEventHooks
;
1007 } SERVERINFO
, *PSERVERINFO
;
1010 C_ASSERT(sizeof(SERVERINFO
) <= PAGE_SIZE
);
1014 /* Server event activity bits. */
1015 #define SRV_EVENT_MENU 0x0001
1016 #define SRV_EVENT_END_APPLICATION 0x0002
1017 #define SRV_EVENT_RUNNING 0x0004
1018 #define SRV_EVENT_NAMECHANGE 0x0008
1019 #define SRV_EVENT_VALUECHANGE 0x0010
1020 #define SRV_EVENT_STATECHANGE 0x0020
1021 #define SRV_EVENT_LOCATIONCHANGE 0x0040
1022 #define SRV_EVENT_CREATE 0x8000
1024 typedef struct _PROPLISTITEM
1028 } PROPLISTITEM
, *PPROPLISTITEM
;
1030 typedef struct _PROPERTY
1032 LIST_ENTRY PropListEntry
;
1036 } PROPERTY
, *PPROPERTY
;
1038 typedef struct _BROADCASTPARM
1045 } BROADCASTPARM
, *PBROADCASTPARM
;
1047 PTHREADINFO
GetW32ThreadInfo(VOID
);
1048 PPROCESSINFO
GetW32ProcessInfo(VOID
);
1050 typedef struct _WNDMSG
1056 typedef struct _SHAREDINFO
1058 PSERVERINFO psi
; /* global Server Info */
1059 PVOID aheList
; /* Handle Entry List */
1060 PVOID pDispInfo
; /* global PDISPLAYINFO pointer */
1061 ULONG_PTR ulSharedDelta
; /* Heap delta */
1062 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
1063 WNDMSG DefWindowMsgs
;
1064 WNDMSG DefWindowSpecMsgs
;
1065 } SHAREDINFO
, *PSHAREDINFO
;
1067 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1068 typedef struct _USERCONNECT
1071 ULONG ulCurrentVersion
;
1072 DWORD dwDispatchCount
;
1073 SHAREDINFO siClient
;
1074 } USERCONNECT
, *PUSERCONNECT
;
1076 /* WinNT 5.0 compatible user32 / win32k */
1077 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1079 #if defined(_M_IX86)
1080 C_ASSERT(sizeof(USERCONNECT
) == 0x124);
1083 typedef struct tagGETCLIPBDATA
1092 } GETCLIPBDATA
, *PGETCLIPBDATA
;
1094 typedef struct tagSETCLIPBDATA
1097 BOOL fIncSerialNumber
;
1098 } SETCLIPBDATA
, *PSETCLIPBDATA
;
1100 /* Used with NtUserSetCursorIconData, last parameter. */
1101 typedef struct tagCURSORDATA
1107 ULONG CURSORF_flags
;
1114 HBITMAP hbmUserAlpha
; /* Could be in W7U, not in W2k */
1120 struct tagCURSORDATA
*aspcur
;
1124 } CURSORDATA
, *PCURSORDATA
; /* !dso CURSORDATA */
1126 /* CURSORF_flags: */
1127 #define CURSORF_FROMRESOURCE 0x0001
1128 #define CURSORF_GLOBAL 0x0002
1129 #define CURSORF_LRSHARED 0x0004
1130 #define CURSORF_ACON 0x0008
1131 #define CURSORF_WOWCLEANUP 0x0010
1132 #define CURSORF_ACONFRAME 0x0040
1133 #define CURSORF_SECRET 0x0080
1134 #define CURSORF_LINKED 0x0100
1135 #define CURSORF_CURRENT 0x0200
1137 typedef struct tagIMEINFOEX
1141 WCHAR wszUIClass
[16];
1142 ULONG fdwInitConvMode
;
1145 DWORD dwProdVersion
;
1146 DWORD dwImeWinVersion
;
1147 WCHAR wszImeDescription
[50];
1148 WCHAR wszImeFile
[80];
1151 INT fSysWow64Only
:1;
1154 } IMEINFOEX
, *PIMEINFOEX
;
1156 typedef struct tagIMEUI
1169 UINT fChildThreadDef
:1;
1170 UINT fCtrlShowStatus
:1;
1171 UINT fFreeActiveEvent
:1;
1175 /* Window Extra data container. */
1176 typedef struct _IMEWND
1184 NtUserAssociateInputContext(
1191 NtUserBuildHimcList(
1208 NtUserCheckMenuItem(
1215 NtUserCtxDisplayIOCtl(
1234 NtUserDrawMenuBarTemp(
1243 NtUserEnableMenuItem(
1250 NtUserEndMenu(VOID
);
1254 NtUserGetMenuBarInfo(
1268 NtUserGetMenuItemRect(
1276 NtUserGetSystemMenu(
1282 NtUserHiliteMenuItem(
1290 NtUserMenuItemFromPoint(
1312 NtUserSetMenuContextHelpId(
1314 DWORD dwContextHelpId
);
1318 NtUserSetMenuDefaultItem(
1325 NtUserSetMenuFlagRtoL(
1330 NtUserSetSystemMenu(
1336 NtUserThunkedMenuInfo(
1342 NtUserThunkedMenuItemInfo(
1347 LPMENUITEMINFOW lpmii
,
1348 PUNICODE_STRING lpszCaption
);
1352 NtUserTrackPopupMenuEx(
1362 NtUserActivateKeyboardLayout(
1368 NtUserAlterWindowStyle(
1375 NtUserAttachThreadInput(
1377 IN DWORD idAttachTo
,
1404 NtUserBuildHwndList(
1415 NtUserBuildNameList(
1419 PULONG pRequiredSize
);
1423 NtUserBuildPropList(
1429 /* apfnSimpleCall indices from Windows XP SP 2 */
1430 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1431 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1433 enum SimpleCallRoutines
1435 NOPARAM_ROUTINE_CREATEMENU
,
1436 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1437 #if (WIN32K_VERSION >= NTDDI_VISTA)
1438 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1439 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1440 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1441 NOPARAM_ROUTINE_DESTROY_CARET
,
1443 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1444 #if (WIN32K_VERSION < NTDDI_VISTA)
1445 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1446 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1447 NOPARAM_ROUTINE_DESTROY_CARET
,
1449 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1450 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1451 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1452 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1453 #if (WIN32K_VERSION >= NTDDI_VISTA)
1454 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1456 NOPARAM_ROUTINE_GETREMOTEPROCESSID
,
1458 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1459 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1460 #if (WIN32K_VERSION >= NTDDI_VISTA)
1461 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1462 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1464 NOPARAM_ROUTINE_RELEASECAPTURE
,
1465 NOPARAM_ROUTINE_RESETDBLCLICK
,
1466 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1467 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1468 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1469 NOPARAM_ROUTINE_REMOTELOGOFF
,
1470 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1471 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1472 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1473 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1474 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1475 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1476 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1477 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1478 #if (WIN32K_VERSION >= NTDDI_VISTA)
1479 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1481 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1482 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1483 #if (WIN32K_VERSION < NTDDI_VISTA)
1484 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1486 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1487 #if (WIN32K_VERSION >= NTDDI_VISTA)
1488 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1490 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1491 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1492 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1493 #if (WIN32K_VERSION < NTDDI_VISTA)
1494 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1496 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1497 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1498 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1499 #if (WIN32K_VERSION < NTDDI_VISTA)
1500 ONEPARAM_ROUTINE_GETCURSORPOS
,
1502 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1503 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1504 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1505 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1506 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1507 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1508 #if (WIN32K_VERSION < NTDDI_VISTA)
1509 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1511 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1512 ONEPARAM_ROUTINE_LOADFONTS
,
1513 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1514 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1515 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1516 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1517 #if (WIN32K_VERSION < NTDDI_VISTA)
1518 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1520 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1521 ONEPARAM_ROUTINE_REGISTERLPK
,
1522 #if (WIN32K_VERSION >= NTDDI_VISTA)
1523 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1525 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1526 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1527 ONEPARAM_ROUTINE_RELEASEDC
,
1528 #if (WIN32K_VERSION >= NTDDI_VISTA)
1529 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1531 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1532 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1533 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1534 #if (WIN32K_VERSION < NTDDI_VISTA)
1535 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1537 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1538 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1539 #if (WIN32K_VERSION >= NTDDI_VISTA)
1540 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1542 ONEPARAM_ROUTINE_SHOWCURSOR
,
1543 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1544 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1545 X_ROUTINE_WOWMODULEUNLOAD
,
1546 #if (WIN32K_VERSION < NTDDI_VISTA)
1547 X_ROUTINE_REMOTENOTIFY
,
1549 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1550 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1551 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1552 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1553 HWND_ROUTINE_SETMSGBOX
,
1554 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1555 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1556 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1557 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1558 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1559 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1560 HWNDPARAM_ROUTINE_SETVISIBLE
,
1561 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1562 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1563 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1564 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1565 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1566 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1567 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1568 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1569 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1570 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1571 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1572 HWNDLOCK_ROUTINE_SETSYSMENU
,
1573 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1574 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1575 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1576 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1577 TWOPARAM_ROUTINE_REDRAWTITLE
,
1578 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1579 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1580 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1581 TWOPARAM_ROUTINE_VALIDATERGN
,
1582 #if (WIN32K_VERSION >= NTDDI_VISTA)
1583 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1584 TWOPARAM_ROUTINE_GETCURSORPOS
,
1586 TWOPARAM_ROUTINE_GETHDEVNAME
,
1587 TWOPARAM_ROUTINE_INITANSIOEM
,
1588 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1589 #if (WIN32K_VERSION >= NTDDI_VISTA)
1590 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1592 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1593 #if (WIN32K_VERSION >= NTDDI_VISTA)
1594 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1596 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1598 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1599 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1600 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1601 TWOPARAM_ROUTINE_SETCARETPOS
,
1602 TWOPARAM_ROUTINE_SETCURSORPOS
,
1603 #if (WIN32K_VERSION >= NTDDI_VISTA)
1604 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1606 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1607 TWOPARAM_ROUTINE_WOWCLEANUP
1630 NtUserCallHwndParam(
1637 NtUserCallHwndParamLock(
1644 NtUserCallMsgFilter(
1650 NtUserCallNextHookEx(
1676 NtUserChangeClipboardChain(
1682 NtUserChangeDisplaySettings(
1683 PUNICODE_STRING lpszDeviceName
,
1684 LPDEVMODEW lpDevMode
,
1691 NtUserCheckDesktopByThreadId(
1696 NtUserCheckWindowThreadDesktop(
1703 NtUserCheckImeHotKey(
1708 NtUserChildWindowFromPointEx(
1721 NtUserCloseClipboard(VOID
);
1730 NtUserCloseWindowStation(
1733 /* Console commands for NtUserConsoleControl */
1734 typedef enum _CONSOLECONTROL
1736 GuiConsoleWndClassAtom
,
1737 ConsoleMakePalettePublic
= 5,
1738 ConsoleAcquireDisplayOwnership
,
1739 } CONSOLECONTROL
, *PCONSOLECONTROL
;
1743 NtUserConsoleControl(
1744 IN CONSOLECONTROL ConsoleCtrl
,
1745 IN PVOID ConsoleCtrlInfo
,
1746 IN ULONG ConsoleCtrlInfoLength
);
1750 NtUserConvertMemHandle(
1756 NtUserCopyAcceleratorTable(
1759 ULONG EntriesCount
);
1763 NtUserCountClipboardFormats(VOID
);
1767 NtUserCreateAcceleratorTable(
1769 ULONG EntriesCount
);
1781 NtUserCreateDesktop(
1782 POBJECT_ATTRIBUTES poa
,
1783 PUNICODE_STRING lpszDesktopDevice
,
1786 ACCESS_MASK dwDesiredAccess
);
1790 NtUserCreateInputContext(
1795 NtUserCreateLocalMemHandle(
1803 NtUserCreateWindowEx(
1805 PLARGE_STRING plstrClassName
,
1806 PLARGE_STRING plstrClsVersion
,
1807 PLARGE_STRING plstrWindowName
,
1815 HINSTANCE hInstance
,
1822 NtUserCreateWindowStation(
1823 POBJECT_ATTRIBUTES ObjectAttributes
,
1824 ACCESS_MASK dwDesiredAccess
,
1833 NtUserDdeGetQualityOfService(
1836 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1840 NtUserDdeInitialize(
1849 NtUserDdeSetQualityOfService(
1851 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1852 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1856 NtUserDeferWindowPos(
1859 HWND WndInsertAfter
,
1870 PLARGE_STRING WindowText
);
1874 NtUserDestroyAcceleratorTable(
1879 NtUserDestroyCursor(
1885 NtUserDestroyInputContext(
1890 NtUserDestroyWindow(
1895 NtUserDisableThreadIme(
1900 NtUserDispatchMessage(
1920 NtUserDrawAnimatedRects(
1936 NtUserDrawCaptionTemp(
1942 const PUNICODE_STRING str
,
1945 /* Used with NtUserDrawIconEx, last parameter. */
1946 typedef struct _DRAWICONEXDATA
1952 } DRAWICONEXDATA
, *PDRAWICONEXDATA
;
1964 HBRUSH hbrFlickerFreeDraw
,
1971 NtUserEmptyClipboard(VOID
);
1975 NtUserEnableScrollBar(
1982 NtUserEndDeferWindowPosEx(
1990 CONST PAINTSTRUCT
*lPs
);
1994 NtUserEnumDisplayDevices(
1995 PUNICODE_STRING lpDevice
, /* device name */
1996 DWORD iDevNum
, /* display device */
1997 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1998 DWORD dwFlags
); /* reserved */
2003 NtUserEnumDisplayMonitors(
2006 MONITORENUMPROC lpfnEnum,
2009 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2012 NtUserEnumDisplayMonitors(
2013 OPTIONAL IN HDC hDC
,
2014 OPTIONAL IN LPCRECT pRect
,
2015 OPTIONAL OUT HMONITOR
*hMonitorList
,
2016 OPTIONAL OUT LPRECT monitorRectList
,
2017 OPTIONAL IN DWORD listSize
);
2022 NtUserEnumDisplaySettings(
2023 PUNICODE_STRING lpszDeviceName
,
2025 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
2035 NtUserExcludeUpdateRgn(
2051 HWND hwndChildAfter
,
2052 PUNICODE_STRING ucClassName
,
2053 PUNICODE_STRING ucWindowName
,
2058 NtUserFlashWindowEx(
2059 IN PFLASHWINFO pfwi
);
2063 NtUserGetAltTabInfo(
2079 NtUserGetAppImeLevel(
2084 NtUserGetAsyncKeyState(
2087 _Success_(return != 0)
2088 _At_(pustrName
->Buffer
, _Out_z_bytecap_post_bytecount_(pustrName
->MaximumLength
, return * 2 + 2))
2093 _Inout_ PUNICODE_STRING pustrName
);
2097 NtUserGetCaretBlinkTime(VOID
);
2107 HINSTANCE hInstance
,
2108 PUNICODE_STRING ClassName
,
2110 LPWSTR
*ppszMenuName
,
2117 BOOL Real
, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2118 PUNICODE_STRING ClassName
);
2122 NtUserGetClipboardData(
2124 PGETCLIPBDATA pgcd
);
2128 NtUserGetClipboardFormatName(
2130 LPWSTR lpszFormatName
,
2135 NtUserGetClipboardOwner(VOID
);
2139 NtUserGetClipboardSequenceNumber(VOID
);
2143 NtUserGetClipboardViewer(VOID
);
2147 NtUserGetClipCursor(
2152 NtUserGetComboBoxInfo(
2154 PCOMBOBOXINFO pcbi
);
2158 NtUserGetControlBrush(
2165 NtUserGetControlColor(
2180 NtUserGetCursorFrameInfo(
2188 NtUserGetCursorInfo(
2205 NtUserGetDoubleClickTime(VOID
);
2209 NtUserGetForegroundWindow(VOID
);
2213 NtUserGetGuiResources(
2219 NtUserGetGUIThreadInfo(
2221 LPGUITHREADINFO lpgui
);
2223 _Success_(return != FALSE
)
2227 _In_ HANDLE hCurIcon
,
2228 _Out_opt_ PICONINFO IconInfo
,
2229 _Inout_opt_ PUNICODE_STRING lpInstName
,
2230 _Inout_opt_ PUNICODE_STRING lpResName
,
2231 _Out_opt_ LPDWORD pbpp
,
2232 _In_ BOOL bInternal
);
2253 PIMEINFOEX pImeInfoEx
,
2258 NtUserGetInternalWindowPos(
2265 NtUserGetKeyboardLayout(
2270 NtUserGetKeyboardLayoutList(
2276 NtUserGetKeyboardLayoutName(
2281 NtUserGetKeyboardState(
2286 NtUserGetKeyboardType(
2291 NtUserGetKeyNameText(
2303 NtUserGetLayeredWindowAttributes(
2311 NtUserGetListBoxInfo(
2324 NtUserGetMouseMovePointsEx(
2326 LPMOUSEMOVEPOINT lppt
,
2327 LPMOUSEMOVEPOINT lpptBuf
,
2333 NtUserGetObjectInformation(
2336 PVOID pvInformation
,
2338 PDWORD nLengthNeeded
);
2342 NtUserGetOpenClipboardWindow(VOID
);
2346 NtUserGetPriorityClipboardFormat(
2347 UINT
*paFormatPriorityList
,
2352 NtUserGetProcessWindowStation(VOID
);
2356 NtUserGetRawInputBuffer(
2363 NtUserGetRawInputData(
2364 HRAWINPUT hRawInput
,
2372 NtUserGetRawInputDeviceInfo(
2380 NtUserGetRawInputDeviceList(
2381 PRAWINPUTDEVICELIST pRawInputDeviceList
,
2382 PUINT puiNumDevices
,
2387 NtUserGetRegisteredRawInputDevices(
2388 PRAWINPUTDEVICE pRawInputDevices
,
2389 PUINT puiNumDevices
,
2394 NtUserGetScrollBarInfo(
2397 PSCROLLBARINFO psbi
);
2401 NtUserGetThreadDesktop(
2405 enum ThreadStateRoutines
2407 THREADSTATE_GETTHREADINFO
,
2408 THREADSTATE_INSENDMESSAGE
,
2409 THREADSTATE_FOCUSWINDOW
,
2410 THREADSTATE_ACTIVEWINDOW
,
2411 THREADSTATE_CAPTUREWINDOW
,
2412 THREADSTATE_PROGMANWINDOW
,
2413 THREADSTATE_TASKMANWINDOW
,
2414 THREADSTATE_GETMESSAGETIME
,
2415 THREADSTATE_GETINPUTSTATE
,
2416 THREADSTATE_UPTIMELASTREAD
,
2417 THREADSTATE_FOREGROUNDTHREAD
,
2418 THREADSTATE_GETCURSOR
,
2419 THREADSTATE_GETMESSAGEEXTRAINFO
2424 NtUserGetThreadState(
2429 NtUserGetTitleBarInfo(
2435 NtUserGetUpdateRect(
2454 NtUserGetWindowPlacement(
2456 WINDOWPLACEMENT
*lpwndpl
);
2461 HINSTANCE hInstance
,
2462 PUNICODE_STRING ClassName
);
2466 NtUserHardErrorControl(
2473 NtUserImpersonateDdeClientWindow(
2481 HANDLE hPowerRequestEvent
,
2482 HANDLE hMediaRequestEvent
);
2486 NtUserInitializeClientPfnArrays(
2487 PPFNCLIENT pfnClientA
,
2488 PPFNCLIENT pfnClientW
,
2489 PPFNCLIENTWORKER pfnClientWorker
,
2490 HINSTANCE hmodUser
);
2510 NtUserInternalGetWindowText(
2517 NtUserInvalidateRect(
2524 NtUserInvalidateRgn(
2531 NtUserIsClipboardFormatAvailable(
2542 NtUserLoadKeyboardLayoutEx(
2545 IN PUNICODE_STRING puszKeyboardName
,
2547 IN PUNICODE_STRING puszKLID
,
2553 NtUserLockWindowStation(
2554 HWINSTA hWindowStation
);
2558 NtUserLockWindowUpdate(
2563 NtUserLockWorkStation(VOID
);
2567 NtUserMapVirtualKeyEx(
2573 typedef struct tagDOSENDMESSAGE
2579 DOSENDMESSAGE
, *PDOSENDMESSAGE
;
2588 ULONG_PTR ResultInfo
,
2589 DWORD dwType
, /* FNID_XX types */
2596 UINT cmd
, /* Wine SW_ commands */
2601 NtUserMNDragLeave(VOID
);
2611 NtUserModifyUserStartupInfoFlags(
2628 NtUserNotifyIMEStatus(
2635 NtUserNotifyProcessCreate(
2636 HANDLE NewProcessId
,
2637 HANDLE ParentThreadId
,
2643 NtUserNotifyWinEvent(
2651 NtUserOpenClipboard(
2658 POBJECT_ATTRIBUTES ObjectAttributes
,
2660 ACCESS_MASK dwDesiredAccess
);
2664 NtUserOpenInputDesktop(
2667 ACCESS_MASK dwDesiredAccess
);
2671 NtUserOpenWindowStation(
2672 POBJECT_ATTRIBUTES ObjectAttributes
,
2673 ACCESS_MASK dwDesiredAccess
);
2709 NtUserPostThreadMessage(
2724 NtUserProcessConnect(
2725 IN HANDLE ProcessHandle
,
2726 OUT PUSERCONNECT pUserConnect
,
2727 IN ULONG Size
); /* sizeof(USERCONNECT) */
2731 NtUserQueryInformationThread(
2732 IN HANDLE ThreadHandle
,
2733 IN USERTHREADINFOCLASS ThreadInformationClass
,
2734 OUT PVOID ThreadInformation
,
2735 IN ULONG ThreadInformationLength
);
2739 NtUserQueryInputContext(
2745 NtUserQuerySendMessage(
2750 NtUserQueryUserCounters(
2757 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2758 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2759 #define QUERY_WINDOW_ACTIVE 0x02
2760 #define QUERY_WINDOW_FOCUS 0x03
2761 #define QUERY_WINDOW_ISHUNG 0x04
2762 #define QUERY_WINDOW_REAL_ID 0x05
2763 #define QUERY_WINDOW_FOREGROUND 0x06
2773 NtUserRealInternalGetMessage(
2783 NtUserRealChildWindowFromPoint(
2790 NtUserRealWaitMessageEx(
2798 CONST RECT
*lprcUpdate
,
2804 NtUserRegisterClassExWOW(
2806 PUNICODE_STRING pustrClassName
,
2807 PUNICODE_STRING pustrCNVersion
,
2808 PCLSMENUNAME pClassMenuName
,
2815 NtUserRegisterRawInputDevices(
2816 IN PCRAWINPUTDEVICE pRawInputDevices
,
2817 IN UINT uiNumDevices
,
2822 NtUserRegisterUserApiHook(
2823 PUNICODE_STRING m_dllname1
,
2824 PUNICODE_STRING m_funname1
,
2830 NtUserRegisterHotKey(
2838 NtUserRegisterTasklist(
2843 NtUserRegisterWindowMessage(
2844 PUNICODE_STRING MessageName
);
2848 NtUserRemoteConnect(
2855 NtUserRemoteRedrawRectangle(
2863 NtUserRemoteRedrawScreen(VOID
);
2867 NtUserRemoteStopScreenUpdates(VOID
);
2877 NtUserResolveDesktop(
2885 NtUserResolveDesktopForWOW(
2902 CONST RECT
*lprcScroll
,
2903 CONST RECT
*lprcClip
,
2909 NtUserScrollWindowEx(
2914 const RECT
*clipRect
,
2928 NtUserSetActiveWindow(
2933 NtUserSetAppImeLevel(
2947 ULONG_PTR dwNewLong
,
2959 NtUserSetClipboardData(
2966 NtUserSetClipboardViewer(
2967 HWND hWndNewViewer
);
2971 NtUserSelectPalette(
2974 BOOL ForceBackground
);
2978 NtUserSetConsoleReserveKeys(
2989 NtUserSetCursorContents(
2991 PICONINFO IconInfo
);
2993 #ifdef NEW_CURSORICON
2997 NtUserSetCursorIconData(
2998 _In_ HCURSOR hCursor
,
2999 _In_ PUNICODE_STRING pustrModule
,
3000 _In_ PUNICODE_STRING puSrcName
,
3001 _In_
const CURSORDATA
*pCursorData
);
3003 typedef struct _tagFINDEXISTINGCURICONPARAM
3008 } FINDEXISTINGCURICONPARAM
;
3012 NtUserFindExistingCursorIcon(
3013 _In_ PUNICODE_STRING pustrModule
,
3014 _In_ PUNICODE_STRING pustrRsrc
,
3015 _In_ FINDEXISTINGCURICONPARAM
*param
);
3017 #else /* NEW_CURSORICON */
3021 NtUserSetCursorIconData(
3031 NtUserFindExistingCursorIcon(
3037 #endif /* NEW_CURSORICON */
3062 PIMEINFOEX pImeInfoEx
);
3066 NtUserSetImeOwnerWindow(
3072 NtUserSetInformationProcess(
3080 NtUserSetInformationThread(
3081 IN HANDLE ThreadHandle
,
3082 IN USERTHREADINFOCLASS ThreadInformationClass
,
3083 IN PVOID ThreadInformation
,
3084 IN ULONG ThreadInformationLength
);
3088 NtUserSetInternalWindowPos(
3096 NtUserSetKeyboardState(
3101 NtUserSetLayeredWindowAttributes(
3109 NtUserSetLogonNotifyWindow(
3114 NtUserSetObjectInformation(
3117 PVOID pvInformation
,
3124 HWND hWndNewParent
);
3128 NtUserSetProcessWindowStation(
3129 HWINSTA hWindowStation
);
3146 NtUserSetScrollInfo(
3154 NtUserSetShellWindowEx(
3156 HWND hwndShellListView
);
3162 IN CONST INT
*lpaElements
,
3163 IN CONST COLORREF
*lpaRgbValues
,
3168 NtUserSetSystemCursor(
3174 NtUserSetThreadDesktop(
3179 NtUserSetThreadState(
3185 NtUserSetSystemTimer(
3189 TIMERPROC lpTimerFunc
);
3193 NtUserSetThreadLayoutHandles(
3203 TIMERPROC lpTimerFunc
);
3207 NtUserSetWindowFNID(
3213 NtUserSetWindowLong(
3221 NtUserSetWindowPlacement(
3223 WINDOWPLACEMENT
*lpwndpl
);
3229 HWND hWndInsertAfter
,
3245 NtUserSetWindowsHookAW(
3252 NtUserSetWindowsHookEx(
3254 PUNICODE_STRING ModuleName
,
3262 NtUserSetWindowStationUser(
3263 HWINSTA hWindowStation
,
3270 NtUserSetWindowWord(
3277 NtUserSetWinEventHook(
3280 HMODULE hmodWinEventProc
,
3281 PUNICODE_STRING puString
,
3282 WINEVENTPROC lpfnWinEventProc
,
3299 NtUserShowScrollBar(
3312 NtUserShowWindowAsync(
3318 NtUserSoundSentry(VOID
);
3322 NtUserSwitchDesktop(
3327 NtUserSystemParametersInfo(
3335 NtUserTestForInteractiveUser(
3351 NtUserTrackMouseEvent(
3352 LPTRACKMOUSEEVENT lpEventTrack
);
3356 NtUserTranslateAccelerator(
3363 NtUserTranslateMessage(
3369 NtUserUnhookWindowsHookEx(
3374 NtUserUnhookWinEvent(
3375 HWINEVENTHOOK hWinEventHook
);
3379 NtUserUnloadKeyboardLayout(
3384 NtUserUnlockWindowStation(
3385 HWINSTA hWindowStation
);
3389 NtUserUnregisterClass(
3390 PUNICODE_STRING ClassNameOrAtom
,
3391 HINSTANCE hInstance
,
3392 PCLSMENUNAME pClassMenuName
);
3396 NtUserUnregisterHotKey(
3402 NtUserUnregisterUserApiHook(VOID
);
3406 NtUserUpdateInputContext(
3413 NtUserUpdateInstance(
3420 NtUserUpdateLayeredWindow(
3428 BLENDFUNCTION
*pblend
,
3434 NtUserUpdatePerUserSystemParameters(
3440 NtUserUserHandleGrantAccess(
3441 IN HANDLE hUserHandle
,
3447 NtUserValidateHandleSecure(
3455 CONST RECT
*lpRect
);
3459 NtUserValidateTimerCallback(
3473 NtUserWaitForInputIdle(
3475 IN DWORD dwMilliseconds
,
3476 IN BOOL Unknown2
); /* Always FALSE */
3480 NtUserWaitForMsgAndEvent(
3485 NtUserWaitMessage(VOID
);
3489 NtUserWin32PoolAllocationStats(
3499 NtUserWindowFromPoint(
3505 NtUserYieldTask(VOID
);
3508 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3511 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3512 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3513 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3514 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3515 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3516 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3518 #define MSQ_STATE_CAPTURE 0x1
3519 #define MSQ_STATE_ACTIVE 0x2
3520 #define MSQ_STATE_FOCUS 0x3
3521 #define MSQ_STATE_MENUOWNER 0x4
3522 #define MSQ_STATE_MOVESIZE 0x5
3523 #define MSQ_STATE_CARET 0x6
3525 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3526 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3530 NtUserGetMonitorInfo(
3531 IN HMONITOR hMonitor
,
3532 OUT LPMONITORINFO pMonitorInfo
);
3534 /* Should be done in usermode */
3536 /* (other FocusedItem values give the position of the focused item) */
3537 #define NO_SELECTED_ITEM 0xffff
3539 typedef struct tagROSMENUINFO
3541 /* ----------- MENUINFO ----------- */
3547 DWORD dwContextHelpID
;
3548 ULONG_PTR dwMenuData
;
3549 /* ----------- Extra ----------- */
3550 ULONG fFlags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3551 UINT iItem
; /* Currently focused item */
3552 UINT cItems
; /* Number of items in the menu */
3553 WORD cxMenu
; /* Width of the whole menu */
3554 WORD cyMenu
; /* Height of the whole menu */
3556 PWND spwndNotify
; /* window receiving the messages for ownerdraw */
3561 HMENU Self
; /* Handle of this menu */
3562 HWND Wnd
; /* Window containing the menu */
3563 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3564 } ROSMENUINFO
, *PROSMENUINFO
;
3566 typedef struct tagROSMENUITEMINFO
3568 /* ----------- MENUITEMINFOW ----------- */
3575 HBITMAP hbmpChecked
;
3576 HBITMAP hbmpUnchecked
;
3581 /* ----------- Extra ----------- */
3582 RECT Rect
; /* Item area (relative to menu window) */
3583 UINT dxTab
; /* X position of text after Tab */
3584 LPWSTR lpstr
; /* Copy of the text pointer in MenuItem->Text */
3585 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3586 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3590 NtUserMonitorFromPoint(
3596 NtUserMonitorFromRect(
3602 NtUserMonitorFromWindow(
3606 typedef struct _SETSCROLLBARINFO
3610 DWORD rgstate
[CCHILDREN_SCROLLBAR
+ 1];
3611 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3615 NtUserSetScrollBarInfo(
3618 SETSCROLLBARINFO
*info
);
3620 #endif /* __WIN32K_NTUSER_H */