ReactOS 0.4.15-dev-6055-g36cdd34
ntuser.h
Go to the documentation of this file.
1#ifndef __WIN32K_NTUSER_H
2#define __WIN32K_NTUSER_H
3
4struct _PROCESSINFO;
5struct _THREADINFO;
6struct _DESKTOP;
7struct _WND;
8struct tagPOPUPMENU;
9
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 */
12
13#define HANDLEENTRY_DESTROY 1
14#define HANDLEENTRY_INDESTROY 2
15
16typedef struct _USER_HANDLE_ENTRY
17{
18 void *ptr; /* pointer to object */
19 union
20 {
22 struct _THREADINFO *pti; /* pointer to Win32ThreadInfo */
23 struct _PROCESSINFO *ppi; /* pointer to W32ProcessInfo */
24 };
25 unsigned char type; /* object type (0 if free) */
26 unsigned char flags;
27 unsigned short generation; /* generation counter */
29
30typedef struct _USER_HANDLE_TABLE
31{
37
38typedef enum _HANDLE_TYPE
39{
63 TYPE_GENERIC = 255
65
67{
80
82{
88
89typedef struct _LARGE_STRING
90{
96
97
98/* Based on ANSI_STRING */
99typedef struct _LARGE_ANSI_STRING
100{
106
107VOID
108NTAPI
111 IN PCSZ,
112 IN INT);
113
114VOID
115NTAPI
118 IN PCWSTR,
119 IN INT);
120
121BOOL
122NTAPI
126
127#define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1)
128
129/*
130 * DESKTOPINFO structure.
131 * See also: https://reactos.org/wiki/Techwiki:Win32k/DESKTOP
132 */
133typedef struct _DESKTOPINFO
134{
137 struct _WND *spwnd;
140
146
148
149 union
150 {
152 struct
153 {
155 };
156 };
157
160
161#define CTI_THREADSYSLOCK 0x0001
162#define CTI_INSENDMESSAGE 0x0002
163
164/*
165 * CLIENTTHREADINFO structure.
166 * See also: https://reactos.org/wiki/Techwiki:Win32k/CLIENTTHREADINFO
167 */
168typedef struct _CLIENTTHREADINFO
169{
175 ULONG timeLastRead; // Last time the message queue was read.
178
179typedef struct _HEAD
180{
184
185typedef struct _THROBJHEAD
186{
190
191typedef struct _THRDESKHEAD
192{
197
198typedef struct tagIMC
199{
205
206#ifndef _WIN64
208C_ASSERT(offsetof(IMC, head.cLockObj) == 0x4);
209C_ASSERT(offsetof(IMC, head.pti) == 0x8);
213#endif
214
215typedef struct _PROCDESKHEAD
216{
222
223typedef struct _PROCMARKHEAD
224{
229
230#define UserHMGetHandle(obj) ((obj)->head.h)
231
232/* Window Client Information structure */
233struct _ETHREAD;
234
235#define WEF_SETBYWNDPTI 0x0001
236
237typedef struct tagHOOK
238{
240 struct tagHOOK *phkNext; /* This is for user space. */
241 int HookId; /* Hook table index */
243 ULONG flags; /* Some internal flags */
247 /* ReactOS */
248 LIST_ENTRY Chain; /* Hook chain entry */
249 HOOKPROC Proc; /* Hook function */
250 BOOLEAN Ansi; /* Is it an Ansi hook? */
251 UNICODE_STRING ModuleName; /* Module name for global hooks */
253
254typedef struct tagCLIPBOARDDATA
255{
260
261/* THREADINFO Flags */
262#define TIF_INCLEANUP 0x00000001
263#define TIF_16BIT 0x00000002
264#define TIF_SYSTEMTHREAD 0x00000004
265#define TIF_CSRSSTHREAD 0x00000008
266#define TIF_TRACKRECTVISIBLE 0x00000010
267#define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
268#define TIF_DONTATTACHQUEUE 0x00000040
269#define TIF_DONTJOURNALATTACH 0x00000080
270#define TIF_WOW64 0x00000100
271#define TIF_INACTIVATEAPPMSG 0x00000200
272#define TIF_SPINNING 0x00000400
273#define TIF_PALETTEAWARE 0x00000800
274#define TIF_SHAREDWOW 0x00001000
275#define TIF_FIRSTIDLE 0x00002000
276#define TIF_WAITFORINPUTIDLE 0x00004000
277#define TIF_MOVESIZETRACKING 0x00008000
278#define TIF_VDMAPP 0x00010000
279#define TIF_DOSEMULATOR 0x00020000
280#define TIF_GLOBALHOOKER 0x00040000
281#define TIF_DELAYEDEVENT 0x00080000
282#define TIF_MSGPOSCHANGED 0x00100000
283#define TIF_SHUTDOWNCOMPLETE 0x00200000
284#define TIF_IGNOREPLAYBACKDELAY 0x00400000
285#define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
286#define TIF_GUITHREADINITIALIZED 0x02000000
287#define TIF_DISABLEIME 0x04000000
288#define TIF_INGETTEXTLENGTH 0x08000000
289#define TIF_ANSILENGTH 0x10000000
290#define TIF_DISABLEHOOKS 0x20000000
291
292typedef struct _CALLBACKWND
293{
295 struct _WND *pWnd;
298
299#define CI_TRANSACTION 0x00000001
300#define CI_QUEUEMSG 0x00000002
301#define CI_WOW 0x00000004
302#define CI_INITTHREAD 0x00000008
303#define CI_CURTHPRHOOK 0x00000010
304#define CI_CLASSESREGISTERED 0x00000020
305#define CI_IMMACTIVATE 0x00000040
306#define CI_TFSDISABLED 0x00000400
307
308/*
309 * CLIENTINFO structure.
310 * See also: https://reactos.org/wiki/Techwiki:Win32k/CLIENTINFO
311 */
312typedef struct _CLIENTINFO
313{
319 DWORD dwTIFlags; /* ThreadInfo TIF_Xxx flags for User space. */
340/* It's just a pointer reference not to be used w the structure in user space. */
343
344/* Make sure it fits into the TEB */
345C_ASSERT(sizeof(CLIENTINFO) <= sizeof(((PTEB)0)->Win32ClientInfo));
346
347#define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
348
349typedef struct tagDDEPACK
350{
354
355#define HRGN_NULL ((HRGN)0) /* NULL empty region */
356#define HRGN_WINDOW ((HRGN)1) /* region from window rcWindow */
357#define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */
358
359/* Menu Item fType. */
360#define MFT_RTOL 0x6000
361
362/* Menu Item fState. */
363#define MFS_HBMMENUBMP 0x20000000
364
365typedef struct tagITEM
366{
370 struct tagMENU *spSubMenu; /* Pop-up menu. */
373 USHORT *Xlpstr; /* Item text pointer. */
376 ULONG xItem; /* Item position. left */
377 ULONG yItem; /* " top */
378 ULONG cxItem; /* Item Size Width */
379 ULONG cyItem; /* " Height */
380 ULONG dxTab; /* X position of text after Tab */
381 ULONG ulX; /* underline.. start position */
382 ULONG ulWidth; /* underline.. width */
383 HBITMAP hbmp; /* bitmap */
384 INT cxBmp; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
385 INT cyBmp; /* Height " */
386 /* ReactOS */
389
390typedef struct tagMENULIST
391{
393 struct tagMENU *pMenu;
395
396/* Menu fFlags, upper byte is MNS_X style flags. */
397#define MNF_POPUP 0x0001
398#define MNF_UNDERLINE 0x0004
399#define MNF_INACTIVE 0x0010
400#define MNF_RTOL 0x0020
401#define MNF_DESKTOPMN 0x0040
402#define MNF_SYSDESKMN 0x0080
403#define MNF_SYSSUBMENU 0x0100
404/* Hack */
405#define MNF_SYSMENU 0x0200
406
407/* (other FocusedItem values give the position of the focused item) */
408#define NO_SELECTED_ITEM 0xffff
409
410typedef struct tagMENU
411{
413 ULONG fFlags; /* [Style flags | Menu flags] */
414 INT iItem; /* nPos of selected item, if -1 not selected. AKA focused item */
415 UINT cAlloced; /* Number of allocated items. Inc's of 8 */
416 UINT cItems; /* Number of items in the menu */
417 ULONG cxMenu; /* Width of the whole menu */
418 ULONG cyMenu; /* Height of the whole menu */
419 ULONG cxTextAlign; /* Offset of text when items have both bitmaps and text */
420 struct _WND *spwndNotify; /* window receiving the messages for ownerdraw */
421 PITEM rgItems; /* Array of menu items */
422 struct tagMENULIST *pParentMenus; /* If this is SubMenu, list of parents. */
424 ULONG cyMax; /* max height of the whole menu, 0 is screen height */
425 DWORD_PTR dwMenuData; /* application defined value */
426 HBRUSH hbrBack; /* brush for menu background */
427 INT iTop; /* Current scroll position Top */
428 INT iMaxTop; /* Current scroll position Max Top */
429 DWORD dwArrowsOn:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
430 /* ReactOS */
432 HWND hWnd; /* Window containing the menu, use POPUPMENU */
435
436typedef struct tagPOPUPMENU
437{
461 // ULONG fDesktopMenu:1;
476
477typedef struct _REGISTER_SYSCLASS
478{
479 /* This is a reactos specific class used to initialize the
480 system window classes during user32 initialization */
486 HBRUSH hBrush;
490
491typedef struct _CLSMENUNAME
492{
497
498typedef struct tagSBDATA
499{
505
506typedef struct tagSBINFO
507{
512
513typedef struct tagSBCALC
514{
532
533typedef enum _GETCPD
534{
535 UserGetCPDA2U = 0x01, /* " Unicode " */
536 UserGetCPDU2A = 0X02, /* " Ansi " */
540 UserGetCPDWndtoCls = 0X80
542
543typedef struct _CALLPROCDATA
544{
550
551#define CSF_SERVERSIDEPROC 0x0001
552#define CSF_ANSIPROC 0x0002
553#define CSF_WOWDEFERDESTROY 0x0004
554#define CSF_SYSTEMCLASS 0x0008
555#define CSF_WOWCLASS 0x0010
556#define CSF_WOWEXTRA 0x0020
557#define CSF_CACHEDSMICON 0x0040
558#define CSF_WIN40COMPAT 0x0080
559
560typedef struct _CLS
561{
562 struct _CLS *pclsNext;
569 PSTR lpszClientAnsiMenuName; /* For client use */
572 struct _CLS *pclsBase;
583 PWSTR lpszMenuName; /* kernel use */
587 UINT Unicode:1; // !CSF_ANSIPROC
588 UINT Global:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
592
593typedef struct _SBINFOEX
594{
598
599/* State Flags !Not ALL Implemented! */
600#define WNDS_HASMENU 0X00000001
601#define WNDS_HASVERTICALSCROOLLBAR 0X00000002
602#define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
603#define WNDS_HASCAPTION 0X00000008
604#define WNDS_SENDSIZEMOVEMSGS 0X00000010
605#define WNDS_MSGBOX 0X00000020
606#define WNDS_ACTIVEFRAME 0X00000040
607#define WNDS_HASSPB 0X00000080
608#define WNDS_NONCPAINT 0X00000100
609#define WNDS_SENDERASEBACKGROUND 0X00000200
610#define WNDS_ERASEBACKGROUND 0X00000400
611#define WNDS_SENDNCPAINT 0X00000800
612#define WNDS_INTERNALPAINT 0X00001000
613#define WNDS_UPDATEDIRTY 0X00002000
614#define WNDS_HIDDENPOPUP 0X00004000
615#define WNDS_FORCEMENUDRAW 0X00008000
616#define WNDS_DIALOGWINDOW 0X00010000
617#define WNDS_HASCREATESTRUCTNAME 0X00020000
618#define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */
619#define WNDS_ANSIWINDOWPROC 0x00080000
620#define WNDS_BEINGACTIVATED 0x00100000
621#define WNDS_HASPALETTE 0x00200000
622#define WNDS_PAINTNOTPROCESSED 0x00400000
623#define WNDS_SYNCPAINTPENDING 0x00800000
624#define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
625#define WNDS_RECEIVEDSUSPENDMSG 0x02000000
626#define WNDS_TOGGLETOPMOST 0x04000000
627#define WNDS_REDRAWIFHUNG 0x08000000
628#define WNDS_REDRAWFRAMEIFHUNG 0x10000000
629#define WNDS_ANSICREATOR 0x20000000
630#define WNDS_MAXIMIZESTOMONITOR 0x40000000
631#define WNDS_DESTROYED 0x80000000
632
633#define WNDSACTIVEFRAME 0x00000006
634
635/* State2 Flags !Not ALL Implemented! */
636#define WNDS2_WMPAINTSENT 0X00000001
637#define WNDS2_ENDPAINTINVALIDATE 0X00000002
638#define WNDS2_STARTPAINT 0X00000004
639#define WNDS2_OLDUI 0X00000008
640#define WNDS2_HASCLIENTEDGE 0X00000010
641#define WNDS2_BOTTOMMOST 0X00000020
642#define WNDS2_FULLSCREEN 0X00000040
643#define WNDS2_INDESTROY 0X00000080
644#define WNDS2_WIN31COMPAT 0X00000100
645#define WNDS2_WIN40COMPAT 0X00000200
646#define WNDS2_WIN50COMPAT 0X00000400
647#define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
648#define WNDS2_CLOSEBUTTONDOWN 0X00001000
649#define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
650#define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
651#define WNDS2_HELPBUTTONDOWN 0X00008000
652#define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
653#define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
654#define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
655#define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
656#define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
657#define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
658#define WNDS2_FORCENCPAINT 0X00400000
659#define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
660#define WNDS2_FULLSCREENMODE 0X01000000
661#define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
662#define WNDS2_NOMINMAXANIMATERECTS 0X10000000
663#define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
664#define WNDS2_SHELLHOOKREGISTERED 0X40000000
665#define WNDS2_WMCREATEMSGPROCESSED 0X80000000
666
667/* ExStyles2 */
668#define WS_EX2_CLIPBOARDLISTENER 0X00000001
669#define WS_EX2_LAYEREDINVALIDATE 0X00000002
670#define WS_EX2_REDIRECTEDFORPRINT 0X00000004
671#define WS_EX2_LINKED 0X00000008
672#define WS_EX2_LAYEREDFORDWM 0X00000010
673#define WS_EX2_LAYEREDLIMBO 0X00000020
674#define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
675#define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
676#define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
677#define WS_EX2_HASOVERLAY 0X00000200
678#define WS_EX2_CONSOLEWINDOW 0X00000400
679#define WS_EX2_CHILDNOACTIVATE 0X00000800
680
681#define WPF_MININIT 0x0008
682#define WPF_MAXINIT 0x0010
683
684/*
685 * WND structure.
686 * See also: https://reactos.org/wiki/Techwiki:Win32k/WND
687 */
688typedef struct _WND
689{
691#if 0
692 WW ww;
693#else
694 /* These fields should be moved in the WW at some point. */
695 /* Plese do not change them to keep the same layout with WW. */
698 /* Extended style. */
700 /* Style. */
702 /* Handle of the module that created the window. */
705#endif
714 /* Pointer to the window class. */
717 /* Property list head.*/
720 /* Scrollbar info */
722 /* system menu handle. */
724 //PMENU spmenuSys;
725 /* Window menu handle or window id */
726 UINT_PTR IDMenu; // Use spmenu
727 //PMENU spmenu;
730 /* Window name. */
732 /* Size of the extra data associated with the window. */
735 HIMC hImc; // Input context associated with this window.
738 //PD3DMATRIX pTransForm;
741
742 /* ReactOS */
743 struct
744 {
748 UINT flags; /* WPF_ flags. */
750
751 UINT Unicode:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
753 UINT HideFocus:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
754 UINT HideAccel:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
755
756 /* Scrollbar info */
757 PSBINFOEX pSBInfoex; // convert to PSBINFO
758 /* Entry in the list of thread windows. */
760
763
764#define PWND_BOTTOM ((PWND)1)
765
766typedef struct _SBWND
767{
773
774typedef struct _MDIWND
775{
780
781#define GWLP_MDIWND 4
782
783typedef struct _MENUWND
784{
788
789typedef struct _PFNCLIENT
790{
815
816/*
817 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
818 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
819 */
820
821typedef LRESULT
823 HWND,
824 UINT,
825 WPARAM,
826 LPARAM,
827 BOOL);
828
829typedef struct _PFNCLIENTWORKER
830{
843
844typedef LONG_PTR
845(NTAPI *PFN_FNID)(
846 PWND,
847 UINT,
848 WPARAM,
849 LPARAM,
850 ULONG_PTR);
851
852/* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
853#define FNID_FIRST 0x029A
854#define FNID_SCROLLBAR 0x029A
855#define FNID_ICONTITLE 0x029B
856#define FNID_MENU 0x029C
857#define FNID_DESKTOP 0x029D
858#define FNID_DEFWINDOWPROC 0x029E
859#define FNID_MESSAGEWND 0x029F
860#define FNID_SWITCH 0x02A0
861#define FNID_BUTTON 0x02A1
862#define FNID_COMBOBOX 0x02A2
863#define FNID_COMBOLBOX 0x02A3
864#define FNID_DIALOG 0x02A4
865#define FNID_EDIT 0x02A5
866#define FNID_LISTBOX 0x02A6
867#define FNID_MDICLIENT 0x02A7
868#define FNID_STATIC 0x02A8
869#define FNID_IME 0x02A9
870#define FNID_GHOST 0x02AA
871#define FNID_CALLWNDPROC 0x02AB
872#define FNID_CALLWNDPROCRET 0x02AC
873#define FNID_HKINLPCWPEXSTRUCT 0x02AD
874#define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
875#define FNID_MB_DLGPROC 0x02AF
876#define FNID_MDIACTIVATEDLGPROC 0x02B0
877#define FNID_SENDMESSAGE 0x02B1
878#define FNID_SENDMESSAGEFF 0x02B2
879/* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
880#define FNID_SENDMESSAGEWTOOPTION 0x02B3
881#define FNID_SENDMESSAGECALLPROC 0x02B4
882#define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
883#define FNID_TOOLTIPS 0x02B6
884#define FNID_SENDNOTIFYMESSAGE 0x02B7
885#define FNID_SENDMESSAGECALLBACK 0x02B8
886
887#define FNID_LAST FNID_SENDMESSAGECALLBACK
888
889#define FNID_NUM (FNID_LAST - FNID_FIRST + 1)
890#define FNID_NUMSERVERPROC (FNID_SWITCH - FNID_FIRST + 1)
891
892#define FNID_DDEML 0x2000 /* Registers DDEML */
893#define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
894 /* Seen during WM_CREATE on error exit too. */
895#define FNID_FREED 0x8000 /* Window being Freed... */
896
897#define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
898
899#define GETPFNCLIENTA(fnid) \
900 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
901#define GETPFNCLIENTW(fnid) \
902 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
903
904#define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
905
906/* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
907#define ICLS_BUTTON 0
908#define ICLS_EDIT 1
909#define ICLS_STATIC 2
910#define ICLS_LISTBOX 3
911#define ICLS_SCROLLBAR 4
912#define ICLS_COMBOBOX 5
913#define ICLS_MDICLIENT 6
914#define ICLS_COMBOLBOX 7
915#define ICLS_DDEMLEVENT 8
916#define ICLS_DDEMLMOTHER 9
917#define ICLS_DDEML16BIT 10
918#define ICLS_DDEMLCLIENTA 11
919#define ICLS_DDEMLCLIENTW 12
920#define ICLS_DDEMLSERVERA 13
921#define ICLS_DDEMLSERVERW 14
922#define ICLS_IME 15
923#define ICLS_GHOST 16
924#define ICLS_DESKTOP 17
925#define ICLS_DIALOG 18
926#define ICLS_MENU 19
927#define ICLS_SWITCH 20
928#define ICLS_ICONTITLE 21
929#define ICLS_TOOLTIPS 22
930#if (_WIN32_WINNT <= 0x0501)
931#define ICLS_UNKNOWN 22
932#define ICLS_NOTUSED 23
933#else
934#define ICLS_SYSSHADOW 23
935#define ICLS_HWNDMESSAGE 24
936#define ICLS_NOTUSED 25
937#endif
938#define ICLS_END 31
939
940#define COLOR_LAST COLOR_MENUBAR
941#define MAX_MB_STRINGS 11
942
943#define SRVINFO_DBCSENABLED 0x0002
944#define SRVINFO_IMM32 0x0004
945#define SRVINFO_APIHOOK 0x0010
946#define SRVINFO_CICERO_ENABLED 0x0020
947#define SRVINFO_KBDPREF 0x0080
948
949#define NUM_SYSCOLORS 31
950
951typedef struct tagOEMBITMAPINFO
952{
958
959typedef enum _OBI_TYPES
960{
967 OBI_CTYPES = 93
969
970typedef struct tagMBSTRING
971{
976
977typedef struct tagDPISERVERINFO
978{
979 INT gclBorder; /* 000 */
981 HFONT hMsgFont; /* 008 */
984 UINT wMaxBtnSize; /* 014 */
986
987/* PUSIFlags: */
988#define PUSIF_PALETTEDISPLAY 0x01
989#define PUSIF_SNAPTO 0x02
990#define PUSIF_COMBOBOXANIMATION 0x04
991#define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
992#define PUSIF_KEYBOARDCUES 0x20
993
994/*
995 * PERUSERSERVERINFO structure.
996 * See also: https://reactos.org/wiki/Techwiki:Win32k/SERVERINFO
997 */
998typedef struct _PERUSERSERVERINFO
999{
1004 HBRUSH hbrGray;
1039
1040/*
1041 * SERVERINFO structure.
1042 * See also: https://reactos.org/wiki/Techwiki:Win32k/SERVERINFO
1043 */
1044typedef struct tagSERVERINFO
1045{
1069
1070#ifdef _M_IX86
1071C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
1072#endif
1073
1074
1075/* Server event activity bits. */
1076#define SRV_EVENT_MENU 0x0001
1077#define SRV_EVENT_END_APPLICATION 0x0002
1078#define SRV_EVENT_RUNNING 0x0004
1079#define SRV_EVENT_NAMECHANGE 0x0008
1080#define SRV_EVENT_VALUECHANGE 0x0010
1081#define SRV_EVENT_STATECHANGE 0x0020
1082#define SRV_EVENT_LOCATIONCHANGE 0x0040
1083#define SRV_EVENT_CREATE 0x8000
1084
1085typedef struct _PROPLISTITEM
1086{
1090
1091#define PROPERTY_FLAG_SYSTEM 1
1092
1093typedef struct _PROPERTY
1094{
1100
1101typedef struct _BROADCASTPARM
1102{
1105 HDESK hDesk;
1109
1112
1113typedef struct _WNDMSG
1114{
1118
1119/*
1120 * SHAREDINFO structure.
1121 * See also: https://reactos.org/wiki/Techwiki:Win32k/SHAREDINFO
1122 */
1123typedef struct _SHAREDINFO
1124{
1125 PSERVERINFO psi; /* Global Server Info */
1126 PVOID aheList; /* Handle Entry List */
1127 PVOID pDispInfo; /* Global PDISPLAYINFO pointer */
1128 ULONG_PTR ulSharedDelta; /* Shared USER mapped section delta */
1133
1134/* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1135typedef struct _USERCONNECT
1136{
1142
1143/* WinNT 5.0 compatible user32 / win32k */
1144#define USER_VERSION MAKELONG(0x0000, 0x0005)
1145
1146#if defined(_M_IX86)
1147C_ASSERT(sizeof(USERCONNECT) == 0x124);
1148#endif
1149
1150typedef struct tagGETCLIPBDATA
1151{
1154 union
1155 {
1158 };
1160
1161typedef struct tagSETCLIPBDATA
1162{
1166
1167/* Used with NtUserSetCursorIconData, last parameter. */
1168typedef struct tagCURSORDATA
1169{
1181 HBITMAP hbmUserAlpha; /* Could be in W7U, not in W2k */
1191} CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
1192
1193/* CURSORF_flags: */
1194#define CURSORF_FROMRESOURCE 0x0001
1195#define CURSORF_GLOBAL 0x0002
1196#define CURSORF_LRSHARED 0x0004
1197#define CURSORF_ACON 0x0008
1198#define CURSORF_WOWCLEANUP 0x0010
1199#define CURSORF_ACONFRAME 0x0040
1200#define CURSORF_SECRET 0x0080
1201#define CURSORF_LINKED 0x0100
1202#define CURSORF_CURRENT 0x0200
1203
1204typedef struct tagIMEINFOEX
1205{
1216 struct
1217 {
1220 };
1222
1223typedef enum IMEINFOEXCLASS
1224{
1230
1231#define IS_IME_HKL(hkl) ((((ULONG_PTR)(hkl)) & 0xF0000000) == 0xE0000000)
1232#define IS_IMM_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_IMM32))
1233#define IS_CICERO_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_CICERO_ENABLED))
1234
1235typedef struct tagIMEUI
1236{
1243 struct {
1251 };
1254
1255/* Window Extra data container. */
1256typedef struct _IMEWND
1257{
1261
1262typedef struct tagTRANSMSG
1263{
1268
1269typedef struct tagTRANSMSGLIST
1270{
1274
1275#define DEFINE_IME_ENTRY(type, name, params, extended) typedef type (WINAPI *FN_##name) params;
1276#include "imetable.h"
1277#undef DEFINE_IME_ENTRY
1278
1279typedef struct IMEDPI
1280{
1281 struct IMEDPI *pNext;
1289#define DEFINE_IME_ENTRY(type, name, params, extended) FN_##name name;
1290#include "imetable.h"
1291#undef DEFINE_IME_ENTRY
1293
1294#ifndef _WIN64
1319C_ASSERT(offsetof(IMEDPI, CtfImeInquireExW) == 0x94);
1320C_ASSERT(offsetof(IMEDPI, CtfImeSelectEx) == 0x98);
1321C_ASSERT(offsetof(IMEDPI, CtfImeEscapeEx) == 0x9c);
1322C_ASSERT(offsetof(IMEDPI, CtfImeGetGuidAtom) == 0xa0);
1323C_ASSERT(offsetof(IMEDPI, CtfImeIsGuidMapEnable) == 0xa4);
1324C_ASSERT(sizeof(IMEDPI) == 0xa8);
1325#endif
1326
1327/* flags for IMEDPI.dwFlags */
1328#define IMEDPI_FLAG_UNLOADED 0x1
1329#define IMEDPI_FLAG_LOCKED 0x2
1330
1331/* unconfirmed */
1332typedef struct tagCLIENTIMC
1333{
1334 HANDLE hInputContext; /* LocalAlloc'ed LHND */
1343
1344#ifndef _WIN64
1345C_ASSERT(offsetof(CLIENTIMC, hInputContext) == 0x0);
1346C_ASSERT(offsetof(CLIENTIMC, cLockObj) == 0x4);
1348C_ASSERT(offsetof(CLIENTIMC, dwCompatFlags) == 0xc);
1350C_ASSERT(offsetof(CLIENTIMC, uCodePage) == 0x28);
1352C_ASSERT(sizeof(CLIENTIMC) == 0x34);
1353#endif
1354
1355/* flags for CLIENTIMC */
1356#define CLIENTIMC_WIDE 0x1
1357#define CLIENTIMC_ACTIVE 0x2
1358#define CLIENTIMC_UNKNOWN4 0x20
1359#define CLIENTIMC_DESTROY 0x40
1360#define CLIENTIMC_DISABLEIME 0x80
1361#define CLIENTIMC_UNKNOWN2 0x100
1362
1363DWORD
1364NTAPI
1366
1368NTAPI
1369NtUserBuildHimcList(DWORD dwThreadId, DWORD dwCount, HIMC *phList, LPDWORD pdwCount);
1370
1371DWORD
1372NTAPI
1374 HWND hwnd,
1375 DWORD x,
1376 DWORD width,
1377 DWORD y,
1378 LPRECT prc);
1379
1380DWORD
1381NTAPI
1383 HMENU hmenu,
1384 UINT uIDCheckItem,
1385 UINT uCheck);
1386
1387DWORD
1388NTAPI
1390 DWORD dwUnknown1,
1391 DWORD dwUnknown2,
1392 DWORD dwUnknown3);
1393
1394DWORD
1397 DWORD Unknown0,
1398 DWORD Unknown1);
1399
1400DWORD
1403 DWORD Unknown0,
1404 DWORD Unknown1);
1405
1406BOOL
1407NTAPI
1409 HMENU hMenu,
1410 UINT uPosition,
1411 UINT uFlags);
1412
1413BOOL
1414NTAPI
1416 HMENU hMenu);
1417
1418DWORD
1419NTAPI
1421 HWND hWnd,
1422 HDC hDC,
1423 PRECT hRect,
1424 HMENU hMenu,
1425 HFONT hFont);
1426
1427UINT
1428NTAPI
1430 HMENU hMenu,
1431 UINT uIDEnableItem,
1432 UINT uEnable);
1433
1434BOOL
1435NTAPI
1437
1438BOOL
1439NTAPI
1441 HWND hwnd,
1442 LONG idObject,
1443 LONG idItem,
1444 PMENUBARINFO pmbi);
1445
1446UINT
1447NTAPI
1449 HMENU hMenu,
1450 HMENU hSubMenu);
1451
1452BOOL
1453NTAPI
1455 HWND hWnd,
1456 HMENU hMenu,
1457 UINT uItem,
1458 LPRECT lprcItem);
1459
1460HMENU
1461NTAPI
1463 HWND hWnd,
1464 BOOL bRevert);
1465
1466BOOL
1467NTAPI
1469 HWND hWnd,
1470 HMENU hMenu,
1471 UINT uItemHilite,
1472 UINT uHilite);
1473
1474int
1475NTAPI
1477 HWND hWnd,
1478 HMENU hMenu,
1479 DWORD X,
1480 DWORD Y);
1481
1482BOOL
1483NTAPI
1485 HMENU hMenu,
1486 UINT uPosition,
1487 UINT uFlags);
1488
1489BOOL
1490NTAPI
1492 HWND hWnd,
1493 HMENU hMenu,
1494 BOOL bRepaint);
1495
1496BOOL
1497NTAPI
1499 HMENU hmenu,
1500 DWORD dwContextHelpId);
1501
1502BOOL
1503NTAPI
1505 HMENU hMenu,
1506 UINT uItem,
1507 UINT fByPos);
1508
1509BOOL
1510NTAPI
1512 HMENU hMenu);
1513
1514BOOL
1515NTAPI
1517 HWND hWnd,
1518 HMENU hMenu);
1519
1520BOOL
1521NTAPI
1523 HMENU hMenu,
1524 LPCMENUINFO lpcmi);
1525
1526BOOL
1527NTAPI
1529 HMENU hMenu,
1530 UINT uItem,
1531 BOOL fByPosition,
1532 BOOL bInsert,
1533 LPMENUITEMINFOW lpmii,
1534 PUNICODE_STRING lpszCaption);
1535
1536BOOL
1537NTAPI
1539 HMENU hmenu,
1540 UINT fuFlags,
1541 int x,
1542 int y,
1543 HWND hwnd,
1544 LPTPMPARAMS lptpm);
1545
1546HKL
1547NTAPI
1549 HKL hKL,
1550 ULONG Flags);
1551
1552DWORD
1553NTAPI
1555 HWND hWnd,
1556 DWORD Index,
1557 LONG NewValue);
1558
1559BOOL
1560NTAPI
1562 IN DWORD idAttach,
1563 IN DWORD idAttachTo,
1564 IN BOOL fAttach);
1565
1566HDC NTAPI
1568 HWND hWnd,
1569 PAINTSTRUCT *lPs);
1570
1571BOOL
1572NTAPI
1574 HDC hdc,
1575 INT nXDest,
1576 INT nYDest,
1577 INT nWidth,
1578 INT nHeight,
1579 INT nXSrc,
1580 INT nYSrc,
1581 DWORD dwRop);
1582
1583BOOL
1584NTAPI
1586 BOOL BlockIt);
1587
1589NTAPI
1591 HDESK hDesktop,
1593 BOOLEAN bChildren,
1595 ULONG cHwnd,
1596 HWND *phwndList,
1597 ULONG *pcHwndNeeded);
1598
1600NTAPI
1602 HWINSTA hWinSta,
1603 ULONG dwSize,
1605 PULONG pRequiredSize);
1606
1608NTAPI
1610 HWND hWnd,
1611 LPVOID Buffer,
1613 DWORD *Count);
1614
1615/* apfnSimpleCall indices from Windows XP SP 2 */
1616/* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1617#define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1618
1620{
1623#if (WIN32K_VERSION >= NTDDI_VISTA)
1628#endif
1630#if (WIN32K_VERSION < NTDDI_VISTA)
1634#endif
1639#if (WIN32K_VERSION >= NTDDI_VISTA)
1641#else
1642 NOPARAM_ROUTINE_GETREMOTEPROCESSID,
1643#endif
1646#if (WIN32K_VERSION >= NTDDI_VISTA)
1649#endif
1664#if (WIN32K_VERSION >= NTDDI_VISTA)
1666#endif
1669#if (WIN32K_VERSION < NTDDI_VISTA)
1671#endif
1673#if (WIN32K_VERSION >= NTDDI_VISTA)
1675#endif
1679#if (WIN32K_VERSION < NTDDI_VISTA)
1680 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
1681#endif
1685#if (WIN32K_VERSION < NTDDI_VISTA)
1686 ONEPARAM_ROUTINE_GETCURSORPOS,
1687#endif
1694#if (WIN32K_VERSION < NTDDI_VISTA)
1695 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1696#endif
1703#if (WIN32K_VERSION < NTDDI_VISTA)
1704 ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
1705#endif
1708#if (WIN32K_VERSION >= NTDDI_VISTA)
1710#endif
1714#if (WIN32K_VERSION >= NTDDI_VISTA)
1716#endif
1720#if (WIN32K_VERSION < NTDDI_VISTA)
1721 ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
1722#endif
1725#if (WIN32K_VERSION >= NTDDI_VISTA)
1727#endif
1732#if (WIN32K_VERSION < NTDDI_VISTA)
1733 X_ROUTINE_REMOTENOTIFY,
1734#endif
1749 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
1768#if (WIN32K_VERSION >= NTDDI_VISTA)
1771#endif
1775#if (WIN32K_VERSION >= NTDDI_VISTA)
1777#endif
1779#if (WIN32K_VERSION >= NTDDI_VISTA)
1781#else
1782 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1783#endif
1789#if (WIN32K_VERSION >= NTDDI_VISTA)
1791#endif
1795
1796DWORD
1797NTAPI
1799 HWND hWnd,
1800 DWORD Routine);
1801
1802BOOL
1803NTAPI
1805 HWND hWnd,
1806 DWORD Routine);
1807
1808HWND
1809NTAPI
1811 HWND hWnd,
1812 DWORD Routine);
1813
1814DWORD
1815NTAPI
1817 HWND hWnd,
1818 DWORD_PTR Param,
1819 DWORD Routine);
1820
1821DWORD
1822NTAPI
1824 HWND hWnd,
1825 DWORD_PTR Param,
1826 DWORD Routine);
1827
1828BOOL
1829NTAPI
1831 LPMSG msg,
1832 INT code);
1833
1834LRESULT
1835NTAPI
1837 int Code,
1838 WPARAM wParam,
1839 LPARAM lParam,
1840 BOOL Ansi);
1841
1843NTAPI
1845 DWORD Routine);
1846
1848NTAPI
1850 DWORD_PTR Param,
1851 DWORD Routine);
1852
1854NTAPI
1856 DWORD_PTR Param1,
1857 DWORD_PTR Param2,
1858 DWORD Routine);
1859
1860BOOL
1861NTAPI
1863 HWND hWndRemove,
1864 HWND hWndNewNext);
1865
1866LONG
1867NTAPI
1869 PUNICODE_STRING lpszDeviceName,
1871 DWORD dwflags,
1872 LPVOID lParam);
1873
1874BOOL
1875NTAPI
1878
1879BOOL
1880NTAPI
1882 HWND hwnd,
1885
1886DWORD
1887NTAPI
1889 UINT uVirtualKey,
1890 LPARAM lParam);
1891
1892HWND NTAPI
1894 HWND Parent,
1895 LONG x,
1896 LONG y,
1897 UINT Flags);
1898
1899BOOL
1900NTAPI
1902 RECT *lpRect);
1903
1904BOOL
1905NTAPI
1907
1908BOOL
1909NTAPI
1911 HDESK hDesktop);
1912
1913BOOL
1914NTAPI
1916 HWINSTA hWinSta);
1917
1918/* Console commands for NtUserConsoleControl */
1920{
1926
1928{
1932
1936 IN CONSOLECONTROL ConsoleCtrl,
1937 IN PVOID ConsoleCtrlInfo,
1938 IN ULONG ConsoleCtrlInfoLength);
1939
1940HANDLE
1941NTAPI
1943 PVOID pData,
1944 DWORD cbData);
1945
1946ULONG
1947NTAPI
1949 HACCEL Table,
1951 ULONG EntriesCount);
1952
1953DWORD
1954NTAPI
1956
1957HACCEL
1958NTAPI
1961 ULONG EntriesCount);
1962
1963BOOL
1964NTAPI
1966 HWND hWnd,
1968 int nWidth,
1969 int nHeight);
1970
1971HDESK
1972NTAPI
1975 PUNICODE_STRING lpszDesktopDevice,
1976 LPDEVMODEW lpdmw,
1977 DWORD dwFlags,
1978 ACCESS_MASK dwDesiredAccess);
1979
1980HIMC
1981NTAPI
1982NtUserCreateInputContext(ULONG_PTR dwClientImcData);
1983
1985NTAPI
1987 HANDLE hMem,
1988 PVOID pData,
1989 DWORD cbData,
1990 DWORD *pcbData);
1991
1992HWND
1993NTAPI
1995 DWORD dwExStyle,
1996 PLARGE_STRING plstrClassName,
1997 PLARGE_STRING plstrClsVersion,
1998 PLARGE_STRING plstrWindowName,
1999 DWORD dwStyle,
2000 int x,
2001 int y,
2002 int nWidth,
2003 int nHeight,
2005 HMENU hMenu,
2007 LPVOID lpParam,
2008 DWORD dwFlags,
2009 PVOID acbiBuffer);
2010
2011HWINSTA
2012NTAPI
2015 ACCESS_MASK dwDesiredAccess,
2016 DWORD Unknown2,
2020 DWORD Unknown6);
2021
2022BOOL
2023NTAPI
2025 IN HWND hwndClient,
2026 IN HWND hWndServer,
2028
2029DWORD
2030NTAPI
2032 DWORD Unknown0,
2033 DWORD Unknown1,
2034 DWORD Unknown2,
2036 DWORD Unknown4);
2037
2038BOOL
2039NTAPI
2041 IN HWND hwndClient,
2044
2045HDWP
2046NTAPI
2048 HDWP WinPosInfo,
2049 HWND Wnd,
2050 HWND WndInsertAfter,
2051 int x,
2052 int y,
2053 int cx,
2054 int cy,
2055 UINT Flags);
2056
2057BOOL
2058NTAPI
2060 HWND WindowHandle,
2061 PLARGE_STRING WindowText);
2062
2063BOOLEAN
2064NTAPI
2066 HACCEL Table);
2067
2068BOOL
2069NTAPI
2072 _In_ BOOL bForce);
2073
2074BOOL
2075NTAPI
2077
2078BOOLEAN
2079NTAPI
2081 HWND Wnd);
2082
2083BOOL
2084NTAPI
2086 DWORD dwThreadID);
2087
2088LRESULT
2089NTAPI
2091 PMSG pMsg);
2092
2093BOOL
2094NTAPI
2096 HWND hWnd,
2097 POINT pt);
2098
2099DWORD
2100NTAPI
2102 HWND hwnd1,
2103 HWND hwnd2,
2104 UINT u1,
2105 DWORD dw1,
2106 HCURSOR hc1);
2107
2108BOOL
2109NTAPI
2111 HWND hwnd,
2112 INT idAni,
2113 RECT *lprcFrom,
2114 RECT *lprcTo);
2115
2116BOOL
2117NTAPI
2119 HWND hWnd,
2120 HDC hDc,
2121 LPCRECT lpRc,
2122 UINT uFlags);
2123
2124BOOL
2125NTAPI
2127 HWND hWnd,
2128 HDC hDC,
2129 LPCRECT lpRc,
2130 HFONT hFont,
2131 HICON hIcon,
2132 const PUNICODE_STRING str,
2133 UINT uFlags);
2134
2135/* Used with NtUserDrawIconEx, last parameter. */
2136typedef struct _DRAWICONEXDATA
2137{
2140 int cx;
2141 int cy;
2143
2144BOOL
2145NTAPI
2147 HDC hdc,
2148 int xLeft,
2149 int yTop,
2150 HICON hIcon,
2151 int cxWidth,
2152 int cyWidth,
2153 UINT istepIfAniCur,
2154 HBRUSH hbrFlickerFreeDraw,
2155 UINT diFlags,
2156 BOOL bMetaHDC,
2157 PVOID pDIXData);
2158
2159BOOL
2160NTAPI
2162
2163BOOL
2164NTAPI
2166 HWND hWnd,
2167 UINT wSBflags,
2168 UINT wArrows);
2169
2170BOOL
2171NTAPI
2173 HDWP WinPosInfo,
2174 BOOL bAsync);
2175
2176BOOL
2177NTAPI
2179 HWND hWnd,
2180 CONST PAINTSTRUCT *lPs);
2181
2182BOOL
2183NTAPI
2185 PUNICODE_STRING lpDevice, /* device name */
2186 DWORD iDevNum, /* display device */
2187 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
2188 DWORD dwFlags); /* reserved */
2189
2190/*
2191BOOL
2192NTAPI
2193NtUserEnumDisplayMonitors(
2194 HDC hdc,
2195 LPCRECT lprcClip,
2196 MONITORENUMPROC lpfnEnum,
2197 LPARAM dwData);
2198*/
2199/* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2200INT
2201NTAPI
2204 OPTIONAL IN LPCRECT pRect,
2205 OPTIONAL OUT HMONITOR *hMonitorList,
2206 OPTIONAL OUT LPRECT monitorRectList,
2207 OPTIONAL IN DWORD listSize);
2208
2209
2211NTAPI
2213 PUNICODE_STRING lpszDeviceName,
2215 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
2216 DWORD dwFlags);
2217
2218DWORD
2219NTAPI
2221 DWORD Unknown0);
2222
2223INT
2224NTAPI
2226 HDC hDC,
2227 HWND hWnd);
2228
2229BOOL
2230NTAPI
2232 HWND hWndPaint,
2233 HWND hWndPaint1,
2234 HDC hDC,
2235 HBRUSH hBrush);
2236
2237HWND
2238NTAPI
2241 HWND hwndChildAfter,
2242 PUNICODE_STRING ucClassName,
2243 PUNICODE_STRING ucWindowName,
2244 DWORD dwUnknown);
2245
2246BOOL
2247NTAPI
2249 IN PFLASHWINFO pfwi);
2250
2251BOOL
2252NTAPI
2254 HWND hwnd,
2255 INT iItem,
2256 PALTTABINFO pati,
2257 LPWSTR pszItemText,
2258 UINT cchItemText,
2259 BOOL Ansi);
2260
2261HWND
2262NTAPI
2264 HWND hWnd,
2265 UINT Flags);
2266
2267DWORD
2268NTAPI
2270
2271SHORT
2272NTAPI
2274 INT Key);
2275
2276_Success_(return != 0)
2277_At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2))
2278ULONG
2280NtUserGetAtomName(
2281 _In_ ATOM atom,
2282 _Inout_ PUNICODE_STRING pustrName);
2283
2284UINT
2285NTAPI
2287
2288BOOL
2289NTAPI
2291 LPPOINT lpPoint);
2292
2293BOOL
2294NTAPI
2297 PUNICODE_STRING ClassName,
2298 LPWNDCLASSEXW wcex,
2299 LPWSTR *ppszMenuName,
2300 BOOL Ansi);
2301
2302INT
2303NTAPI
2305 HWND hWnd,
2306 BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2307 PUNICODE_STRING ClassName);
2308
2309HANDLE
2310NTAPI
2312 UINT fmt,
2313 PGETCLIPBDATA pgcd);
2314
2315INT
2316NTAPI
2318 UINT uFormat,
2319 LPWSTR lpszFormatName,
2320 INT cchMaxCount);
2321
2322HWND
2323NTAPI
2325
2326DWORD
2327NTAPI
2329
2330HWND
2331NTAPI
2333
2334BOOL
2335NTAPI
2337 RECT *lpRect);
2338
2339BOOL
2340NTAPI
2342 HWND hWnd,
2343 PCOMBOBOXINFO pcbi);
2344
2345HBRUSH
2346NTAPI
2348 HWND hwnd,
2349 HDC hdc,
2350 UINT ctlType);
2351
2352HBRUSH
2353NTAPI
2356 HWND hwnd,
2357 HDC hdc,
2358 UINT CtlMsg);
2359
2361NTAPI
2363 HWND hWnd,
2364 GETCPD Flags,
2365 ULONG_PTR Proc);
2366
2367HCURSOR
2368NTAPI
2370 HCURSOR hCursor,
2371 DWORD istep,
2372 INT *rate_jiffies,
2373 DWORD *num_steps);
2374
2375BOOL
2376NTAPI
2378 PCURSORINFO pci);
2379
2380HDC
2381NTAPI
2383 HWND hWnd);
2384
2385HDC
2386NTAPI
2388 HWND hWnd,
2389 HANDLE hRegion,
2390 ULONG Flags);
2391
2392UINT
2393NTAPI
2395
2396HWND
2397NTAPI
2399
2400DWORD
2401NTAPI
2404 DWORD uiFlags);
2405
2406BOOL
2407NTAPI
2409 DWORD idThread,
2410 LPGUITHREADINFO lpgui);
2411
2413BOOL
2414NTAPI
2415NtUserGetIconInfo(
2416 _In_ HANDLE hCurIcon,
2422
2423BOOL
2424NTAPI
2426 HANDLE Handle,
2427 UINT istepIfAniCur,
2428 LONG *plcx,
2429 LONG *plcy);
2430
2431BOOL
2432NTAPI
2433NtUserGetImeHotKey(DWORD dwHotKeyId,
2434 LPUINT lpuModifiers,
2435 LPUINT lpuVirtualKey,
2436 LPHKL lphKL);
2437
2438BOOL
2439NTAPI
2441 PIMEINFOEX pImeInfoEx,
2442 IMEINFOEXCLASS SearchType);
2443
2444DWORD
2445NTAPI
2447 HWND hwnd,
2448 LPRECT rectWnd,
2449 LPPOINT ptIcon);
2450
2451HKL
2452NTAPI
2454 DWORD dwThreadid);
2455
2456UINT
2457NTAPI
2459 ULONG nItems,
2460 HKL *pHklBuff);
2461
2462BOOL
2463NTAPI
2465 _Inout_ PUNICODE_STRING pustrName);
2466
2467DWORD
2468NTAPI
2470 LPBYTE Unknown0);
2471
2472DWORD
2473NTAPI
2475 DWORD TypeFlag);
2476
2477DWORD
2478NTAPI
2480 LONG lParam,
2481 LPWSTR lpString,
2482 int nSize);
2483
2484SHORT
2485NTAPI
2487 INT VirtKey);
2488
2489BOOL
2490NTAPI
2492 HWND hwnd,
2493 COLORREF *pcrKey,
2494 BYTE *pbAlpha,
2495 DWORD *pdwFlags);
2496
2497DWORD
2498NTAPI
2500 HWND hWnd);
2501
2502BOOL
2505 PMSG pMsg,
2506 HWND hWnd,
2507 UINT MsgFilterMin,
2508 UINT MsgFilterMax);
2509
2510DWORD
2511NTAPI
2513 UINT cbSize,
2514 LPMOUSEMOVEPOINT lppt,
2515 LPMOUSEMOVEPOINT lpptBuf,
2516 int nBufPoints,
2517 DWORD resolution);
2518
2519BOOL
2520NTAPI
2522 HANDLE hObject,
2523 DWORD nIndex,
2524 PVOID pvInformation,
2525 DWORD nLength,
2526 PDWORD nLengthNeeded);
2527
2528HWND
2529NTAPI
2531
2532INT
2533NTAPI
2535 UINT *paFormatPriorityList,
2536 INT cFormats);
2537
2538HWINSTA
2539NTAPI
2541
2542DWORD
2543NTAPI
2545 PRAWINPUT pData,
2546 PUINT pcbSize,
2547 UINT cbSizeHeader);
2548
2549DWORD
2550NTAPI
2552 HRAWINPUT hRawInput,
2553 UINT uiCommand,
2554 LPVOID pData,
2555 PUINT pcbSize,
2556 UINT cbSizeHeader);
2557
2558DWORD
2559NTAPI
2561 HANDLE hDevice,
2562 UINT uiCommand,
2563 LPVOID pData,
2564 PUINT pcbSize);
2565
2566DWORD
2567NTAPI
2569 PRAWINPUTDEVICELIST pRawInputDeviceList,
2570 PUINT puiNumDevices,
2571 UINT cbSize);
2572
2573DWORD
2574NTAPI
2576 PRAWINPUTDEVICE pRawInputDevices,
2577 PUINT puiNumDevices,
2578 UINT cbSize);
2579
2580BOOL
2581NTAPI
2583 HWND hWnd,
2584 LONG idObject,
2585 PSCROLLBARINFO psbi);
2586
2587HDESK
2588NTAPI
2591 HDESK hConsoleDesktop);
2592
2594{
2614 THREADSTATE_PROGMANWINDOW, /* FIXME: Delete this HACK */
2615 THREADSTATE_TASKMANWINDOW, /* FIXME: Delete this HACK */
2616};
2617
2619NTAPI
2621 DWORD Routine);
2622
2623BOOLEAN
2624NTAPI
2626 HWND hwnd,
2627 PTITLEBARINFO pti);
2628
2629BOOL
2630NTAPI
2632 HWND hWnd,
2633 LPRECT lpRect,
2634 BOOL fErase);
2635
2636INT
2637NTAPI
2639 HWND hWnd,
2640 HRGN hRgn,
2641 BOOL bErase);
2642
2643HDC
2644NTAPI
2646 HWND hWnd);
2647
2648BOOL
2649NTAPI
2651 HWND hWnd,
2652 WINDOWPLACEMENT *lpwndpl);
2653
2654PCLS
2655NTAPI
2658 PUNICODE_STRING ClassName);
2659
2660DWORD
2661NTAPI
2663 DWORD dwUnknown1,
2664 DWORD dwUnknown2,
2665 DWORD dwUnknown3);
2666
2667BOOL
2668NTAPI
2670 HWND hWndClient,
2671 HWND hWndServer);
2672
2674NTAPI
2676 DWORD dwWinVersion,
2677 HANDLE hPowerRequestEvent,
2678 HANDLE hMediaRequestEvent);
2679
2681NTAPI
2686 HINSTANCE hmodUser);
2687
2688DWORD
2689NTAPI
2691 DWORD Unknown0,
2692 DWORD Unknown1,
2693 DWORD Unknown2,
2699 DWORD Unknown8,
2702 DWORD Unknown11);
2703
2704INT
2705NTAPI
2707 HWND hWnd,
2708 LPWSTR lpString,
2709 INT nMaxCount);
2710
2711BOOL
2712NTAPI
2714 HWND hWnd,
2715 CONST RECT *lpRect,
2716 BOOL bErase);
2717
2718BOOL
2719NTAPI
2721 HWND hWnd,
2722 HRGN hRgn,
2723 BOOL bErase);
2724
2725BOOL
2726NTAPI
2728 UINT format);
2729
2730BOOL
2731NTAPI
2733 HWND hWnd,
2734 UINT_PTR uIDEvent);
2735
2736HKL
2737NTAPI
2739 IN HANDLE hFile,
2740 IN DWORD offTable,
2741 IN PVOID pTables,
2742 IN HKL hOldKL,
2743 IN PUNICODE_STRING puszKLID,
2744 IN DWORD dwNewKL,
2745 IN UINT Flags);
2746
2747BOOL
2748NTAPI
2750 HWINSTA hWindowStation);
2751
2752BOOL
2753NTAPI
2755 HWND hWnd);
2756
2757BOOL
2758NTAPI
2760
2761UINT
2762NTAPI
2764 UINT keyCode,
2765 UINT transType,
2766 DWORD keyboardId,
2767 HKL dwhkl);
2768
2769typedef struct tagDOSENDMESSAGE
2770{
2774}
2776
2777BOOL
2778NTAPI
2780 HWND hWnd,
2781 UINT Msg,
2782 WPARAM wParam,
2783 LPARAM lParam,
2784 ULONG_PTR ResultInfo,
2785 DWORD dwType, /* FNID_XX types */
2786 BOOL Ansi);
2787
2788DWORD
2789NTAPI
2791 HWND hWnd,
2792 UINT cmd, /* Wine SW_ commands */
2793 BOOL Hide);
2794
2795DWORD
2796NTAPI
2798
2799DWORD
2800NTAPI
2802 DWORD Unknown0,
2803 DWORD Unknown1);
2804
2805DWORD
2806NTAPI
2808 DWORD Unknown0,
2809 DWORD Unknown1);
2810
2811BOOL
2812NTAPI
2814 HWND hWnd,
2815 int X,
2816 int Y,
2817 int nWidth,
2818 int nHeight,
2819 BOOL bRepaint
2820);
2821
2822DWORD
2823NTAPI
2824NtUserNotifyIMEStatus(HWND hwnd, BOOL fOpen, DWORD dwConversion);
2825
2826BOOL
2827NTAPI
2829 HANDLE NewProcessId,
2830 HANDLE ParentThreadId,
2831 ULONG dwUnknown,
2832 ULONG CreateFlags);
2833
2834VOID
2835NTAPI
2837 DWORD Event,
2838 HWND hWnd,
2839 LONG idObject,
2840 LONG idChild);
2841
2842BOOL
2843NTAPI
2845 HWND hWnd,
2846 DWORD Unknown1);
2847
2848HDESK
2849NTAPI
2852 DWORD dwFlags,
2853 ACCESS_MASK dwDesiredAccess);
2854
2855HDESK
2856NTAPI
2858 DWORD dwFlags,
2859 BOOL fInherit,
2860 ACCESS_MASK dwDesiredAccess);
2861
2862HWINSTA
2863NTAPI
2866 ACCESS_MASK dwDesiredAccess);
2867
2868BOOL
2869NTAPI
2871 HDC hDC);
2872
2873DWORD
2874NTAPI
2876 HWND hWnd,
2877 HDC hDC,
2878 ULONG left, // x,
2879 ULONG right, // width, // Scale the edge thickness, offset?
2880 ULONG top, // y,
2881 BOOL bActive); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground.
2882
2883BOOL
2886 PMSG pMsg,
2887 HWND hWnd,
2888 UINT MsgFilterMin,
2889 UINT MsgFilterMax,
2890 UINT RemoveMsg);
2891
2892BOOL
2893NTAPI
2895 HWND hWnd,
2896 UINT Msg,
2897 WPARAM wParam,
2898 LPARAM lParam);
2899
2900BOOL
2901NTAPI
2903 DWORD idThread,
2904 UINT Msg,
2905 WPARAM wParam,
2906 LPARAM lParam);
2907
2908BOOL
2909NTAPI
2911 HWND hwnd,
2912 HDC hdcBlt,
2913 UINT nFlags);
2914
2916NTAPI
2919 OUT PUSERCONNECT pUserConnect,
2920 IN ULONG Size); /* sizeof(USERCONNECT) */
2921
2923NTAPI
2925 IN HANDLE ThreadHandle,
2927 OUT PVOID ThreadInformation,
2929
2931NTAPI
2933 HIMC hIMC,
2934 DWORD dwType);
2935
2936DWORD
2937NTAPI
2939 DWORD Unknown0);
2940
2941DWORD
2942NTAPI
2944 DWORD Unknown0,
2945 DWORD Unknown1,
2946 DWORD Unknown2,
2948 DWORD Unknown4);
2949
2950#define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2951#define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2952#define QUERY_WINDOW_ACTIVE 0x02
2953#define QUERY_WINDOW_FOCUS 0x03
2954#define QUERY_WINDOW_ISHUNG 0x04
2955#define QUERY_WINDOW_REAL_ID 0x05
2956#define QUERY_WINDOW_FOREGROUND 0x06
2957#define QUERY_WINDOW_DEFAULT_IME 0x07
2958#define QUERY_WINDOW_DEFAULT_ICONTEXT 0x08
2959#define QUERY_WINDOW_ACTIVE_IME 0x09
2960
2962NTAPI
2964 HWND hWnd,
2965 DWORD Index);
2966
2967BOOL
2968NTAPI
2970 LPMSG lpMsg,
2971 HWND hWnd,
2972 UINT wMsgFilterMin,
2973 UINT wMsgFilterMax,
2974 UINT wRemoveMsg,
2975 BOOL bGMSG);
2976
2977HWND
2978NTAPI
2980 HWND Parent,
2981 LONG x,
2982 LONG y);
2983
2984BOOL
2985NTAPI
2987 DWORD dwWakeMask,
2988 UINT uTimeout);
2989
2990BOOL
2991NTAPI
2993 HWND hWnd,
2994 CONST RECT *lprcUpdate,
2995 HRGN hrgnUpdate,
2996 UINT flags);
2997
2999NTAPI
3001 WNDCLASSEXW* lpwcx,
3002 PUNICODE_STRING pustrClassName,
3003 PUNICODE_STRING pustrCVersion,
3004 PCLSMENUNAME pClassMenuName,
3005 DWORD fnID,
3006 DWORD Flags,
3007 LPDWORD pWow);
3008
3009BOOL
3010NTAPI
3012 IN PCRAWINPUTDEVICE pRawInputDevices,
3013 IN UINT uiNumDevices,
3014 IN UINT cbSize);
3015
3016BOOL
3017NTAPI
3019 PUNICODE_STRING m_dllname1,
3020 PUNICODE_STRING m_funname1,
3021 DWORD dwUnknown3,
3022 DWORD dwUnknown4);
3023
3024BOOL
3025NTAPI
3027 HWND hWnd,
3028 int id,
3029 UINT fsModifiers,
3030 UINT vk);
3031
3032DWORD
3033NTAPI
3035 DWORD Unknown0);
3036
3037UINT
3038NTAPI
3040 PUNICODE_STRING MessageName);
3041
3042DWORD
3043NTAPI
3045 DWORD dwUnknown1,
3046 DWORD dwUnknown2,
3047 DWORD dwUnknown3);
3048
3049DWORD
3050NTAPI
3052 DWORD dwUnknown1,
3053 DWORD dwUnknown2,
3054 DWORD dwUnknown3,
3055 DWORD dwUnknown4);
3056
3057DWORD
3058NTAPI
3060
3061DWORD
3062NTAPI
3064
3065HANDLE
3066NTAPI
3068 HWND hWnd,
3069 ATOM Atom);
3070
3071HDESK
3072NTAPI
3075 IN PUNICODE_STRING DesktopPath,
3076 IN BOOL bInherit,
3077 OUT HWINSTA* phWinSta);
3078
3079DWORD
3080NTAPI
3082 DWORD Unknown0);
3083
3084BOOL
3085NTAPI
3087 HWND hwnd,
3088 int fnBar,
3089 PSBDATA pSBData,
3090 LPSCROLLINFO lpsi);
3091
3092BOOL
3093NTAPI
3095 HDC hDC,
3096 int dx,
3097 int dy,
3098 CONST RECT *lprcScroll,
3099 CONST RECT *lprcClip ,
3100 HRGN hrgnUpdate,
3101 LPRECT lprcUpdate);
3102
3103DWORD
3104NTAPI
3106 HWND hWnd,
3107 INT dx,
3108 INT dy,
3109 const RECT *rect,
3110 const RECT *clipRect,
3111 HRGN hrgnUpdate,
3112 LPRECT rcUpdate,
3113 UINT flags);
3114
3115UINT
3116NTAPI
3118 UINT nInputs,
3119 LPINPUT pInput,
3120 INT cbSize);
3121
3122HWND
3123NTAPI
3125 HWND Wnd);
3126
3127BOOL
3128NTAPI
3130 HWND hWnd,
3131 DWORD dwLevel);
3132
3133HWND
3134NTAPI
3136 HWND Wnd);
3137
3139NTAPI
3141 HWND hWnd,
3142 INT Offset,
3143 ULONG_PTR dwNewLong,
3144 BOOL Ansi);
3145
3146WORD
3147NTAPI
3149 HWND hWnd,
3150 INT nIndex,
3151 WORD wNewWord);
3152
3153HANDLE
3154NTAPI
3156 UINT fmt,
3157 HANDLE hMem,
3158 PSETCLIPBDATA scd);
3159
3160HWND
3161NTAPI
3163 HWND hWndNewViewer);
3164
3165HPALETTE
3166NTAPI
3168 HDC hDC,
3169 HPALETTE hpal,
3170 BOOL ForceBackground);
3171
3172DWORD
3173NTAPI
3175 DWORD Unknown0,
3176 DWORD Unknown1);
3177
3178HCURSOR
3179NTAPI
3181 HCURSOR hCursor);
3182
3183BOOL
3184NTAPI
3186 HANDLE Handle,
3188
3189BOOL
3190NTAPI
3192 _In_ HCURSOR hCursor,
3193 _In_opt_ PUNICODE_STRING pustrModule,
3194 _In_opt_ PUNICODE_STRING puSrcName,
3195 _In_ const CURSORDATA *pCursorData);
3196
3198{
3203
3204HICON
3205NTAPI
3207 _In_ PUNICODE_STRING pustrModule,
3208 _In_ PUNICODE_STRING pustrRsrc,
3210
3214 VOID);
3215
3216DWORD
3217NTAPI
3219 DWORD Unknown0,
3220 DWORD Unknown1);
3221
3222DWORD
3225 DWORD Unknown0);
3226
3227HWND
3228NTAPI
3230 HWND hWnd);
3231
3232BOOL
3233NTAPI
3235 DWORD dwHotKeyId,
3236 UINT uModifiers,
3237 UINT uVirtualKey,
3238 HKL hKL,
3239 DWORD dwAction);
3240
3241BOOL
3242NTAPI
3244 PIMEINFOEX pImeInfoEx);
3245
3246BOOL
3247NTAPI
3248NtUserSetImeOwnerWindow(HWND hImeWnd, HWND hwndFocus);
3249
3250DWORD
3251NTAPI
3253 DWORD dwUnknown1,
3254 DWORD dwUnknown2,
3255 DWORD dwUnknown3,
3256 DWORD dwUnknown4);
3257
3259NTAPI
3261 IN HANDLE ThreadHandle,
3263 IN PVOID ThreadInformation,
3265
3266DWORD
3267NTAPI
3269 HWND hwnd,
3270 UINT showCmd,
3271 LPRECT rect,
3272 LPPOINT pt);
3273
3274BOOL
3275NTAPI
3277 LPBYTE lpKeyState);
3278
3279BOOL
3280NTAPI
3282 HWND hwnd,
3283 COLORREF crKey,
3284 BYTE bAlpha,
3285 DWORD dwFlags);
3286
3287BOOL
3288NTAPI
3290 HWND hWnd);
3291
3292BOOL
3293NTAPI
3295 HANDLE hObject,
3296 DWORD nIndex,
3297 PVOID pvInformation,
3298 DWORD nLength);
3299
3300HWND
3301NTAPI
3304 HWND hWndNewParent);
3305
3306BOOL
3307NTAPI
3309 HWINSTA hWindowStation);
3310
3311BOOL
3312NTAPI
3314 HWND hWnd,
3315 ATOM Atom,
3316 HANDLE Data);
3317
3318DWORD
3319NTAPI
3321 DWORD Unknown0);
3322
3323DWORD
3324NTAPI
3326 HWND hwnd,
3327 int fnBar,
3328 LPCSCROLLINFO lpsi,
3329 BOOL bRedraw);
3330
3331BOOL
3332NTAPI
3334 HWND hwndShell,
3335 HWND hwndShellListView);
3336
3337BOOL
3338NTAPI
3340 int cElements,
3341 IN CONST INT *lpaElements,
3342 IN CONST COLORREF *lpaRgbValues,
3343 FLONG Flags);
3344
3345BOOL
3346NTAPI
3348 HCURSOR hcur,
3349 DWORD id);
3350
3351BOOL
3352NTAPI
3354 HDESK hDesktop);
3355
3356DWORD
3357NTAPI
3359 DWORD Unknown0,
3360 DWORD Unknown1);
3361
3363NTAPI
3365 HWND hWnd,
3366 UINT_PTR nIDEvent,
3367 UINT uElapse,
3368 TIMERPROC lpTimerFunc);
3369
3370DWORD
3371NTAPI
3372NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL);
3373
3375NTAPI
3377 HWND hWnd,
3378 UINT_PTR nIDEvent,
3379 UINT uElapse,
3380 TIMERPROC lpTimerFunc);
3381
3382BOOL
3383NTAPI
3385 HWND hWnd,
3386 WORD fnID);
3387
3388LONG
3389NTAPI
3391 HWND hWnd,
3392 DWORD Index,
3393 LONG NewValue,
3394 BOOL Ansi);
3395
3396#ifdef _WIN64
3398NTAPI
3400 HWND hWnd,
3401 DWORD Index,
3402 LONG_PTR NewValue,
3403 BOOL Ansi);
3404#else
3405#define NtUserSetWindowLongPtr NtUserSetWindowLong
3406#endif // _WIN64
3407
3408BOOL
3409NTAPI
3411 HWND hWnd,
3412 WINDOWPLACEMENT *lpwndpl);
3413
3414BOOL
3415NTAPI
3417 HWND hWnd,
3418 HWND hWndInsertAfter,
3419 int X,
3420 int Y,
3421 int cx,
3422 int cy,
3423 UINT uFlags);
3424
3425INT
3426NTAPI
3428 HWND hWnd,
3429 HRGN hRgn,
3430 BOOL bRedraw);
3431
3432HHOOK
3433NTAPI
3435 int idHook,
3436 HOOKPROC lpfn,
3437 BOOL Ansi);
3438
3439HHOOK
3440NTAPI
3442 HINSTANCE Mod,
3444 DWORD ThreadId,
3445 int HookId,
3446 HOOKPROC HookProc,
3447 BOOL Ansi);
3448
3449BOOL
3450NTAPI
3452 IN HWINSTA hWindowStation,
3453 IN PLUID pluid,
3454 IN PSID psid OPTIONAL,
3455 IN DWORD size);
3456
3457WORD
3458NTAPI
3460 HWND hWnd,
3461 INT Index,
3462 WORD NewVal);
3463
3465NTAPI
3467 UINT eventMin,
3468 UINT eventMax,
3469 HMODULE hmodWinEventProc,
3470 PUNICODE_STRING puString,
3471 WINEVENTPROC lpfnWinEventProc,
3472 DWORD idProcess,
3473 DWORD idThread,
3474 UINT dwflags);
3475
3476BOOL
3477NTAPI
3479 HWND hWnd);
3480
3481BOOL
3482NTAPI
3484 HWND hWnd);
3485
3486DWORD
3487NTAPI
3489 HWND hWnd,
3490 int wBar,
3491 DWORD bShow);
3492
3493BOOL
3494NTAPI
3496 HWND hWnd,
3497 LONG nCmdShow);
3498
3499BOOL
3500NTAPI
3502 HWND hWnd,
3503 LONG nCmdShow);
3504
3505BOOL
3506NTAPI
3508
3509BOOL
3510NTAPI
3512 HDESK hDesktop);
3513
3514BOOL
3515NTAPI
3517 UINT uiAction,
3518 UINT uiParam,
3519 PVOID pvParam,
3520 UINT fWinIni);
3521
3522DWORD
3523NTAPI
3525 DWORD dwUnknown1);
3526
3527INT
3528NTAPI
3530 UINT wVirtKey,
3531 UINT wScanCode,
3532 PBYTE lpKeyState,
3533 LPWSTR pwszBuff,
3534 int cchBuff,
3535 UINT wFlags,
3536 HKL dwhkl);
3537
3538BOOL
3539NTAPI
3541 LPTRACKMOUSEEVENT lpEventTrack);
3542
3543int
3544NTAPI
3546 HWND Window,
3547 HACCEL Table,
3548 LPMSG Message);
3549
3550BOOL
3551NTAPI
3553 LPMSG lpMsg,
3554 UINT flags );
3555
3556BOOL
3557NTAPI
3559 HHOOK Hook);
3560
3561BOOL
3562NTAPI
3564 HWINEVENTHOOK hWinEventHook);
3565
3566BOOL
3567NTAPI
3569 HKL hKl);
3570
3571BOOL
3572NTAPI
3574 HWINSTA hWindowStation);
3575
3576BOOL
3577NTAPI
3579 PUNICODE_STRING ClassNameOrAtom,
3581 PCLSMENUNAME pClassMenuName);
3582
3583BOOL
3584NTAPI
3586 HWND hWnd,
3587 int id);
3588
3589BOOL
3590NTAPI
3592
3593BOOL
3594NTAPI
3596 HIMC hIMC,
3597 DWORD dwType,
3598 DWORD_PTR dwValue);
3599
3600DWORD
3601NTAPI
3603 DWORD Unknown0,
3604 DWORD Unknown1,
3605 DWORD Unknown2);
3606
3607BOOL
3608NTAPI
3610 HWND hwnd,
3611 HDC hdcDst,
3612 POINT *pptDst,
3613 SIZE *psize,
3614 HDC hdcSrc,
3615 POINT *pptSrc,
3616 COLORREF crKey,
3617 BLENDFUNCTION *pblend,
3618 DWORD dwFlags,
3619 RECT *prcDirty);
3620
3621BOOL
3622NTAPI
3625 BOOL bEnable);
3626
3627BOOL
3628NTAPI
3630 IN HANDLE hUserHandle,
3631 IN HANDLE hJob,
3632 IN BOOL bGrant);
3633
3634BOOL
3635NTAPI
3637 HANDLE hHdl);
3638
3639BOOL
3640NTAPI
3642 HWND hWnd,
3643 CONST RECT *lpRect);
3644
3645BOOL
3648 LPARAM lParam);
3649
3650DWORD
3651NTAPI
3653 WCHAR wChar,
3654 HKL KeyboardLayout,
3655 BOOL bUsehHK);
3656
3657DWORD
3658NTAPI
3661 IN DWORD dwMilliseconds,
3662 IN BOOL bSharedWow); /* Always FALSE */
3663
3664DWORD
3665NTAPI
3667 DWORD Unknown0);
3668
3669BOOL
3670NTAPI
3672
3673DWORD
3674NTAPI
3676 DWORD Unknown0,
3677 DWORD Unknown1,
3678 DWORD Unknown2,
3681 DWORD Unknown5);
3682
3683HWND
3684NTAPI
3686 LONG X,
3687 LONG Y);
3688
3689DWORD
3690NTAPI
3692
3693/* NtUserBad
3694 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3695 */
3696
3697#define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3698#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3699#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3700#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3701#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3702#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3703
3704#define MSQ_STATE_CAPTURE 0x1
3705#define MSQ_STATE_ACTIVE 0x2
3706#define MSQ_STATE_FOCUS 0x3
3707#define MSQ_STATE_MENUOWNER 0x4
3708#define MSQ_STATE_MOVESIZE 0x5
3709#define MSQ_STATE_CARET 0x6
3710
3711#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3712#define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3713
3714BOOL
3715NTAPI
3717 IN HMONITOR hMonitor,
3718 OUT LPMONITORINFO pMonitorInfo);
3719
3720/* Should be done in usermode */
3721
3723NTAPI
3725 IN POINT point,
3726 IN DWORD dwFlags);
3727
3729NTAPI
3731 IN LPCRECT pRect,
3732 IN DWORD dwFlags);
3733
3735NTAPI
3737 IN HWND hWnd,
3738 IN DWORD dwFlags);
3739
3740typedef struct _SETSCROLLBARINFO
3741{
3746
3747BOOL
3748NTAPI
3750 HWND hwnd,
3751 LONG idObject,
3753
3754#endif /* __WIN32K_NTUSER_H */
3755
3756/* EOF */
static HDC hDC
Definition: 3dtext.c:33
static const ENTRY Entries[]
unsigned char BOOLEAN
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
UINT VirtKey
Definition: VirtualKey.c:22
UINT32 void void ** ReturnValue
Definition: acevents.h:216
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char * ModuleName
Definition: acpixf.h:1280
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:732
struct outqueuenode * head
Definition: adnsresfilter.c:66
int nItems
Definition: appswitch.c:56
#define msg(x)
Definition: auth_time.c:54
HWND hWnd
Definition: settings.c:17
LONG NTSTATUS
Definition: precomp.h:26
HFONT hFont
Definition: main.c:53
return
Definition: dirsup.c:529
HINSTANCE hInstance
Definition: charmap.c:19
Definition: bufpool.h:45
_Out_ RTL_ATOM * Atom
Definition: class.h:54
static BOOL bInsert
Definition: cmdinput.c:121
WPARAM wParam
Definition: combotst.c:138
struct @1609 Msg[]
LPARAM lParam
Definition: combotst.c:139
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD IN DWORD Unknown6
Definition: conport.c:40
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD Unknown5
Definition: conport.c:39
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
Definition: conport.c:37
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
static HWND hwndParent
Definition: cryptui.c:300
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:175
float Real
Definition: definitions.h:36
WORD ATOM
Definition: dimm.idl:113
DWORD HIMC
Definition: dimm.idl:75
#define FALSE
Definition: types.h:117
static HBITMAP hBitmap
Definition: timezone.c:26
#define APIENTRY
Definition: api.h:79
#define Y(I)
UINT uFlags
Definition: api.c:59
HANDLE HWND
Definition: compat.h:19
#define CALLBACK
Definition: compat.h:35
static const WCHAR Message[]
Definition: register.c:74
#define pt(x, y)
Definition: drawing.c:79
#define ULONG_PTR
Definition: config.h:101
HWND hWndChild[NUM_TABS]
Definition: main.h:75
HINSTANCE hInst
Definition: dxdiag.c:13
POINTL point
Definition: edittest.c:50
#define PAGE_SIZE
Definition: env_spec_w32.h:49
DWORD dwThreadId
Definition: fdebug.c:31
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
ULONG Handle
Definition: gdb_input.c:15
ASMGENDATA Table[]
Definition: genincdata.c:61
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizeiptr size
Definition: glext.h:5919
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLdouble GLdouble right
Definition: glext.h:10859
GLint left
Definition: glext.h:7726
GLbitfield flags
Definition: glext.h:7161
GLfloat param
Definition: glext.h:5796
GLdouble u1
Definition: glext.h:8308
#define cs
Definition: i386-dis.c:442
BOOL WINAPI NotifyIME(HIMC, DWORD, DWORD, DWORD)
BOOL WINAPI ImeConfigure(HKL, HWND, DWORD, LPVOID)
UINT WINAPI ImeGetRegisterWordStyle(UINT, LPSTYLEBUFW)
BOOL WINAPI ImeSelect(HIMC, BOOL)
BOOL WINAPI ImeProcessKey(HIMC, UINT, LPARAM, CONST LPBYTE)
BOOL WINAPI ImeSetCompositionString(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD)
LRESULT WINAPI ImeEscape(HIMC, UINT, LPVOID)
BOOL WINAPI ImeDestroy(UINT)
DWORD WINAPI ImeConversionList(HIMC, LPCWSTR, LPCANDIDATELIST, DWORD, UINT)
UINT WINAPI ImeEnumRegisterWord(REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID)
DWORD WINAPI ImeGetImeMenuItems(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD)
BOOL WINAPI ImeInquire(LPIMEINFO, LPWSTR, LPCWSTR lpszOptions)
BOOL WINAPI ImeUnregisterWord(LPCWSTR, DWORD, LPCWSTR)
BOOL WINAPI ImeSetActiveContext(HIMC, BOOL)
UINT WINAPI ImeToAsciiEx(UINT, UINT, CONST LPBYTE, LPDWORD, UINT, HIMC)
BOOL WINAPI ImeRegisterWord(LPCWSTR, DWORD, LPCWSTR)
BOOL NTAPI NtUserGetClassInfo(HINSTANCE hInstance, PUNICODE_STRING ClassName, LPWNDCLASSEXW wcex, LPWSTR *ppszMenuName, BOOL Ansi)
Definition: class.c:2720
struct tagCLIPBOARDDATA CLIPBOARDDATA
struct _MDIWND MDIWND
struct tagCLIENTIMC * PCLIENTIMC
DWORD NTAPI NtUserGetKeyboardState(LPBYTE Unknown0)
Definition: msgqueue.c:2609
DWORD NTAPI NtUserCalcMenuBar(HWND hwnd, DWORD x, DWORD width, DWORD y, LPRECT prc)
Definition: menu.c:5538
BOOL NTAPI NtUserUpdateLayeredWindow(HWND hwnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags, RECT *prcDirty)
Definition: layered.c:341
PCLS NTAPI NtUserGetWOWClass(HINSTANCE hInstance, PUNICODE_STRING ClassName)
Definition: class.c:2882
BOOL NTAPI NtUserBitBltSysBmp(HDC hdc, INT nXDest, INT nYDest, INT nWidth, INT nHeight, INT nXSrc, INT nYSrc, DWORD dwRop)
Definition: ntstubs.c:17
BOOL NTAPI NtUserRegisterUserApiHook(PUNICODE_STRING m_dllname1, PUNICODE_STRING m_funname1, DWORD dwUnknown3, DWORD dwUnknown4)
Definition: hook.c:1723
BOOL NTAPI NtUserSetObjectInformation(HANDLE hObject, DWORD nIndex, PVOID pvInformation, DWORD nLength)
Definition: winsta.c:1339
VOID NTAPI NtUserNotifyWinEvent(DWORD Event, HWND hWnd, LONG idObject, LONG idChild)
Definition: event.c:254
BOOL NTAPI NtUserSetMenu(HWND hWnd, HMENU hMenu, BOOL bRepaint)
Definition: menu.c:6408
VOID NTAPI RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING, IN PCSZ, IN INT)
Definition: rtlstr.c:17
BOOL NTAPI NtUserDrawIconEx(HDC hdc, int xLeft, int yTop, HICON hIcon, int cxWidth, int cyWidth, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags, BOOL bMetaHDC, PVOID pDIXData)
Definition: cursoricon.c:2083
struct _MENUWND * PMENUWND
struct _PFNCLIENT PFNCLIENT
BOOL NTAPI NtUserDestroyCursor(_In_ HANDLE Handle, _In_ BOOL bForce)
Definition: cursoricon.c:793
HMONITOR NTAPI NtUserMonitorFromPoint(IN POINT point, IN DWORD dwFlags)
Definition: monitor.c:827
BOOL NTAPI NtUserHideCaret(HWND hWnd)
Definition: caret.c:458
enum _USERTHREADINFOCLASS USERTHREADINFOCLASS
BOOL NTAPI NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data)
struct tagMBSTRING * PMBSTRING
struct tagDDEPACK DDEPACK
BOOL NTAPI NtUserGetMenuBarInfo(HWND hwnd, LONG idObject, LONG idItem, PMENUBARINFO pmbi)
Definition: menu.c:5917
BOOL NTAPI NtUserSetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags)
Definition: winpos.c:3507
DWORD NTAPI NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect, const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags)
Definition: scrollex.c:571
struct _CLIENTTHREADINFO * PCLIENTTHREADINFO
DWORD NTAPI NtUserMNDragOver(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:178
DWORD_PTR NTAPI NtUserCallOneParam(DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:153
BOOL NTAPI NtUserGetMonitorInfo(IN HMONITOR hMonitor, OUT LPMONITORINFO pMonitorInfo)
Definition: monitor.c:728
struct _DRAWICONEXDATA * PDRAWICONEXDATA
#define NUM_SYSCOLORS
Definition: ntuser.h:949
struct tagPOPUPMENU * PPOPUPMENU
BOOL NTAPI NtUserMessageCall(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR ResultInfo, DWORD dwType, BOOL Ansi)
Definition: message.c:2486
NTSTATUS NTAPI NtUserInitializeClientPfnArrays(PPFNCLIENT pfnClientA, PPFNCLIENT pfnClientW, PPFNCLIENTWORKER pfnClientWorker, HINSTANCE hmodUser)
Definition: ntstubs.c:101
struct _PROCESSINFO * GetW32ProcessInfo(VOID)
Definition: misc.c:795
HKL NTAPI NtUserActivateKeyboardLayout(HKL hKL, ULONG Flags)
Definition: kbdlayout.c:1263
BOOL NTAPI NtUserDrawCaptionTemp(HWND hWnd, HDC hDC, LPCRECT lpRc, HFONT hFont, HICON hIcon, const PUNICODE_STRING str, UINT uFlags)
Definition: painting.c:2379
HWND NTAPI NtUserGetOpenClipboardWindow(VOID)
Definition: clipboard.c:601
LONG_PTR APIENTRY NtUserSetClassLongPtr(VOID)
Definition: ntstubs.c:954
DWORD NTAPI NtUserInitTask(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5, DWORD Unknown6, DWORD Unknown7, DWORD Unknown8, DWORD Unknown9, DWORD Unknown10, DWORD Unknown11)
Definition: ntstubs.c:148
DWORD NTAPI NtUserUpdateInstance(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2)
Definition: ntstubs.c:335
BOOL NTAPI NtUserUnregisterClass(PUNICODE_STRING ClassNameOrAtom, HINSTANCE hInstance, PCLSMENUNAME pClassMenuName)
struct _CALLBACKWND CALLBACKWND
BOOL NTAPI NtUserValidateRect(HWND hWnd, CONST RECT *lpRect)
INT NTAPI NtUserGetClassName(HWND hWnd, BOOL Real, PUNICODE_STRING ClassName)
struct tagIMC IMC
UINT NTAPI NtUserRegisterWindowMessage(PUNICODE_STRING MessageName)
Definition: window.c:4301
struct tagSBCALC * PSBCALC
struct _PROPLISTITEM PROPLISTITEM
DWORD NTAPI NtUserCountClipboardFormats(VOID)
Definition: clipboard.c:658
HWND NTAPI NtUserGetClipboardOwner(VOID)
Definition: clipboard.c:777
BOOL NTAPI NtUserNotifyProcessCreate(HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags)
Definition: ntstubs.c:463
struct _CLSMENUNAME * PCLSMENUNAME
BOOL NTAPI NtUserSoundSentry(VOID)
Definition: ntstubs.c:843
struct _DESKTOPINFO * PDESKTOPINFO
_Out_opt_ PICONINFO _Inout_opt_ PUNICODE_STRING lpInstName
Definition: ntuser.h:2418
BOOL NTAPI NtUserSetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl)
Definition: winpos.c:3707
struct tagIMEINFOEX * PIMEINFOEX
#define MAX_MB_STRINGS
Definition: ntuser.h:941
HPALETTE NTAPI NtUserSelectPalette(HDC hDC, HPALETTE hpal, BOOL ForceBackground)
Definition: windc.c:1034
struct tagCLIPBOARDDATA * PCLIPBOARDDATA
INT NTAPI NtUserExcludeUpdateRgn(HDC hDC, HWND hWnd)
Definition: painting.c:2524
struct _USER_HANDLE_ENTRY USER_HANDLE_ENTRY
BOOL NTAPI NtUserPaintDesktop(HDC hDC)
Definition: desktop.c:2780
BOOL NTAPI NtUserGetComboBoxInfo(HWND hWnd, PCOMBOBOXINFO pcbi)
Definition: window.c:3463
DWORD APIENTRY NtUserDbgWin32HeapStat(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:277
BOOL NTAPI NtUserCallMsgFilter(LPMSG msg, INT code)
Definition: message.c:2379
UINT NTAPI NtUserGetCaretBlinkTime(VOID)
Definition: caret.c:381
struct _REGISTER_SYSCLASS * PREGISTER_SYSCLASS
INT NTAPI NtUserInternalGetWindowText(HWND hWnd, LPWSTR lpString, INT nMaxCount)
Definition: window.c:4596
struct tagTRANSMSG TRANSMSG
struct tagDPISERVERINFO * PDPISERVERINFO
struct tagSBDATA * PSBDATA
SHORT NTAPI NtUserGetAsyncKeyState(INT Key)
Definition: keyboard.c:632
struct _PROCDESKHEAD PROCDESKHEAD
struct _LARGE_ANSI_STRING * PLARGE_ANSI_STRING
DWORD NTAPI NtUserWin32PoolAllocationStats(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5)
Definition: ntstubs.c:369
struct _THROBJHEAD THROBJHEAD
NTSTATUS NTAPI NtUserSetInformationThread(IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength)
Definition: ntstubs.c:673
HWND NTAPI NtUserRealChildWindowFromPoint(HWND Parent, LONG x, LONG y)
Definition: winpos.c:3487
BOOL NTAPI NtUserShowWindowAsync(HWND hWnd, LONG nCmdShow)
Definition: winpos.c:3759
struct _PERUSERSERVERINFO * PPERUSERSERVERINFO
struct _CLIENTINFO CLIENTINFO
BOOL NTAPI NtUserTrackPopupMenuEx(HMENU hmenu, UINT fuFlags, int x, int y, HWND hwnd, LPTPMPARAMS lptpm)
Definition: menu.c:6619
enum _CONSOLECONTROL * PCONSOLECONTROL
struct tagIMEUI * PIMEUI
BOOL NTAPI NtUserUnloadKeyboardLayout(HKL hKl)
Definition: kbdlayout.c:1288
BOOL APIENTRY NtUserPeekMessage(PMSG pMsg, HWND hWnd, UINT MsgFilterMin, UINT MsgFilterMax, UINT RemoveMsg)
Definition: message.c:2337
LONG NTAPI NtUserChangeDisplaySettings(PUNICODE_STRING lpszDeviceName, LPDEVMODEW lpDevMode, DWORD dwflags, LPVOID lParam)
Definition: display.c:946
DWORD NTAPI NtUserVkKeyScanEx(WCHAR wChar, HKL KeyboardLayout, BOOL bUsehHK)
Definition: keyboard.c:1585
_CONSOLECONTROL
Definition: ntuser.h:1920
@ ConsoleCtrlDesktopConsoleThread
Definition: ntuser.h:1921
@ ConsoleMakePalettePublic
Definition: ntuser.h:1923
@ GuiConsoleWndClassAtom
Definition: ntuser.h:1922
@ ConsoleAcquireDisplayOwnership
Definition: ntuser.h:1924
BOOL NTAPI NtUserShowCaret(HWND hWnd)
Definition: caret.c:427
DWORD NTAPI NtUserCheckMenuItem(HMENU hmenu, UINT uIDCheckItem, UINT uCheck)
Definition: menu.c:5584
BOOL NTAPI NtUserUnregisterUserApiHook(VOID)
Definition: hook.c:1769
INT NTAPI NtUserGetClipboardFormatName(UINT uFormat, LPWSTR lpszFormatName, INT cchMaxCount)
Definition: clipboard.c:736
DWORD NTAPI NtUserRemoteConnect(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
Definition: ntstubs.c:860
HWND NTAPI NtUserCallHwndOpt(HWND hWnd, DWORD Routine)
Definition: simplecall.c:691
struct tagSETCLIPBDATA SETCLIPBDATA
HHOOK NTAPI NtUserSetWindowsHookEx(HINSTANCE Mod, PUNICODE_STRING ModuleName, DWORD ThreadId, int HookId, HOOKPROC HookProc, BOOL Ansi)
Definition: hook.c:1440
struct tagIMEINFOEX IMEINFOEX
BOOL NTAPI NtUserBlockInput(BOOL BlockIt)
Definition: input.c:419
HANDLE NTAPI NtUserRemoveProp(HWND hWnd, ATOM Atom)
UINT NTAPI NtUserGetKeyboardLayoutList(ULONG nItems, HKL *pHklBuff)
Definition: kbdlayout.c:1075