1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
4 typedef struct _PROCESSINFO
*PPROCESSINFO
;
5 typedef struct _THREADINFO
*PTHREADINFO
;
10 #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
11 #define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
13 #define HANDLEENTRY_INDESTROY 1
15 typedef struct _USER_HANDLE_ENTRY
17 void *ptr
; /* pointer to object */
21 PTHREADINFO pti
; // pointer to Win32ThreadInfo
22 PPROCESSINFO ppi
; // pointer to W32ProcessInfo
24 unsigned char type
; /* object type (0 if free) */
26 unsigned short generation
; /* generation counter */
27 } USER_HANDLE_ENTRY
, * PUSER_HANDLE_ENTRY
;
29 typedef struct _USER_HANDLE_TABLE
31 PUSER_HANDLE_ENTRY handles
;
32 PUSER_HANDLE_ENTRY freelist
;
34 int allocated_handles
;
35 } USER_HANDLE_TABLE
, * PUSER_HANDLE_TABLE
;
37 typedef enum _HANDLE_TYPE
43 TYPE_SETWINDOWPOS
= 4,
54 TYPE_WINEVENTHOOK
= 15,
56 TYPE_INPUTCONTEXT
= 17,
59 TYPE_TOUCHINPUTINFO
= 20,
60 TYPE_GESTUREINFOOBJ
= 21,
63 } HANDLE_TYPE
, *PHANDLE_TYPE
;
65 typedef enum _USERTHREADINFOCLASS
67 UserThreadShutdownInformation
,
70 UserThreadWOWInformation
,
72 UserThreadInitiateShutdown
,
73 UserThreadEndShutdown
,
74 UserThreadUseActiveDesktop
,
76 UserThreadRestoreDesktop
,
78 } USERTHREADINFOCLASS
;
80 typedef struct _LARGE_UNICODE_STRING
83 ULONG MaximumLength
:31;
86 } LARGE_UNICODE_STRING
, *PLARGE_UNICODE_STRING
;
88 typedef struct _LARGE_STRING
91 ULONG MaximumLength
:31;
94 } LARGE_STRING
, *PLARGE_STRING
;
96 // Based on ANSI_STRING
98 typedef struct _LARGE_ANSI_STRING
101 ULONG MaximumLength
:31;
104 } LARGE_ANSI_STRING
, *PLARGE_ANSI_STRING
;
106 VOID NTAPI
RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING
,IN PCSZ
,IN INT
);
107 VOID NTAPI
RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING
,IN PCWSTR
,IN INT
);
108 BOOL NTAPI
RtlLargeStringToUnicodeString( PUNICODE_STRING
, PLARGE_STRING
);
110 #define NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1)
112 typedef struct _DESKTOPINFO
115 PVOID pvDesktopLimit
;
118 LIST_ENTRY aphkStart
[NB_HOOKS
];
123 struct _WND
* spwndShell
;
125 PPROCESSINFO ppiShellProcess
;
132 UINT LastInputWasKbd
: 1;
136 WCHAR szDesktopName
[1];
137 } DESKTOPINFO
, *PDESKTOPINFO
;
139 #define CTI_THREADSYSLOCK 0x0001
140 #define CTI_INSENDMESSAGE 0x0002
142 typedef struct _CLIENTTHREADINFO
147 WORD fsWakeBitsJournal
;
149 ULONG tickLastMsgChecked
;
151 } CLIENTTHREADINFO
, *PCLIENTTHREADINFO
;
159 typedef struct _THROBJHEAD
163 } THROBJHEAD
, *PTHROBJHEAD
;
165 typedef struct _THRDESKHEAD
168 struct _DESKTOP
*rpdesk
;
170 } THRDESKHEAD
, *PTHRDESKHEAD
;
172 typedef struct _PROCDESKHEAD
176 struct _DESKTOP
*rpdesk
;
178 } PROCDESKHEAD
, *PPROCDESKHEAD
;
180 typedef struct _PROCMARKHEAD
185 } PROCMARKHEAD
, *PPROCMARKHEAD
;
187 #define UserHMGetHandle(obj) ((obj)->head.h)
189 /* Window Client Information structure */
192 #define WEF_SETBYWNDPTI 0x0001
194 typedef struct tagHOOK
197 struct tagHOOK
*phkNext
; /* This is for user space. */
198 int HookId
; /* Hook table index */
200 ULONG flags
; /* Some internal flags */
202 PTHREADINFO ptiHooked
;
203 struct _DESKTOP
*rpdesk
;
205 LIST_ENTRY Chain
; /* Hook chain entry */
206 HOOKPROC Proc
; /* Hook function */
207 BOOLEAN Ansi
; /* Is it an Ansi hook? */
208 UNICODE_STRING ModuleName
; /* Module name for global hooks */
211 typedef struct tagCLIPBOARDDATA
216 } CLIPBOARDDATA
, *PCLIPBOARDDATA
;
218 /* THREADINFO Flags */
219 #define TIF_INCLEANUP 0x00000001
220 #define TIF_16BIT 0x00000002
221 #define TIF_SYSTEMTHREAD 0x00000004
222 #define TIF_CSRSSTHREAD 0x00000008
223 #define TIF_TRACKRECTVISIBLE 0x00000010
224 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
225 #define TIF_DONTATTACHQUEUE 0x00000040
226 #define TIF_DONTJOURNALATTACH 0x00000080
227 #define TIF_WOW64 0x00000100
228 #define TIF_INACTIVATEAPPMSG 0x00000200
229 #define TIF_SPINNING 0x00000400
230 #define TIF_PALETTEAWARE 0x00000800
231 #define TIF_SHAREDWOW 0x00001000
232 #define TIF_FIRSTIDLE 0x00002000
233 #define TIF_WAITFORINPUTIDLE 0x00004000
234 #define TIF_MOVESIZETRACKING 0x00008000
235 #define TIF_VDMAPP 0x00010000
236 #define TIF_DOSEMULATOR 0x00020000
237 #define TIF_GLOBALHOOKER 0x00040000
238 #define TIF_DELAYEDEVENT 0x00080000
239 #define TIF_MSGPOSCHANGED 0x00100000
240 #define TIF_SHUTDOWNCOMPLETE 0x00200000
241 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
242 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
243 #define TIF_GUITHREADINITIALIZED 0x02000000
244 #define TIF_DISABLEIME 0x04000000
245 #define TIF_INGETTEXTLENGTH 0x08000000
246 #define TIF_ANSILENGTH 0x10000000
247 #define TIF_DISABLEHOOKS 0x20000000
249 typedef struct _CALLBACKWND
254 } CALLBACKWND
, *PCALLBACKWND
;
256 #define CI_TRANSACTION 0x00000001
257 #define CI_QUEUEMSG 0x00000002
258 #define CI_WOW 0x00000004
259 #define CI_INITTHREAD 0x00000008
260 #define CI_CURTHPRHOOK 0x00000010
261 #define CI_CLASSESREGISTERED 0x00000020
262 #define CI_IMMACTIVATE 0x00000040
264 typedef struct _CLIENTINFO
270 DWORD dwCompatFlags2
;
271 DWORD dwTIFlags
; // ThreadInfo TIF_Xxx flags for User space.
272 PDESKTOPINFO pDeskInfo
;
273 ULONG_PTR ulClientDelta
;
276 CALLBACKWND CallbackWnd
;
278 INT cInDDEMLCallback
;
279 PCLIENTTHREADINFO pClientThreadInfo
;
280 ULONG_PTR dwHookData
;
283 DWORD dwAsyncKeyCache
;
284 BYTE afAsyncKeyState
[8];
285 BYTE afAsyncKeyStateRecentDow
[8];
290 LPDWORD lpdwRegisteredClasses
;
291 ULONG Win32ClientInfo3
[26];
292 /* It's just a pointer reference not to be used w the structure in user space. */
294 } CLIENTINFO
, *PCLIENTINFO
;
296 /* Make sure it fits into the TEB */
297 C_ASSERT(sizeof(CLIENTINFO
) <= sizeof(((PTEB
)0)->Win32ClientInfo
));
299 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
301 #define HRGN_NULL ( (HRGN) 0) // NULL empty region
302 #define HRGN_WINDOW ( (HRGN) 1) // region from window rcWindow
303 #define HRGN_MONITOR ( (HRGN) 2) // region from monitor region.
305 /* Menu Item fType. */
306 #define MFT_RTOL 0x6000
308 /* Menu Item fState. */
309 #define MFS_HBMMENUBMP 0x20000000
311 typedef struct tagITEM
316 struct tagMENU
* spSubMenu
; /* Pop-up menu. */
318 HANDLE hbmpUnchecked
;
319 USHORT
* Xlpstr
; /* Item text pointer. */
321 DWORD_PTR dwItemData
;
322 ULONG xItem
; /* Item position. left */
323 ULONG yItem
; /* " top */
324 ULONG cxItem
; /* Item Size Width */
325 ULONG cyItem
; /* " Height */
326 ULONG dxTab
; /* X position of text after Tab */
327 ULONG ulX
; /* underline.. start position */
328 ULONG ulWidth
; /* underline.. width */
329 HBITMAP hbmp
; /* bitmap */
330 INT cxBmp
; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
331 INT cyBmp
; /* Height " */
333 UNICODE_STRING lpstr
;
336 typedef struct tagMENULIST
338 struct tagMENULIST
* pNext
;
339 struct tagMENU
* pMenu
;
340 } MENULIST
, *PMENULIST
;
342 /* Menu fFlags, upper byte is MNS_X style flags. */
343 #define MNF_POPUP 0x0001
344 #define MNF_UNDERLINE 0x0004
345 #define MNF_INACTIVE 0x0010
346 #define MNF_RTOL 0x0020
347 #define MNF_DESKTOPMN 0x0040
348 #define MNF_SYSDESKMN 0x0080
349 #define MNF_SYSSUBMENU 0x0100
351 #define MNF_SYSMENU 0x0200
353 typedef struct tagMENU
356 ULONG fFlags
; /* [Style flags | Menu flags] */
357 INT iItem
; /* nPos of selected item, if -1 not selected. AKA focused item */
358 UINT cAlloced
; /* Number of allocated items. Inc's of 8 */
359 UINT cItems
; /* Number of items in the menu */
360 ULONG cxMenu
; /* Width of the whole menu */
361 ULONG cyMenu
; /* Height of the whole menu */
362 ULONG cxTextAlign
; /* Offset of text when items have both bitmaps and text */
363 struct _WND
*spwndNotify
; /* window receiving the messages for ownerdraw */
364 PITEM rgItems
; /* Array of menu items */
365 struct tagMENULIST
* pParentMenus
; /* If this is SubMenu, list of parents. */
366 DWORD dwContextHelpId
;
367 ULONG cyMax
; /* max height of the whole menu, 0 is screen height */
368 DWORD_PTR dwMenuData
; /* application defined value */
369 HBRUSH hbrBack
; /* brush for menu background */
370 INT iTop
; /* Current scroll position Top */
371 INT iMaxTop
; /* Current scroll position Max Top */
372 DWORD dwArrowsOn
:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
374 LIST_ENTRY ListEntry
;
375 HWND hWnd
; /* Window containing the menu, use POPUPMENU */
379 typedef struct tagPOPUPMENU
384 ULONG fIsTrackPopup
:1;
385 ULONG fDroppedLeft
:1;
386 ULONG fHierarchyDropped
:1;
387 ULONG fRightButton
:1;
389 ULONG fSynchronous
:1;
391 ULONG fDropNextPopup
:1;
393 ULONG fAboutToHide
:1;
397 ULONG fDelayedFree
:1;
398 ULONG fFlushDelayedFree
:1;
401 ULONG fTrackMouseEvent
:1;
404 // ULONG fDesktopMenu:1;
406 ULONG fUseMonitorRect
:1;
407 struct _WND
*spwndNotify
;
408 struct _WND
*spwndPopupMenu
;
409 struct _WND
*spwndNextPopup
;
410 struct _WND
*spwndPrevPopup
;
412 PMENU spmenuAlternate
;
413 struct _WND
*spwndActivePopup
;
414 struct tagPOPUPMENU
*ppopupmenuRoot
;
415 struct tagPOPUPMENU
*ppmDelayedFree
;
416 UINT posSelectedItem
;
418 } POPUPMENU
, *PPOPUPMENU
;
421 typedef struct _REGISTER_SYSCLASS
423 /* This is a reactos specific class used to initialize the
424 system window classes during user32 initialization */
433 } REGISTER_SYSCLASS
, *PREGISTER_SYSCLASS
;
435 typedef struct _CLSMENUNAME
437 LPSTR pszClientAnsiMenuName
;
438 LPWSTR pwszClientUnicodeMenuName
;
439 PUNICODE_STRING pusMenuName
;
440 } CLSMENUNAME
, *PCLSMENUNAME
;
442 typedef struct tagSBDATA
450 typedef struct tagSBINFO
457 typedef struct tagSBCALC
479 UserGetCPDA2U
= 0x01, // " Unicode "
480 UserGetCPDU2A
= 0X02, // " Ansi "
481 UserGetCPDClass
= 0X10,
482 UserGetCPDWindow
= 0X20,
483 UserGetCPDDialog
= 0X40,
484 UserGetCPDWndtoCls
= 0X80
487 typedef struct _CALLPROCDATA
490 struct _CALLPROCDATA
*spcpdNext
;
491 WNDPROC pfnClientPrevious
;
493 } CALLPROCDATA
, *PCALLPROCDATA
;
495 #define CSF_SERVERSIDEPROC 0x0001
496 #define CSF_ANSIPROC 0x0002
497 #define CSF_WOWDEFERDESTROY 0x0004
498 #define CSF_SYSTEMCLASS 0x0008
499 #define CSF_WOWCLASS 0x0010
500 #define CSF_WOWEXTRA 0x0020
501 #define CSF_CACHEDSMICON 0x0040
502 #define CSF_WIN40COMPAT 0x0080
506 struct _CLS
*pclsNext
;
507 RTL_ATOM atomClassName
;
508 ATOM atomNVClassName
;
510 struct _DESKTOP
*rpdeskParent
;
513 PSTR lpszClientAnsiMenuName
; // For client use
514 PWSTR lpszClientUnicodeMenuName
; // " " "
515 PCALLPROCDATA spcpdFirst
;
516 struct _CLS
*pclsBase
;
517 struct _CLS
*pclsClone
;
518 ULONG cWndReferenceCount
;
524 #ifdef NEW_CURSORICON
525 struct _CURICON_OBJECT
* spicn
;
526 struct _CURICON_OBJECT
* spcur
;
528 HANDLE hIcon
; /* FIXME - Use pointer! */
529 HANDLE hCursor
; /* FIXME - Use pointer! */
531 HBRUSH hbrBackground
;
532 PWSTR lpszMenuName
; // kernel use
533 PSTR lpszAnsiClassName
; // "
534 #ifdef NEW_CURSORICON
535 struct _CURICON_OBJECT
* spicnSm
;
537 HANDLE hIconSm
; /* FIXME - Use pointer! */
539 //// ReactOS dosn't suppot cache icons.
540 HICON hIconSmIntern
; /* Internal small icon, derived from hIcon */
543 UINT Unicode
: 1; // !CSF_ANSIPROC
544 UINT Global
: 1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
545 UINT MenuNameIsString
: 1;
550 typedef struct _SBINFOEX
552 SCROLLBARINFO ScrollBarInfo
;
553 SCROLLINFO ScrollInfo
;
554 } SBINFOEX
, *PSBINFOEX
;
556 // State Flags !Not Implemented!
557 #define WNDS_HASMENU 0X00000001
558 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
559 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
560 #define WNDS_HASCAPTION 0X00000008
561 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
562 #define WNDS_MSGBOX 0X00000020
563 #define WNDS_ACTIVEFRAME 0X00000040
564 #define WNDS_HASSPB 0X00000080
565 #define WNDS_NONCPAINT 0X00000100
566 #define WNDS_SENDERASEBACKGROUND 0X00000200
567 #define WNDS_ERASEBACKGROUND 0X00000400
568 #define WNDS_SENDNCPAINT 0X00000800
569 #define WNDS_INTERNALPAINT 0X00001000
570 #define WNDS_UPDATEDIRTY 0X00002000
571 #define WNDS_HIDDENPOPUP 0X00004000
572 #define WNDS_FORCEMENUDRAW 0X00008000
573 #define WNDS_DIALOGWINDOW 0X00010000
574 #define WNDS_HASCREATESTRUCTNAME 0X00020000
575 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
576 #define WNDS_ANSIWINDOWPROC 0x00080000
577 #define WNDS_BEINGACTIVATED 0x00100000
578 #define WNDS_HASPALETTE 0x00200000
579 #define WNDS_PAINTNOTPROCESSED 0x00400000
580 #define WNDS_SYNCPAINTPENDING 0x00800000
581 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
582 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000
583 #define WNDS_TOGGLETOPMOST 0x04000000
584 #define WNDS_REDRAWIFHUNG 0x08000000
585 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
586 #define WNDS_ANSICREATOR 0x20000000
587 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
588 #define WNDS_DESTROYED 0x80000000
590 #define WNDSACTIVEFRAME 0x00000006
592 // State2 Flags !Not Implemented!
593 #define WNDS2_WMPAINTSENT 0X00000001
594 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
595 #define WNDS2_STARTPAINT 0X00000004
596 #define WNDS2_OLDUI 0X00000008
597 #define WNDS2_HASCLIENTEDGE 0X00000010
598 #define WNDS2_BOTTOMMOST 0X00000020
599 #define WNDS2_FULLSCREEN 0X00000040
600 #define WNDS2_INDESTROY 0X00000080
601 #define WNDS2_WIN31COMPAT 0X00000100
602 #define WNDS2_WIN40COMPAT 0X00000200
603 #define WNDS2_WIN50COMPAT 0X00000400
604 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
605 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
606 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
607 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
608 #define WNDS2_HELPBUTTONDOWN 0X00008000
609 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
610 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
611 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
612 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
613 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
614 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
615 #define WNDS2_FORCENCPAINT 0X00400000
616 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
617 #define WNDS2_FULLSCREENMODE 0X01000000
618 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
619 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
620 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
621 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
622 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
625 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
626 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
627 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
628 #define WS_EX2_LINKED 0X00000008
629 #define WS_EX2_LAYEREDFORDWM 0X00000010
630 #define WS_EX2_LAYEREDLIMBO 0X00000020
631 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
632 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
633 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
634 #define WS_EX2_HASOVERLAY 0X00000200
635 #define WS_EX2_CONSOLEWINDOW 0X00000400
636 #define WS_EX2_CHILDNOACTIVATE 0X00000800
638 #define WPF_MININIT 0x0008
639 #define WPF_MAXINIT 0x0010
646 /* Extended style. */
650 /* Handle of the module that created the window. */
653 struct _WND
*spwndNext
;
654 struct _WND
*spwndPrev
;
655 struct _WND
*spwndParent
;
656 struct _WND
*spwndChild
;
657 struct _WND
*spwndOwner
;
661 /* Pointer to the window class. */
664 /* Property list head.*/
665 LIST_ENTRY PropListHead
;
669 /* system menu handle. */
672 /* Window menu handle or window id */
673 UINT IDMenu
; // Use spmenu
678 LARGE_UNICODE_STRING strName
;
679 /* Size of the extra data associated with the window. */
681 struct _WND
*spwndLastActive
;
682 //HIMC hImc; // Input context associated with this window.
685 //PD3DMATRIX pTransForm;
686 struct _WND
*spwndClipboardListener
;
695 UINT flags
; // WPF_ flags.
698 UINT Unicode
: 1; // !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ?
699 UINT InternalPosInitialized
: 1;
700 UINT HideFocus
: 1; // WS_EX_UISTATEFOCUSRECTHIDDEN ?
701 UINT HideAccel
: 1; // WS_EX_UISTATEKBACCELHIDDEN ?
704 PSBINFOEX pSBInfoex
; // convert to PSBINFO
705 /* Entry in the list of thread windows. */
706 LIST_ENTRY ThreadListEntry
;
709 #define PWND_BOTTOM ((PWND)1)
711 typedef struct _SBWND
719 typedef struct _MENUWND
722 PPOPUPMENU ppopupmenu
;
723 } MENUWND
, *PMENUWND
;
725 typedef struct _PFNCLIENT
727 WNDPROC pfnScrollBarWndProc
;
728 WNDPROC pfnTitleWndProc
;
729 WNDPROC pfnMenuWndProc
;
730 WNDPROC pfnDesktopWndProc
;
731 WNDPROC pfnDefWindowProc
;
732 WNDPROC pfnMessageWindowProc
;
733 WNDPROC pfnSwitchWindowProc
;
734 WNDPROC pfnButtonWndProc
;
735 WNDPROC pfnComboBoxWndProc
;
736 WNDPROC pfnComboListBoxProc
;
737 WNDPROC pfnDialogWndProc
;
738 WNDPROC pfnEditWndProc
;
739 WNDPROC pfnListBoxWndProc
;
740 WNDPROC pfnMDIClientWndProc
;
741 WNDPROC pfnStaticWndProc
;
742 WNDPROC pfnImeWndProc
;
743 WNDPROC pfnGhostWndProc
;
744 WNDPROC pfnHkINLPCWPSTRUCT
;
745 WNDPROC pfnHkINLPCWPRETSTRUCT
;
746 WNDPROC pfnDispatchHook
;
747 WNDPROC pfnDispatchDefWindowProc
;
748 WNDPROC pfnDispatchMessage
;
749 WNDPROC pfnMDIActivateDlgProc
;
750 } PFNCLIENT
, *PPFNCLIENT
;
753 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
754 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
757 typedef LRESULT(CALLBACK
*WNDPROC_EX
)(HWND
,UINT
,WPARAM
,LPARAM
,BOOL
);
759 typedef struct _PFNCLIENTWORKER
761 WNDPROC_EX pfnButtonWndProc
;
762 WNDPROC_EX pfnComboBoxWndProc
;
763 WNDPROC_EX pfnComboListBoxProc
;
764 WNDPROC_EX pfnDialogWndProc
;
765 WNDPROC_EX pfnEditWndProc
;
766 WNDPROC_EX pfnListBoxWndProc
;
767 WNDPROC_EX pfnMDIClientWndProc
;
768 WNDPROC_EX pfnStaticWndProc
;
769 WNDPROC_EX pfnImeWndProc
;
770 WNDPROC_EX pfnGhostWndProc
;
771 WNDPROC_EX pfnCtfHookProc
;
772 } PFNCLIENTWORKER
, *PPFNCLIENTWORKER
;
774 typedef LONG_PTR (NTAPI
*PFN_FNID
)(PWND
, UINT
, WPARAM
, LPARAM
, ULONG_PTR
);
776 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
777 #define FNID_FIRST 0x029A
778 #define FNID_SCROLLBAR 0x029A
779 #define FNID_ICONTITLE 0x029B
780 #define FNID_MENU 0x029C
781 #define FNID_DESKTOP 0x029D
782 #define FNID_DEFWINDOWPROC 0x029E
783 #define FNID_MESSAGEWND 0x029F
784 #define FNID_SWITCH 0x02A0
785 #define FNID_BUTTON 0x02A1
786 #define FNID_COMBOBOX 0x02A2
787 #define FNID_COMBOLBOX 0x02A3
788 #define FNID_DIALOG 0x02A4
789 #define FNID_EDIT 0x02A5
790 #define FNID_LISTBOX 0x02A6
791 #define FNID_MDICLIENT 0x02A7
792 #define FNID_STATIC 0x02A8
793 #define FNID_IME 0x02A9
794 #define FNID_GHOST 0x02AA
795 #define FNID_CALLWNDPROC 0x02AB
796 #define FNID_CALLWNDPROCRET 0x02AC
797 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
798 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
799 #define FNID_MB_DLGPROC 0x02AF
800 #define FNID_MDIACTIVATEDLGPROC 0x02B0
801 #define FNID_SENDMESSAGE 0x02B1
802 #define FNID_SENDMESSAGEFF 0x02B2
803 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
804 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
805 #define FNID_SENDMESSAGECALLPROC 0x02B4
806 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
807 #define FNID_TOOLTIPS 0x02B6
808 #define FNID_SENDNOTIFYMESSAGE 0x02B7
809 #define FNID_SENDMESSAGECALLBACK 0x02B8
810 #define FNID_LAST 0x02B9
812 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
813 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
815 #define FNID_DDEML 0x2000 // Registers DDEML
816 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
817 // Seen during WM_CREATE on error exit too.
818 #define FNID_FREED 0x8000 // Window being Freed...
820 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
822 #define GETPFNCLIENTA(fnid)\
823 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
824 #define GETPFNCLIENTW(fnid)\
825 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
827 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
829 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
830 #define ICLS_BUTTON 0
832 #define ICLS_STATIC 2
833 #define ICLS_LISTBOX 3
834 #define ICLS_SCROLLBAR 4
835 #define ICLS_COMBOBOX 5
836 #define ICLS_MDICLIENT 6
837 #define ICLS_COMBOLBOX 7
838 #define ICLS_DDEMLEVENT 8
839 #define ICLS_DDEMLMOTHER 9
840 #define ICLS_DDEML16BIT 10
841 #define ICLS_DDEMLCLIENTA 11
842 #define ICLS_DDEMLCLIENTW 12
843 #define ICLS_DDEMLSERVERA 13
844 #define ICLS_DDEMLSERVERW 14
846 #define ICLS_GHOST 16
847 #define ICLS_DESKTOP 17
848 #define ICLS_DIALOG 18
850 #define ICLS_SWITCH 20
851 #define ICLS_ICONTITLE 21
852 #define ICLS_TOOLTIPS 22
853 #if (_WIN32_WINNT <= 0x0501)
854 #define ICLS_UNKNOWN 22
855 #define ICLS_NOTUSED 23
857 #define ICLS_SYSSHADOW 23
858 #define ICLS_HWNDMESSAGE 24
859 #define ICLS_NOTUSED 25
863 #define COLOR_LAST COLOR_MENUBAR
864 #define MAX_MB_STRINGS 11
866 #define SRVINFO_APIHOOK 0x0010
867 #define SRVINFO_METRICS 0x0020
868 #define SRVINFO_KBDPREF 0x0080
870 #define NUM_SYSCOLORS 31
872 typedef struct tagOEMBITMAPINFO
878 } OEMBITMAPINFO
, *POEMBITMAPINFO
;
880 typedef struct tagMBSTRING
885 } MBSTRING
, *PMBSTRING
;
887 typedef struct tagDPISERVERINFO
889 INT gclBorder
; /* 000 */
890 HFONT hCaptionFont
; /* 004 */
891 HFONT hMsgFont
; /* 008 */
892 INT cxMsgFontChar
; /* 00C */
893 INT cyMsgFontChar
; /* 010 */
894 UINT wMaxBtnSize
; /* 014 */
895 } DPISERVERINFO
, *PDPISERVERINFO
;
898 #define PUSIF_PALETTEDISPLAY 0x01
899 #define PUSIF_SNAPTO 0x02
900 #define PUSIF_COMBOBOXANIMATION 0x04
901 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
902 #define PUSIF_KEYBOARDCUES 0x20
904 typedef struct _PERUSERSERVERINFO
906 INT aiSysMet
[SM_CMETRICS
];
907 ULONG argbSystemUnmatched
[NUM_SYSCOLORS
];
908 COLORREF argbSystem
[NUM_SYSCOLORS
];
909 HBRUSH ahbrSystem
[NUM_SYSCOLORS
];
913 DWORD dwLastRITEventTickCount
;
918 UINT ucWheelScrollLines
;
919 UINT ucWheelScrollChars
;
920 INT wMaxLeftOverlapChars
;
921 INT wMaxRightOverlapChars
;
924 TEXTMETRICW tmSysFont
;
925 DPISERVERINFO dpiSystem
;
926 HICON hIconSmWindows
;
929 DWORD dwAsyncKeyCache
;
931 OEMBITMAPINFO oembmi
[93];
940 DWORD dwLastSystemRITEventTickCountUpdate
;
941 ULONG adwDBGTAGFlags
[35];
944 } PERUSERSERVERINFO
, *PPERUSERSERVERINFO
;
946 typedef struct tagSERVERINFO
949 ULONG_PTR cHandleEntries
;
950 PFN_FNID mpFnidPfn
[FNID_NUM
];
951 WNDPROC aStoCidPfn
[FNID_NUMSERVERPROC
];
952 USHORT mpFnid_serverCBWndProc
[FNID_NUM
];
953 PFNCLIENT apfnClientA
;
954 PFNCLIENT apfnClientW
;
955 PFNCLIENTWORKER apfnClientWorker
;
957 ATOM atomSysClass
[ICLS_NOTUSED
+1];
958 DWORD dwDefaultHeapBase
;
959 DWORD dwDefaultHeapSize
;
961 MBSTRING MBStrings
[MAX_MB_STRINGS
];
964 ATOM atomContextHelpIdProp
;
965 ATOM atomFrostedWindowProp
;
966 CHAR acOemToAnsi
[256];
967 CHAR acAnsiToOem
[256];
968 DWORD dwInstalledEventHooks
;
970 } SERVERINFO
, *PSERVERINFO
;
973 // Server event activity bits.
974 #define SRV_EVENT_MENU 0x0001
975 #define SRV_EVENT_END_APPLICATION 0x0002
976 #define SRV_EVENT_RUNNING 0x0004
977 #define SRV_EVENT_NAMECHANGE 0x0008
978 #define SRV_EVENT_VALUECHANGE 0x0010
979 #define SRV_EVENT_STATECHANGE 0x0020
980 #define SRV_EVENT_LOCATIONCHANGE 0x0040
981 #define SRV_EVENT_CREATE 0x8000
983 typedef struct _PROPLISTITEM
987 } PROPLISTITEM
, *PPROPLISTITEM
;
989 typedef struct _PROPERTY
991 LIST_ENTRY PropListEntry
;
994 } PROPERTY
, *PPROPERTY
;
996 typedef struct _BROADCASTPARM
1003 } BROADCASTPARM
, *PBROADCASTPARM
;
1005 PTHREADINFO
GetW32ThreadInfo(VOID
);
1006 PPROCESSINFO
GetW32ProcessInfo(VOID
);
1008 typedef struct _WNDMSG
1014 typedef struct _SHAREDINFO
1016 PSERVERINFO psi
; // global Server Info
1017 PVOID aheList
; // Handle Entry List
1018 PVOID pDispInfo
; // global PDISPLAYINFO pointer
1019 ULONG_PTR ulSharedDelta
; // Heap delta
1020 WNDMSG awmControl
[FNID_LAST
- FNID_FIRST
];
1021 WNDMSG DefWindowMsgs
;
1022 WNDMSG DefWindowSpecMsgs
;
1023 } SHAREDINFO
, *PSHAREDINFO
;
1025 typedef struct _USERCONNECT
1028 ULONG ulCurrentVersion
;
1029 DWORD dwDispatchCount
;
1030 SHAREDINFO siClient
;
1031 } USERCONNECT
, *PUSERCONNECT
;
1033 // WinNT 5.0 compatible user32 / win32k
1034 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1036 typedef struct tagGETCLIPBDATA
1045 } GETCLIPBDATA
, *PGETCLIPBDATA
;
1047 typedef struct tagSETCLIPBDATA
1050 BOOL fIncSerialNumber
;
1051 } SETCLIPBDATA
, *PSETCLIPBDATA
;
1053 // Used with NtUserSetCursorIconData, last parameter.
1054 typedef struct tagCURSORDATA
1060 ULONG CURSORF_flags
;
1067 HBITMAP hbmUserAlpha
; // Could be in W7U, not in W2k
1073 struct tagCURSORDATA
* aspcur
;
1077 } CURSORDATA
, *PCURSORDATA
; /* !dso CURSORDATA */
1080 #define CURSORF_FROMRESOURCE 0x0001
1081 #define CURSORF_GLOBAL 0x0002
1082 #define CURSORF_LRSHARED 0x0004
1083 #define CURSORF_ACON 0x0008
1084 #define CURSORF_WOWCLEANUP 0x0010
1085 #define CURSORF_ACONFRAME 0x0040
1086 #define CURSORF_SECRET 0x0080
1087 #define CURSORF_LINKED 0x0100
1088 #define CURSORF_CURRENT 0x0200
1092 NtUserAssociateInputContext(
1099 NtUserBuildHimcList(
1116 NtUserCheckMenuItem(
1123 NtUserCtxDisplayIOCtl(
1142 NtUserDrawMenuBarTemp(
1151 NtUserEnableMenuItem(
1158 NtUserEndMenu(VOID
);
1162 NtUserGetMenuBarInfo(
1176 NtUserGetMenuItemRect(
1184 NtUserGetSystemMenu(
1190 NtUserHiliteMenuItem(
1198 NtUserMenuItemFromPoint(
1220 NtUserSetMenuContextHelpId(
1222 DWORD dwContextHelpId
);
1226 NtUserSetMenuDefaultItem(
1233 NtUserSetMenuFlagRtoL(
1238 NtUserSetSystemMenu(
1244 NtUserThunkedMenuInfo(
1250 NtUserThunkedMenuItemInfo(
1255 LPMENUITEMINFOW lpmii
,
1256 PUNICODE_STRING lpszCaption
);
1260 NtUserTrackPopupMenuEx(
1270 NtUserActivateKeyboardLayout(
1276 NtUserAlterWindowStyle(
1283 NtUserAttachThreadInput(
1285 IN DWORD idAttachTo
,
1289 NtUserBeginPaint(HWND hWnd
, PAINTSTRUCT
* lPs
);
1310 NtUserBuildHwndList(
1320 NtUserBuildNameList(
1324 PULONG pRequiredSize
);
1328 NtUserBuildPropList(
1334 /* apfnSimpleCall indices from Windows XP SP 2 */
1335 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1336 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
1338 enum SimpleCallRoutines
1340 NOPARAM_ROUTINE_CREATEMENU
,
1341 NOPARAM_ROUTINE_CREATEMENUPOPUP
,
1342 #if (WIN32K_VERSION >= NTDDI_VISTA)
1343 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1344 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1345 NOPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1346 NOPARAM_ROUTINE_DESTROY_CARET
,
1348 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING
,
1349 #if (WIN32K_VERSION < NTDDI_VISTA)
1350 NOPARAM_ROUTINE_MSQCLEARWAKEMASK
,
1351 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION
,
1352 NOPARAM_ROUTINE_DESTROY_CARET
,
1354 NOPARAM_ROUTINE_GETDEVICECHANGEINFO
,
1355 NOPARAM_ROUTINE_GETIMESHOWSTATUS
,
1356 NOPARAM_ROUTINE_GETINPUTDESKTOP
,
1357 NOPARAM_ROUTINE_GETMSESSAGEPOS
,
1358 #if (WIN32K_VERSION >= NTDDI_VISTA)
1359 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1361 NOPARAM_ROUTINE_GETREMOTEPROCID
,
1363 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE
,
1364 NOPARAM_ROUTINE_LOADCURSANDICOS
,
1365 #if (WIN32K_VERSION >= NTDDI_VISTA)
1366 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1367 NOPARAM_ROUTINE_PREPAREFORLOGOFF
, /* 0x0f */
1369 NOPARAM_ROUTINE_RELEASECAPTURE
,
1370 NOPARAM_ROUTINE_RESETDBLCLICK
,
1371 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
,
1372 NOPARAM_ROUTINE_REMOTECONSHDWSTOP
,
1373 NOPARAM_ROUTINE_REMOTEDISCONNECT
,
1374 NOPARAM_ROUTINE_REMOTELOGOFF
,
1375 NOPARAM_ROUTINE_REMOTENTSECURITY
,
1376 NOPARAM_ROUTINE_REMOTESHDWSETUP
,
1377 NOPARAM_ROUTINE_REMOTESHDWSTOP
,
1378 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE
,
1379 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE
,
1380 NOPARAM_ROUTINE_REMOTECONNECTSTATE
,
1381 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
,
1382 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER
,
1383 #if (WIN32K_VERSION >= NTDDI_VISTA)
1384 NOPARAM_ROUTINE_WAKERITFORSHTDWN
,
1386 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
,
1387 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
,
1388 #if (WIN32K_VERSION < NTDDI_VISTA)
1389 NOPARAM_ROUTINE_LOADUSERAPIHOOK
,
1391 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
,
1392 #if (WIN32K_VERSION >= NTDDI_VISTA)
1393 ONEPARAM_ROUTINE_GETSENDMSGRECVR
,
1395 ONEPARAM_ROUTINE_WINDOWFROMDC
,
1396 ONEPARAM_ROUTINE_ALLOWSETFOREGND
,
1397 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
,
1398 #if (WIN32K_VERSION < NTDDI_VISTA)
1399 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS
,
1401 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE
,
1402 ONEPARAM_ROUTINE_DIRECTEDYIELD
,
1403 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
,
1404 #if (WIN32K_VERSION < NTDDI_VISTA)
1405 ONEPARAM_ROUTINE_GETCURSORPOS
,
1407 ONEPARAM_ROUTINE_GETINPUTEVENT
,
1408 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
,
1409 ONEPARAM_ROUTINE_GETKEYBOARDTYPE
,
1410 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
,
1411 ONEPARAM_ROUTINE_GETQUEUESTATUS
,
1412 ONEPARAM_ROUTINE_GETWINSTAINFO
,
1413 #if (WIN32K_VERSION < NTDDI_VISTA)
1414 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL
,
1416 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
,
1417 ONEPARAM_ROUTINE_LOADFONTS
,
1418 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT
,
1419 ONEPARAM_ROUTINE_MESSAGEBEEP
,
1420 ONEPARAM_ROUTINE_PLAYEVENTSOUND
,
1421 ONEPARAM_ROUTINE_POSTQUITMESSAGE
,
1422 #if (WIN32K_VERSION < NTDDI_VISTA)
1423 ONEPARAM_ROUTINE_PREPAREFORLOGOFF
,
1425 ONEPARAM_ROUTINE_REALIZEPALETTE
,
1426 ONEPARAM_ROUTINE_REGISTERLPK
,
1427 #if (WIN32K_VERSION >= NTDDI_VISTA)
1428 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1430 ONEPARAM_ROUTINE_REMOTERECONNECT
,
1431 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS
,
1432 ONEPARAM_ROUTINE_RELEASEDC
,
1433 #if (WIN32K_VERSION >= NTDDI_VISTA)
1434 ONEPARAM_ROUTINE_REMOTENOTIFY
,
1436 ONEPARAM_ROUTINE_REPLYMESSAGE
,
1437 ONEPARAM_ROUTINE_SETCARETBLINKTIME
,
1438 ONEPARAM_ROUTINE_SETDBLCLICKTIME
,
1439 #if (WIN32K_VERSION < NTDDI_VISTA)
1440 ONEPARAM_ROUTINE_SETIMESHOWSTATUS
,
1442 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
,
1443 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
,
1444 #if (WIN32K_VERSION >= NTDDI_VISTA)
1445 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS
,
1447 ONEPARAM_ROUTINE_SHOWCURSOR
,
1448 ONEPARAM_ROUTINE_SHOWSTARTGLASS
,
1449 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
,
1450 X_ROUTINE_WOWMODULEUNLOAD
,
1451 #if (WIN32K_VERSION < NTDDI_VISTA)
1452 X_ROUTINE_REMOTENOTIFY
,
1454 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
,
1455 HWND_ROUTINE_DWP_GETENABLEDPOPUP
,
1456 HWND_ROUTINE_GETWNDCONTEXTHLPID
,
1457 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
,
1458 HWND_ROUTINE_SETMSGBOX
,
1459 HWNDOPT_ROUTINE_SETPROGMANWINDOW
,
1460 HWNDOPT_ROUTINE_SETTASKMANWINDOW
,
1461 HWNDPARAM_ROUTINE_GETCLASSICOCUR
,
1462 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
,
1463 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
,
1464 HWNDPARAM_ROUTINE_SETDIALOGPOINTER
,
1465 HWNDPARAM_ROUTINE_SETVISIBLE
,
1466 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
,
1467 HWNDPARAM_ROUTINE_SETWINDOWSTATE
,
1468 HWNDLOCK_ROUTINE_WINDOWHASSHADOW
, /* correct prefix ? */
1469 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
,
1470 HWNDLOCK_ROUTINE_DRAWMENUBAR
,
1471 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
,
1472 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE
,
1473 HWNDLOCK_ROUTINE_REDRAWFRAME
,
1474 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
,
1475 HWNDLOCK_ROUTINE_SETDLGSYSMENU
,
1476 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
,
1477 HWNDLOCK_ROUTINE_SETSYSMENU
,
1478 HWNDLOCK_ROUTINE_UPDATECKIENTRECT
,
1479 HWNDLOCK_ROUTINE_UPDATEWINDOW
,
1480 X_ROUTINE_IMESHOWSTATUSCHANGE
,
1481 TWOPARAM_ROUTINE_ENABLEWINDOW
,
1482 TWOPARAM_ROUTINE_REDRAWTITLE
,
1483 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
,
1484 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
,
1485 TWOPARAM_ROUTINE_UPDATEWINDOWS
,
1486 TWOPARAM_ROUTINE_VALIDATERGN
,
1487 #if (WIN32K_VERSION >= NTDDI_VISTA)
1488 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER
,
1489 TWOPARAM_ROUTINE_GETCURSORPOS
,
1491 TWOPARAM_ROUTINE_GETHDEVNAME
,
1492 TWOPARAM_ROUTINE_INITANSIOEM
,
1493 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY
,
1494 #if (WIN32K_VERSION >= NTDDI_VISTA)
1495 TWOPARAM_ROUTINE_REGISTERGHSTWND
,
1497 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
,
1498 #if (WIN32K_VERSION >= NTDDI_VISTA)
1499 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND
,
1501 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD
,
1503 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS
,
1504 TWOPARAM_ROUTINE_SHADOWCLEANUP
,
1505 TWOPARAM_ROUTINE_REMOTESHADOWSTART
,
1506 TWOPARAM_ROUTINE_SETCARETPOS
,
1507 TWOPARAM_ROUTINE_SETCURSORPOS
,
1508 #if (WIN32K_VERSION >= NTDDI_VISTA)
1509 TWOPARAM_ROUTINE_SETPHYSCURSORPOS
,
1511 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
,
1512 TWOPARAM_ROUTINE_WOWCLEANUP
1535 NtUserCallHwndParam(
1542 NtUserCallHwndParamLock(
1549 NtUserCallMsgFilter(
1555 NtUserCallNextHookEx(
1581 NtUserChangeClipboardChain(
1587 NtUserChangeDisplaySettings(
1588 PUNICODE_STRING lpszDeviceName
,
1589 LPDEVMODEW lpDevMode
,
1596 NtUserCheckDesktopByThreadId(
1601 NtUserCheckWindowThreadDesktop(
1608 NtUserCheckImeHotKey(
1613 NtUserChildWindowFromPointEx(
1626 NtUserCloseClipboard(VOID
);
1635 NtUserCloseWindowStation(
1638 /* Console commands for NtUserConsoleControl */
1639 typedef enum _CONSOLECONTROL
1641 GuiConsoleWndClassAtom
,
1642 ConsoleMakePalettePublic
= 5,
1643 ConsoleAcquireDisplayOwnership
,
1644 } CONSOLECONTROL
, *PCONSOLECONTROL
;
1648 NtUserConsoleControl(
1649 IN CONSOLECONTROL ConsoleCtrl
,
1650 IN PVOID ConsoleCtrlInfo
,
1651 IN ULONG ConsoleCtrlInfoLength
);
1655 NtUserConvertMemHandle(
1661 NtUserCopyAcceleratorTable(
1664 ULONG EntriesCount
);
1668 NtUserCountClipboardFormats(VOID
);
1672 NtUserCreateAcceleratorTable(
1674 ULONG EntriesCount
);
1686 NtUserCreateDesktop(
1687 POBJECT_ATTRIBUTES poa
,
1688 PUNICODE_STRING lpszDesktopDevice
,
1691 ACCESS_MASK dwDesiredAccess
);
1695 NtUserCreateInputContext(
1700 NtUserCreateLocalMemHandle(
1708 NtUserCreateWindowEx(
1710 PLARGE_STRING plstrClassName
,
1711 PLARGE_STRING plstrClsVersion
,
1712 PLARGE_STRING plstrWindowName
,
1720 HINSTANCE hInstance
,
1727 NtUserCreateWindowStation(
1728 POBJECT_ATTRIBUTES ObjectAttributes
,
1729 ACCESS_MASK dwDesiredAccess
,
1738 NtUserDdeGetQualityOfService(
1741 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1745 NtUserDdeInitialize(
1754 NtUserDdeSetQualityOfService(
1756 IN PSECURITY_QUALITY_OF_SERVICE pqosNew
,
1757 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev
);
1760 NtUserDeferWindowPos(
1763 HWND WndInsertAfter
,
1771 NtUserDefSetText(HWND WindowHandle
, PLARGE_STRING WindowText
);
1775 NtUserDestroyAcceleratorTable(
1780 NtUserDestroyCursor(
1786 NtUserDestroyInputContext(
1790 NtUserDestroyWindow(HWND Wnd
);
1794 NtUserDisableThreadIme(
1799 NtUserDispatchMessage(PMSG pMsg
);
1818 NtUserDrawAnimatedRects(
1834 NtUserDrawCaptionTemp(
1840 const PUNICODE_STRING str
,
1843 // Used with NtUserDrawIconEx, last parameter.
1844 typedef struct _DRAWICONEXDATA
1850 } DRAWICONEXDATA
, *PDRAWICONEXDATA
;
1862 HBRUSH hbrFlickerFreeDraw
,
1869 NtUserEmptyClipboard(VOID
);
1873 NtUserEnableScrollBar(
1880 NtUserEndDeferWindowPosEx(
1885 NtUserEndPaint(HWND hWnd
, CONST PAINTSTRUCT
* lPs
);
1889 NtUserEnumDisplayDevices (
1890 PUNICODE_STRING lpDevice
, /* device name */
1891 DWORD iDevNum
, /* display device */
1892 PDISPLAY_DEVICEW lpDisplayDevice
, /* device information */
1893 DWORD dwFlags
); /* reserved */
1897 NtUserEnumDisplayMonitors (
1900 MONITORENUMPROC lpfnEnum,
1902 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1905 NtUserEnumDisplayMonitors(
1906 OPTIONAL IN HDC hDC
,
1907 OPTIONAL IN LPCRECT pRect
,
1908 OPTIONAL OUT HMONITOR
*hMonitorList
,
1909 OPTIONAL OUT LPRECT monitorRectList
,
1910 OPTIONAL IN DWORD listSize
);
1915 NtUserEnumDisplaySettings(
1916 PUNICODE_STRING lpszDeviceName
,
1918 LPDEVMODEW lpDevMode
, /* FIXME is this correct? */
1928 NtUserExcludeUpdateRgn(
1944 HWND hwndChildAfter
,
1945 PUNICODE_STRING ucClassName
,
1946 PUNICODE_STRING ucWindowName
,
1952 NtUserFlashWindowEx(
1953 IN PFLASHWINFO pfwi
);
1957 NtUserGetAltTabInfo(
1966 NtUserGetAncestor(HWND hWnd
, UINT Flags
);
1970 NtUserGetAppImeLevel(
1975 NtUserGetAsyncKeyState(
1978 _Success_(return!=0)
1979 _At_(pustrName
->Buffer
, _Out_z_bytecap_post_bytecount_(pustrName
->MaximumLength
, return*2+2))
1984 _Inout_ PUNICODE_STRING pustrName
);
1988 NtUserGetCaretBlinkTime(VOID
);
1996 NtUserGetClassInfo(HINSTANCE hInstance
,
1997 PUNICODE_STRING ClassName
,
1999 LPWSTR
*ppszMenuName
,
2004 NtUserGetClassName(HWND hWnd
,
2005 BOOL Real
, // 0 GetClassNameW, 1 RealGetWindowClassA/W
2006 PUNICODE_STRING ClassName
);
2010 NtUserGetClipboardData(
2012 PGETCLIPBDATA pgcd
);
2016 NtUserGetClipboardFormatName(
2018 LPWSTR lpszFormatName
,
2023 NtUserGetClipboardOwner(VOID
);
2027 NtUserGetClipboardSequenceNumber(VOID
);
2031 NtUserGetClipboardViewer(VOID
);
2035 NtUserGetClipCursor(
2040 NtUserGetComboBoxInfo(
2042 PCOMBOBOXINFO pcbi
);
2046 NtUserGetControlBrush(
2053 NtUserGetControlColor(
2068 NtUserGetCursorFrameInfo(
2076 NtUserGetCursorInfo(
2093 NtUserGetDoubleClickTime(VOID
);
2097 NtUserGetForegroundWindow(VOID
);
2101 NtUserGetGuiResources(
2107 NtUserGetGUIThreadInfo(
2109 LPGUITHREADINFO lpgui
);
2111 _Success_(return!=FALSE
)
2115 _In_ HANDLE hCurIcon
,
2116 _Out_opt_ PICONINFO IconInfo
,
2117 _Inout_opt_ PUNICODE_STRING lpInstName
,
2118 _Inout_opt_ PUNICODE_STRING lpResName
,
2119 _Out_opt_ LPDWORD pbpp
,
2120 _In_ BOOL bInternal
);
2146 NtUserGetInternalWindowPos(
2153 NtUserGetKeyboardLayout(
2158 NtUserGetKeyboardLayoutList(
2164 NtUserGetKeyboardLayoutName(
2169 NtUserGetKeyboardState(
2174 NtUserGetKeyboardType(
2179 NtUserGetKeyNameText( LONG lParam
, LPWSTR lpString
, int nSize
);
2188 NtUserGetLayeredWindowAttributes(
2196 NtUserGetListBoxInfo(
2200 NtUserGetMessage(PMSG pMsg
,
2207 NtUserGetMouseMovePointsEx(
2209 LPMOUSEMOVEPOINT lppt
,
2210 LPMOUSEMOVEPOINT lpptBuf
,
2216 NtUserGetObjectInformation(
2219 PVOID pvInformation
,
2221 PDWORD nLengthNeeded
);
2225 NtUserGetOpenClipboardWindow(VOID
);
2229 NtUserGetPriorityClipboardFormat(
2230 UINT
*paFormatPriorityList
,
2235 NtUserGetProcessWindowStation(VOID
);
2239 NtUserGetRawInputBuffer(
2246 NtUserGetRawInputData(
2247 HRAWINPUT hRawInput
,
2255 NtUserGetRawInputDeviceInfo(
2263 NtUserGetRawInputDeviceList(
2264 PRAWINPUTDEVICELIST pRawInputDeviceList
,
2265 PUINT puiNumDevices
,
2270 NtUserGetRegisteredRawInputDevices(
2271 PRAWINPUTDEVICE pRawInputDevices
,
2272 PUINT puiNumDevices
,
2277 NtUserGetScrollBarInfo(
2280 PSCROLLBARINFO psbi
);
2284 NtUserGetThreadDesktop(
2289 enum ThreadStateRoutines
2291 THREADSTATE_GETTHREADINFO
,
2292 THREADSTATE_INSENDMESSAGE
,
2293 THREADSTATE_FOCUSWINDOW
,
2294 THREADSTATE_ACTIVEWINDOW
,
2295 THREADSTATE_CAPTUREWINDOW
,
2296 THREADSTATE_PROGMANWINDOW
,
2297 THREADSTATE_TASKMANWINDOW
,
2298 THREADSTATE_GETMESSAGETIME
,
2299 THREADSTATE_GETINPUTSTATE
,
2300 THREADSTATE_UPTIMELASTREAD
,
2301 THREADSTATE_FOREGROUNDTHREAD
,
2302 THREADSTATE_GETCURSOR
,
2303 THREADSTATE_GETMESSAGEEXTRAINFO
2308 NtUserGetThreadState(
2313 NtUserGetTitleBarInfo(
2318 NtUserGetUpdateRect(HWND hWnd
, LPRECT lpRect
, BOOL fErase
);
2334 NtUserGetWindowPlacement(
2336 WINDOWPLACEMENT
*lpwndpl
);
2341 HINSTANCE hInstance
,
2342 PUNICODE_STRING ClassName
);
2346 NtUserHardErrorControl(
2353 NtUserImpersonateDdeClientWindow(
2361 HANDLE hPowerRequestEvent
,
2362 HANDLE hMediaRequestEvent
);
2366 NtUserInitializeClientPfnArrays(
2367 PPFNCLIENT pfnClientA
,
2368 PPFNCLIENT pfnClientW
,
2369 PPFNCLIENTWORKER pfnClientWorker
,
2370 HINSTANCE hmodUser
);
2390 NtUserInternalGetWindowText(
2397 NtUserInvalidateRect(
2404 NtUserInvalidateRgn(
2411 NtUserIsClipboardFormatAvailable(
2424 NtUserLoadKeyboardLayoutEx(
2427 IN PUNICODE_STRING puszKeyboardName
,
2429 IN PUNICODE_STRING puszKLID
,
2435 NtUserLockWindowStation(
2436 HWINSTA hWindowStation
);
2440 NtUserLockWindowUpdate(
2445 NtUserLockWorkStation(VOID
);
2449 NtUserMapVirtualKeyEx( UINT keyCode
,
2454 typedef struct tagDOSENDMESSAGE
2460 DOSENDMESSAGE
, *PDOSENDMESSAGE
;
2469 ULONG_PTR ResultInfo
,
2470 DWORD dwType
, // FNID_XX types
2477 UINT cmd
, // Wine SW_ commands
2482 NtUserMNDragLeave(VOID
);
2492 NtUserModifyUserStartupInfoFlags(
2509 NtUserNotifyIMEStatus(
2516 NtUserNotifyProcessCreate(
2517 HANDLE NewProcessId
,
2518 HANDLE SourceThreadId
,
2524 NtUserNotifyWinEvent(
2532 NtUserOpenClipboard(
2539 POBJECT_ATTRIBUTES ObjectAttributes
,
2541 ACCESS_MASK dwDesiredAccess
);
2545 NtUserOpenInputDesktop(
2548 ACCESS_MASK dwDesiredAccess
);
2552 NtUserOpenWindowStation(
2553 POBJECT_ATTRIBUTES ObjectAttributes
,
2554 ACCESS_MASK dwDesiredAccess
);
2572 NtUserPeekMessage( PMSG pMsg
,
2588 NtUserPostThreadMessage(
2603 NtUserProcessConnect(
2605 OUT PUSERCONNECT pUserConnect
,
2606 IN DWORD dwSize
); // sizeof(USERCONNECT)
2610 NtUserQueryInformationThread(
2611 IN HANDLE ThreadHandle
,
2612 IN USERTHREADINFOCLASS ThreadInformationClass
,
2613 OUT PVOID ThreadInformation
,
2614 IN ULONG ThreadInformationLength
2619 NtUserQueryInputContext(
2625 NtUserQuerySendMessage(
2630 NtUserQueryUserCounters(
2637 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2638 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2639 #define QUERY_WINDOW_ACTIVE 0x02
2640 #define QUERY_WINDOW_FOCUS 0x03
2641 #define QUERY_WINDOW_ISHUNG 0x04
2642 #define QUERY_WINDOW_REAL_ID 0x05
2643 #define QUERY_WINDOW_FOREGROUND 0x06
2652 NtUserRealInternalGetMessage(
2662 NtUserRealChildWindowFromPoint(
2669 NtUserRealWaitMessageEx(
2678 CONST RECT
*lprcUpdate
,
2685 NtUserRegisterClassExWOW(
2687 PUNICODE_STRING pustrClassName
,
2688 PUNICODE_STRING pustrCNVersion
,
2689 PCLSMENUNAME pClassMenuName
,
2696 NtUserRegisterRawInputDevices(
2697 IN PCRAWINPUTDEVICE pRawInputDevices
,
2698 IN UINT uiNumDevices
,
2703 NtUserRegisterUserApiHook(
2704 PUNICODE_STRING m_dllname1
,
2705 PUNICODE_STRING m_funname1
,
2711 NtUserRegisterHotKey(HWND hWnd
,
2718 NtUserRegisterTasklist(
2722 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName
);
2726 NtUserRemoteConnect(
2733 NtUserRemoteRedrawRectangle(
2741 NtUserRemoteRedrawScreen(VOID
);
2745 NtUserRemoteStopScreenUpdates(VOID
);
2748 NtUserRemoveProp(HWND hWnd
, ATOM Atom
);
2752 NtUserResolveDesktop(
2760 NtUserResolveDesktopForWOW(
2777 CONST RECT
*lprcScroll
,
2778 CONST RECT
*lprcClip
,
2783 NtUserScrollWindowEx(HWND hWnd
, INT dx
, INT dy
, const RECT
*rect
,
2784 const RECT
*clipRect
, HRGN hrgnUpdate
, LPRECT rcUpdate
, UINT flags
);
2794 NtUserSetActiveWindow(HWND Wnd
);
2798 NtUserSetAppImeLevel(
2803 NtUserSetCapture(HWND Wnd
);
2809 ULONG_PTR dwNewLong
,
2821 NtUserSetClipboardData(
2828 NtUserSetClipboardViewer(
2829 HWND hWndNewViewer
);
2833 NtUserSelectPalette(
2836 BOOL ForceBackground
2841 NtUserSetConsoleReserveKeys(
2852 NtUserSetCursorContents(
2854 PICONINFO IconInfo
);
2856 #ifdef NEW_CURSORICON
2859 NtUserSetCursorIconData(
2860 _In_ HCURSOR hCursor
,
2861 _In_ PUNICODE_STRING pustrModule
,
2862 _In_ PUNICODE_STRING puSrcName
,
2863 _In_
const CURSORDATA
* pCursorData
);
2865 typedef struct _tagFINDEXISTINGCURICONPARAM
2870 } FINDEXISTINGCURICONPARAM
;
2874 NtUserFindExistingCursorIcon(
2875 _In_ PUNICODE_STRING pustrModule
,
2876 _In_ PUNICODE_STRING pustrRsrc
,
2877 _In_ FINDEXISTINGCURICONPARAM
* param
);
2881 NtUserSetCursorIconData(
2891 NtUserFindExistingCursorIcon(
2925 NtUserSetImeOwnerWindow(
2931 NtUserSetInformationProcess(
2939 NtUserSetInformationThread(
2940 IN HANDLE ThreadHandle
,
2941 IN USERTHREADINFOCLASS ThreadInformationClass
,
2942 IN PVOID ThreadInformation
,
2943 IN ULONG ThreadInformationLength
2948 NtUserSetInternalWindowPos(
2956 NtUserSetKeyboardState(
2961 NtUserSetLayeredWindowAttributes(
2969 NtUserSetLogonNotifyWindow(
2974 NtUserSetObjectInformation(
2977 PVOID pvInformation
,
2984 HWND hWndNewParent
);
2988 NtUserSetProcessWindowStation(
2989 HWINSTA hWindowStation
);
2992 NtUserSetProp(HWND hWnd
, ATOM Atom
, HANDLE Data
);
3002 NtUserSetScrollInfo(
3010 NtUserSetShellWindowEx(
3012 HWND hwndShellListView
);
3018 IN CONST INT
*lpaElements
,
3019 IN CONST COLORREF
*lpaRgbValues
,
3024 NtUserSetSystemCursor(
3030 NtUserSetThreadDesktop(
3035 NtUserSetThreadState(
3041 NtUserSetSystemTimer
3046 TIMERPROC lpTimerFunc
3051 NtUserSetThreadLayoutHandles(
3062 TIMERPROC lpTimerFunc
3067 NtUserSetWindowFNID(
3073 NtUserSetWindowLong(
3081 NtUserSetWindowPlacement(
3083 WINDOWPLACEMENT
*lpwndpl
);
3086 NTAPI
NtUserSetWindowPos(
3088 HWND hWndInsertAfter
,
3105 NtUserSetWindowsHookAW(
3112 NtUserSetWindowsHookEx(
3114 PUNICODE_STRING ModuleName
,
3122 NtUserSetWindowStationUser(
3129 NtUserSetWindowWord(HWND hWnd
, INT Index
, WORD NewVal
);
3133 NtUserSetWinEventHook(
3136 HMODULE hmodWinEventProc
,
3137 PUNICODE_STRING puString
,
3138 WINEVENTPROC lpfnWinEventProc
,
3155 NtUserShowScrollBar(HWND hWnd
, int wBar
, DWORD bShow
);
3165 NtUserShowWindowAsync(
3171 NtUserSoundSentry(VOID
);
3175 NtUserSwitchDesktop(
3180 NtUserSystemParametersInfo(
3188 NtUserTestForInteractiveUser(
3204 NtUserTrackMouseEvent(
3205 LPTRACKMOUSEEVENT lpEventTrack
);
3209 NtUserTranslateAccelerator(
3216 NtUserTranslateMessage(
3222 NtUserUnhookWindowsHookEx(
3227 NtUserUnhookWinEvent(
3228 HWINEVENTHOOK hWinEventHook
);
3232 NtUserUnloadKeyboardLayout(
3237 NtUserUnlockWindowStation(
3238 HWINSTA hWindowStation
);
3242 NtUserUnregisterClass(
3243 PUNICODE_STRING ClassNameOrAtom
,
3244 HINSTANCE hInstance
,
3245 PCLSMENUNAME pClassMenuName
);
3249 NtUserUnregisterHotKey(HWND hWnd
,
3254 NtUserUnregisterUserApiHook(VOID
);
3258 NtUserUpdateInputContext(
3265 NtUserUpdateInstance(
3272 NtUserUpdateLayeredWindow(
3280 BLENDFUNCTION
*pblend
,
3286 NtUserUpdatePerUserSystemParameters(
3292 NtUserUserHandleGrantAccess(
3293 IN HANDLE hUserHandle
,
3299 NtUserValidateHandleSecure(
3307 CONST RECT
*lpRect
);
3311 NtUserValidateTimerCallback(
3325 NtUserWaitForInputIdle(
3327 IN DWORD dwMilliseconds
,
3328 IN BOOL Unknown2
); // Always FALSE
3332 NtUserWaitForMsgAndEvent(
3337 NtUserWaitMessage(VOID
);
3341 NtUserWin32PoolAllocationStats(
3351 NtUserWindowFromPoint(
3357 NtUserYieldTask(VOID
);
3359 /* lParam of DDE messages */
3360 typedef struct tagKMDDEEXECUTEDATA
3364 /* BYTE Data[DataSize] */
3365 } KMDDEEXECUTEDATA
, *PKMDDEEXECUTEDATA
;
3367 typedef struct tagKMDDELPARAM
3371 } KMDDELPARAM
, *PKMDDELPARAM
;
3378 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3381 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3382 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3383 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3384 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3385 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3386 #define TWOPARAM_ROUTINE_EXITREACTOS 0xfffd0051
3387 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3388 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0053
3389 #define MSQ_STATE_CAPTURE 0x1
3390 #define MSQ_STATE_ACTIVE 0x2
3391 #define MSQ_STATE_FOCUS 0x3
3392 #define MSQ_STATE_MENUOWNER 0x4
3393 #define MSQ_STATE_MOVESIZE 0x5
3394 #define MSQ_STATE_CARET 0x6
3395 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3396 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3400 NtUserGetMonitorInfo(
3401 IN HMONITOR hMonitor
,
3402 OUT LPMONITORINFO pMonitorInfo
);
3404 /* Should be done in usermode */
3406 /* (other FocusedItem values give the position of the focused item) */
3407 #define NO_SELECTED_ITEM 0xffff
3409 typedef struct tagROSMENUINFO
3411 /* ----------- MENUINFO ----------- */
3417 DWORD dwContextHelpID
;
3418 ULONG_PTR dwMenuData
;
3419 /* ----------- Extra ----------- */
3420 ULONG fFlags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3421 UINT iItem
; /* Currently focused item */
3422 UINT cItems
; /* Number of items in the menu */
3423 WORD cxMenu
; /* Width of the whole menu */
3424 WORD cyMenu
; /* Height of the whole menu */
3426 PWND spwndNotify
; /* window receiving the messages for ownerdraw */
3431 HMENU Self
; /* Handle of this menu */
3432 HWND Wnd
; /* Window containing the menu */
3433 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
3434 } ROSMENUINFO
, *PROSMENUINFO
;
3436 typedef struct tagROSMENUITEMINFO
3438 /* ----------- MENUITEMINFOW ----------- */
3445 HBITMAP hbmpChecked
;
3446 HBITMAP hbmpUnchecked
;
3451 /* ----------- Extra ----------- */
3452 RECT Rect
; /* Item area (relative to menu window) */
3453 UINT dxTab
; /* X position of text after Tab */
3454 LPWSTR lpstr
; /* Copy of the text pointer in MenuItem->Text */
3455 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3456 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;
3460 NtUserMonitorFromPoint(
3466 NtUserMonitorFromRect(
3472 NtUserMonitorFromWindow(
3476 typedef struct _SETSCROLLBARINFO
3480 DWORD rgstate
[CCHILDREN_SCROLLBAR
+1];
3481 } SETSCROLLBARINFO
, *PSETSCROLLBARINFO
;
3485 NtUserSetScrollBarInfo(
3488 SETSCROLLBARINFO
*info
);
3492 #endif /* __WIN32K_NTUSER_H */