ReactOS  0.4.15-dev-3295-gaa8fc87
ntuser.h
Go to the documentation of this file.
1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
3 
4 struct _PROCESSINFO;
5 struct _THREADINFO;
6 struct _DESKTOP;
7 struct _WND;
8 struct 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 
16 typedef 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 
30 typedef struct _USER_HANDLE_TABLE
31 {
37 
38 typedef enum _HANDLE_TYPE
39 {
40  TYPE_FREE = 0,
42  TYPE_MENU = 2,
45  TYPE_HOOK = 5,
56  TYPE_TIMER = 16,
65 
67 {
80 
81 typedef struct _LARGE_UNICODE_STRING
82 {
88 
89 typedef struct _LARGE_STRING
90 {
96 
97 
98 /* Based on ANSI_STRING */
99 typedef struct _LARGE_ANSI_STRING
100 {
106 
107 VOID
108 NTAPI
111  IN PCSZ,
112  IN INT);
113 
114 VOID
115 NTAPI
118  IN PCWSTR,
119  IN INT);
120 
121 BOOL
122 NTAPI
125  PLARGE_STRING);
126 
127 #define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1)
128 
129 typedef struct _DESKTOPINFO
130 {
133  struct _WND *spwnd;
136 
140  struct _WND *spwndShell;
141  struct _WND *spwndBkGnd;
142 
144 
145  union
146  {
148  struct
149  {
151  };
152  };
153 
156 
157 #define CTI_THREADSYSLOCK 0x0001
158 #define CTI_INSENDMESSAGE 0x0002
159 
160 typedef struct _CLIENTTHREADINFO
161 {
167  ULONG timeLastRead; // Last time the message queue was read.
170 
171 typedef struct _HEAD
172 {
175 } HEAD, *PHEAD;
176 
177 typedef struct _THROBJHEAD
178 {
180  struct _THREADINFO *pti;
182 
183 typedef struct _THRDESKHEAD
184 {
186  struct _DESKTOP *rpdesk;
189 
190 typedef struct tagIMC
191 {
193  struct tagIMC *pImcNext;
196 } IMC, *PIMC;
197 
198 typedef struct _PROCDESKHEAD
199 {
202  struct _DESKTOP *rpdesk;
205 
206 typedef struct _PROCMARKHEAD
207 {
210  struct _PROCESSINFO *ppi;
212 
213 #define UserHMGetHandle(obj) ((obj)->head.h)
214 
215 /* Window Client Information structure */
216 struct _ETHREAD;
217 
218 #define WEF_SETBYWNDPTI 0x0001
219 
220 typedef struct tagHOOK
221 {
223  struct tagHOOK *phkNext; /* This is for user space. */
224  int HookId; /* Hook table index */
226  ULONG flags; /* Some internal flags */
229  struct _DESKTOP *rpdesk;
230  /* ReactOS */
231  LIST_ENTRY Chain; /* Hook chain entry */
232  HOOKPROC Proc; /* Hook function */
233  BOOLEAN Ansi; /* Is it an Ansi hook? */
234  UNICODE_STRING ModuleName; /* Module name for global hooks */
235 } HOOK, *PHOOK;
236 
237 typedef struct tagCLIPBOARDDATA
238 {
241  BYTE Data[0];
243 
244 /* THREADINFO Flags */
245 #define TIF_INCLEANUP 0x00000001
246 #define TIF_16BIT 0x00000002
247 #define TIF_SYSTEMTHREAD 0x00000004
248 #define TIF_CSRSSTHREAD 0x00000008
249 #define TIF_TRACKRECTVISIBLE 0x00000010
250 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
251 #define TIF_DONTATTACHQUEUE 0x00000040
252 #define TIF_DONTJOURNALATTACH 0x00000080
253 #define TIF_WOW64 0x00000100
254 #define TIF_INACTIVATEAPPMSG 0x00000200
255 #define TIF_SPINNING 0x00000400
256 #define TIF_PALETTEAWARE 0x00000800
257 #define TIF_SHAREDWOW 0x00001000
258 #define TIF_FIRSTIDLE 0x00002000
259 #define TIF_WAITFORINPUTIDLE 0x00004000
260 #define TIF_MOVESIZETRACKING 0x00008000
261 #define TIF_VDMAPP 0x00010000
262 #define TIF_DOSEMULATOR 0x00020000
263 #define TIF_GLOBALHOOKER 0x00040000
264 #define TIF_DELAYEDEVENT 0x00080000
265 #define TIF_MSGPOSCHANGED 0x00100000
266 #define TIF_SHUTDOWNCOMPLETE 0x00200000
267 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
268 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
269 #define TIF_GUITHREADINITIALIZED 0x02000000
270 #define TIF_DISABLEIME 0x04000000
271 #define TIF_INGETTEXTLENGTH 0x08000000
272 #define TIF_ANSILENGTH 0x10000000
273 #define TIF_DISABLEHOOKS 0x20000000
274 
275 typedef struct _CALLBACKWND
276 {
278  struct _WND *pWnd;
281 
282 #define CI_TRANSACTION 0x00000001
283 #define CI_QUEUEMSG 0x00000002
284 #define CI_WOW 0x00000004
285 #define CI_INITTHREAD 0x00000008
286 #define CI_CURTHPRHOOK 0x00000010
287 #define CI_CLASSESREGISTERED 0x00000020
288 #define CI_IMMACTIVATE 0x00000040
289 #define CI_TFSDISABLED 0x00000400
290 
291 typedef struct _CLIENTINFO
292 {
298  DWORD dwTIFlags; /* ThreadInfo TIF_Xxx flags for User space. */
319 /* It's just a pointer reference not to be used w the structure in user space. */
320  struct _PROCESSINFO *ppi;
322 
323 /* Make sure it fits into the TEB */
324 C_ASSERT(sizeof(CLIENTINFO) <= sizeof(((PTEB)0)->Win32ClientInfo));
325 
326 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
327 
328 typedef struct tagDDEPACK
329 {
332 } DDEPACK, *PDDEPACK;
333 
334 #define HRGN_NULL ((HRGN)0) /* NULL empty region */
335 #define HRGN_WINDOW ((HRGN)1) /* region from window rcWindow */
336 #define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */
337 
338 /* Menu Item fType. */
339 #define MFT_RTOL 0x6000
340 
341 /* Menu Item fState. */
342 #define MFS_HBMMENUBMP 0x20000000
343 
344 typedef struct tagITEM
345 {
349  struct tagMENU *spSubMenu; /* Pop-up menu. */
352  USHORT *Xlpstr; /* Item text pointer. */
355  ULONG xItem; /* Item position. left */
356  ULONG yItem; /* " top */
357  ULONG cxItem; /* Item Size Width */
358  ULONG cyItem; /* " Height */
359  ULONG dxTab; /* X position of text after Tab */
360  ULONG ulX; /* underline.. start position */
361  ULONG ulWidth; /* underline.. width */
362  HBITMAP hbmp; /* bitmap */
363  INT cxBmp; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
364  INT cyBmp; /* Height " */
365  /* ReactOS */
367 } ITEM, *PITEM;
368 
369 typedef struct tagMENULIST
370 {
372  struct tagMENU *pMenu;
373 } MENULIST, *PMENULIST;
374 
375 /* Menu fFlags, upper byte is MNS_X style flags. */
376 #define MNF_POPUP 0x0001
377 #define MNF_UNDERLINE 0x0004
378 #define MNF_INACTIVE 0x0010
379 #define MNF_RTOL 0x0020
380 #define MNF_DESKTOPMN 0x0040
381 #define MNF_SYSDESKMN 0x0080
382 #define MNF_SYSSUBMENU 0x0100
383 /* Hack */
384 #define MNF_SYSMENU 0x0200
385 
386 /* (other FocusedItem values give the position of the focused item) */
387 #define NO_SELECTED_ITEM 0xffff
388 
389 typedef struct tagMENU
390 {
392  ULONG fFlags; /* [Style flags | Menu flags] */
393  INT iItem; /* nPos of selected item, if -1 not selected. AKA focused item */
394  UINT cAlloced; /* Number of allocated items. Inc's of 8 */
395  UINT cItems; /* Number of items in the menu */
396  ULONG cxMenu; /* Width of the whole menu */
397  ULONG cyMenu; /* Height of the whole menu */
398  ULONG cxTextAlign; /* Offset of text when items have both bitmaps and text */
399  struct _WND *spwndNotify; /* window receiving the messages for ownerdraw */
400  PITEM rgItems; /* Array of menu items */
401  struct tagMENULIST *pParentMenus; /* If this is SubMenu, list of parents. */
403  ULONG cyMax; /* max height of the whole menu, 0 is screen height */
404  DWORD_PTR dwMenuData; /* application defined value */
405  HBRUSH hbrBack; /* brush for menu background */
406  INT iTop; /* Current scroll position Top */
407  INT iMaxTop; /* Current scroll position Max Top */
408  DWORD dwArrowsOn:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
409  /* ReactOS */
411  HWND hWnd; /* Window containing the menu, use POPUPMENU */
413 } MENU, *PMENU;
414 
415 typedef struct tagPOPUPMENU
416 {
440  // ULONG fDesktopMenu:1;
443  struct _WND *spwndNotify;
455 
456 typedef struct _REGISTER_SYSCLASS
457 {
458  /* This is a reactos specific class used to initialize the
459  system window classes during user32 initialization */
465  HBRUSH hBrush;
469 
470 typedef struct _CLSMENUNAME
471 {
476 
477 typedef struct tagSBDATA
478 {
483 } SBDATA, *PSBDATA;
484 
485 typedef struct tagSBINFO
486 {
490 } SBINFO, *PSBINFO;
491 
492 typedef struct tagSBCALC
493 {
510 } SBCALC, *PSBCALC;
511 
512 typedef enum _GETCPD
513 {
514  UserGetCPDA2U = 0x01, /* " Unicode " */
515  UserGetCPDU2A = 0X02, /* " Ansi " */
520 } GETCPD, *PGETCPD;
521 
522 typedef struct _CALLPROCDATA
523 {
529 
530 #define CSF_SERVERSIDEPROC 0x0001
531 #define CSF_ANSIPROC 0x0002
532 #define CSF_WOWDEFERDESTROY 0x0004
533 #define CSF_SYSTEMCLASS 0x0008
534 #define CSF_WOWCLASS 0x0010
535 #define CSF_WOWEXTRA 0x0020
536 #define CSF_CACHEDSMICON 0x0040
537 #define CSF_WIN40COMPAT 0x0080
538 
539 typedef struct _CLS
540 {
541  struct _CLS *pclsNext;
548  PSTR lpszClientAnsiMenuName; /* For client use */
551  struct _CLS *pclsBase;
552  struct _CLS *pclsClone;
562  PWSTR lpszMenuName; /* kernel use */
566  UINT Unicode:1; // !CSF_ANSIPROC
567  UINT Global:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
570 } CLS, *PCLS;
571 
572 typedef struct _SBINFOEX
573 {
576 } SBINFOEX, *PSBINFOEX;
577 
578 /* State Flags !Not ALL Implemented! */
579 #define WNDS_HASMENU 0X00000001
580 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
581 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
582 #define WNDS_HASCAPTION 0X00000008
583 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
584 #define WNDS_MSGBOX 0X00000020
585 #define WNDS_ACTIVEFRAME 0X00000040
586 #define WNDS_HASSPB 0X00000080
587 #define WNDS_NONCPAINT 0X00000100
588 #define WNDS_SENDERASEBACKGROUND 0X00000200
589 #define WNDS_ERASEBACKGROUND 0X00000400
590 #define WNDS_SENDNCPAINT 0X00000800
591 #define WNDS_INTERNALPAINT 0X00001000
592 #define WNDS_UPDATEDIRTY 0X00002000
593 #define WNDS_HIDDENPOPUP 0X00004000
594 #define WNDS_FORCEMENUDRAW 0X00008000
595 #define WNDS_DIALOGWINDOW 0X00010000
596 #define WNDS_HASCREATESTRUCTNAME 0X00020000
597 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */
598 #define WNDS_ANSIWINDOWPROC 0x00080000
599 #define WNDS_BEINGACTIVATED 0x00100000
600 #define WNDS_HASPALETTE 0x00200000
601 #define WNDS_PAINTNOTPROCESSED 0x00400000
602 #define WNDS_SYNCPAINTPENDING 0x00800000
603 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
604 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000
605 #define WNDS_TOGGLETOPMOST 0x04000000
606 #define WNDS_REDRAWIFHUNG 0x08000000
607 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
608 #define WNDS_ANSICREATOR 0x20000000
609 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
610 #define WNDS_DESTROYED 0x80000000
611 
612 #define WNDSACTIVEFRAME 0x00000006
613 
614 /* State2 Flags !Not ALL Implemented! */
615 #define WNDS2_WMPAINTSENT 0X00000001
616 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
617 #define WNDS2_STARTPAINT 0X00000004
618 #define WNDS2_OLDUI 0X00000008
619 #define WNDS2_HASCLIENTEDGE 0X00000010
620 #define WNDS2_BOTTOMMOST 0X00000020
621 #define WNDS2_FULLSCREEN 0X00000040
622 #define WNDS2_INDESTROY 0X00000080
623 #define WNDS2_WIN31COMPAT 0X00000100
624 #define WNDS2_WIN40COMPAT 0X00000200
625 #define WNDS2_WIN50COMPAT 0X00000400
626 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
627 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
628 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
629 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
630 #define WNDS2_HELPBUTTONDOWN 0X00008000
631 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
632 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
633 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
634 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
635 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
636 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
637 #define WNDS2_FORCENCPAINT 0X00400000
638 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
639 #define WNDS2_FULLSCREENMODE 0X01000000
640 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
641 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
642 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
643 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
644 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
645 
646 /* ExStyles2 */
647 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
648 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
649 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
650 #define WS_EX2_LINKED 0X00000008
651 #define WS_EX2_LAYEREDFORDWM 0X00000010
652 #define WS_EX2_LAYEREDLIMBO 0X00000020
653 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
654 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
655 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
656 #define WS_EX2_HASOVERLAY 0X00000200
657 #define WS_EX2_CONSOLEWINDOW 0X00000400
658 #define WS_EX2_CHILDNOACTIVATE 0X00000800
659 
660 #define WPF_MININIT 0x0008
661 #define WPF_MAXINIT 0x0010
662 
663 typedef struct _WND
664 {
666 #if 0
667  WW ww;
668 #else
669  /* These fields should be moved in the WW at some point. */
670  /* Plese do not change them to keep the same layout with WW. */
673  /* Extended style. */
675  /* Style. */
677  /* Handle of the module that created the window. */
680 #endif
681  struct _WND *spwndNext;
682  struct _WND *spwndPrev;
683  struct _WND *spwndParent;
684  struct _WND *spwndChild;
685  struct _WND *spwndOwner;
689  /* Pointer to the window class. */
692  /* Property list head.*/
695  /* Scrollbar info */
697  /* system menu handle. */
699  //PMENU spmenuSys;
700  /* Window menu handle or window id */
701  UINT_PTR IDMenu; // Use spmenu
702  //PMENU spmenu;
703  HRGN hrgnClip;
705  /* Window name. */
707  /* Size of the extra data associated with the window. */
710  HIMC hImc; // Input context associated with this window.
713  //PD3DMATRIX pTransForm;
716 
717  /* ReactOS */
718  struct
719  {
723  UINT flags; /* WPF_ flags. */
724  } InternalPos;
725 
726  UINT Unicode:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
728  UINT HideFocus:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
729  UINT HideAccel:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
730 
731  /* Scrollbar info */
732  PSBINFOEX pSBInfoex; // convert to PSBINFO
733  /* Entry in the list of thread windows. */
735 
737 } WND, *PWND;
738 
739 #define PWND_BOTTOM ((PWND)1)
740 
741 typedef struct _SBWND
742 {
747 } SBWND, *PSBWND;
748 
749 typedef struct _MDIWND
750 {
754 } MDIWND, *PMDIWND;
755 
756 #define GWLP_MDIWND 4
757 
758 typedef struct _MENUWND
759 {
762 } MENUWND, *PMENUWND;
763 
764 typedef struct _PFNCLIENT
765 {
790 
791 /*
792  Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
793  Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
794  */
795 
796 typedef LRESULT
798  HWND,
799  UINT,
800  WPARAM,
801  LPARAM,
802  BOOL);
803 
804 typedef struct _PFNCLIENTWORKER
805 {
818 
819 typedef LONG_PTR
821  PWND,
822  UINT,
823  WPARAM,
824  LPARAM,
825  ULONG_PTR);
826 
827 /* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
828 #define FNID_FIRST 0x029A
829 #define FNID_SCROLLBAR 0x029A
830 #define FNID_ICONTITLE 0x029B
831 #define FNID_MENU 0x029C
832 #define FNID_DESKTOP 0x029D
833 #define FNID_DEFWINDOWPROC 0x029E
834 #define FNID_MESSAGEWND 0x029F
835 #define FNID_SWITCH 0x02A0
836 #define FNID_BUTTON 0x02A1
837 #define FNID_COMBOBOX 0x02A2
838 #define FNID_COMBOLBOX 0x02A3
839 #define FNID_DIALOG 0x02A4
840 #define FNID_EDIT 0x02A5
841 #define FNID_LISTBOX 0x02A6
842 #define FNID_MDICLIENT 0x02A7
843 #define FNID_STATIC 0x02A8
844 #define FNID_IME 0x02A9
845 #define FNID_GHOST 0x02AA
846 #define FNID_CALLWNDPROC 0x02AB
847 #define FNID_CALLWNDPROCRET 0x02AC
848 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
849 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
850 #define FNID_MB_DLGPROC 0x02AF
851 #define FNID_MDIACTIVATEDLGPROC 0x02B0
852 #define FNID_SENDMESSAGE 0x02B1
853 #define FNID_SENDMESSAGEFF 0x02B2
854 /* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
855 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
856 #define FNID_SENDMESSAGECALLPROC 0x02B4
857 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
858 #define FNID_TOOLTIPS 0x02B6
859 #define FNID_SENDNOTIFYMESSAGE 0x02B7
860 #define FNID_SENDMESSAGECALLBACK 0x02B8
861 
862 #define FNID_LAST FNID_SENDMESSAGECALLBACK
863 
864 #define FNID_NUM (FNID_LAST - FNID_FIRST + 1)
865 #define FNID_NUMSERVERPROC (FNID_SWITCH - FNID_FIRST + 1)
866 
867 #define FNID_DDEML 0x2000 /* Registers DDEML */
868 #define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
869  /* Seen during WM_CREATE on error exit too. */
870 #define FNID_FREED 0x8000 /* Window being Freed... */
871 
872 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
873 
874 #define GETPFNCLIENTA(fnid) \
875  (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
876 #define GETPFNCLIENTW(fnid) \
877  (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
878 
879 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
880 
881 /* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
882 #define ICLS_BUTTON 0
883 #define ICLS_EDIT 1
884 #define ICLS_STATIC 2
885 #define ICLS_LISTBOX 3
886 #define ICLS_SCROLLBAR 4
887 #define ICLS_COMBOBOX 5
888 #define ICLS_MDICLIENT 6
889 #define ICLS_COMBOLBOX 7
890 #define ICLS_DDEMLEVENT 8
891 #define ICLS_DDEMLMOTHER 9
892 #define ICLS_DDEML16BIT 10
893 #define ICLS_DDEMLCLIENTA 11
894 #define ICLS_DDEMLCLIENTW 12
895 #define ICLS_DDEMLSERVERA 13
896 #define ICLS_DDEMLSERVERW 14
897 #define ICLS_IME 15
898 #define ICLS_GHOST 16
899 #define ICLS_DESKTOP 17
900 #define ICLS_DIALOG 18
901 #define ICLS_MENU 19
902 #define ICLS_SWITCH 20
903 #define ICLS_ICONTITLE 21
904 #define ICLS_TOOLTIPS 22
905 #if (_WIN32_WINNT <= 0x0501)
906 #define ICLS_UNKNOWN 22
907 #define ICLS_NOTUSED 23
908 #else
909 #define ICLS_SYSSHADOW 23
910 #define ICLS_HWNDMESSAGE 24
911 #define ICLS_NOTUSED 25
912 #endif
913 #define ICLS_END 31
914 
915 #define COLOR_LAST COLOR_MENUBAR
916 #define MAX_MB_STRINGS 11
917 
918 #define SRVINFO_DBCSENABLED 0x0002
919 #define SRVINFO_IMM32 0x0004
920 #define SRVINFO_APIHOOK 0x0010
921 #define SRVINFO_CICERO_ENABLED 0x0020
922 #define SRVINFO_KBDPREF 0x0080
923 
924 #define NUM_SYSCOLORS 31
925 
926 typedef struct tagOEMBITMAPINFO
927 {
933 
934 typedef enum _OBI_TYPES
935 {
943 } OBI_TYPES;
944 
945 typedef struct tagMBSTRING
946 {
950 } MBSTRING, *PMBSTRING;
951 
952 typedef struct tagDPISERVERINFO
953 {
954  INT gclBorder; /* 000 */
955  HFONT hCaptionFont; /* 004 */
956  HFONT hMsgFont; /* 008 */
957  INT cxMsgFontChar; /* 00C */
958  INT cyMsgFontChar; /* 010 */
959  UINT wMaxBtnSize; /* 014 */
961 
962 /* PUSIFlags: */
963 #define PUSIF_PALETTEDISPLAY 0x01
964 #define PUSIF_SNAPTO 0x02
965 #define PUSIF_COMBOBOXANIMATION 0x04
966 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
967 #define PUSIF_KEYBOARDCUES 0x20
968 
969 typedef struct _PERUSERSERVERINFO
970 {
975  HBRUSH hbrGray;
1010 
1011 typedef struct tagSERVERINFO
1012 {
1036 
1037 #ifdef _M_IX86
1038 C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
1039 #endif
1040 
1041 
1042 /* Server event activity bits. */
1043 #define SRV_EVENT_MENU 0x0001
1044 #define SRV_EVENT_END_APPLICATION 0x0002
1045 #define SRV_EVENT_RUNNING 0x0004
1046 #define SRV_EVENT_NAMECHANGE 0x0008
1047 #define SRV_EVENT_VALUECHANGE 0x0010
1048 #define SRV_EVENT_STATECHANGE 0x0020
1049 #define SRV_EVENT_LOCATIONCHANGE 0x0040
1050 #define SRV_EVENT_CREATE 0x8000
1051 
1052 typedef struct _PROPLISTITEM
1053 {
1057 
1058 #define PROPERTY_FLAG_SYSTEM 1
1059 
1060 typedef struct _PROPERTY
1061 {
1066 } PROPERTY, *PPROPERTY;
1067 
1068 typedef struct _BROADCASTPARM
1069 {
1072  HDESK hDesk;
1076 
1079 
1080 typedef struct _WNDMSG
1081 {
1084 } WNDMSG, *PWNDMSG;
1085 
1086 typedef struct _SHAREDINFO
1087 {
1088  PSERVERINFO psi; /* Global Server Info */
1089  PVOID aheList; /* Handle Entry List */
1090  PVOID pDispInfo; /* Global PDISPLAYINFO pointer */
1091  ULONG_PTR ulSharedDelta; /* Shared USER mapped section delta */
1096 
1097 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1098 typedef struct _USERCONNECT
1099 {
1105 
1106 /* WinNT 5.0 compatible user32 / win32k */
1107 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1108 
1109 #if defined(_M_IX86)
1110 C_ASSERT(sizeof(USERCONNECT) == 0x124);
1111 #endif
1112 
1113 typedef struct tagGETCLIPBDATA
1114 {
1117  union
1118  {
1121  };
1123 
1124 typedef struct tagSETCLIPBDATA
1125 {
1129 
1130 /* Used with NtUserSetCursorIconData, last parameter. */
1131 typedef struct tagCURSORDATA
1132 {
1144  HBITMAP hbmUserAlpha; /* Could be in W7U, not in W2k */
1154 } CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
1155 
1156 /* CURSORF_flags: */
1157 #define CURSORF_FROMRESOURCE 0x0001
1158 #define CURSORF_GLOBAL 0x0002
1159 #define CURSORF_LRSHARED 0x0004
1160 #define CURSORF_ACON 0x0008
1161 #define CURSORF_WOWCLEANUP 0x0010
1162 #define CURSORF_ACONFRAME 0x0040
1163 #define CURSORF_SECRET 0x0080
1164 #define CURSORF_LINKED 0x0100
1165 #define CURSORF_CURRENT 0x0200
1166 
1167 typedef struct tagIMEINFOEX
1168 {
1179  struct
1180  {
1183  };
1184 } IMEINFOEX, *PIMEINFOEX;
1185 
1186 typedef enum IMEINFOEXCLASS
1187 {
1191 } IMEINFOEXCLASS;
1192 
1193 #define IS_IME_HKL(hkl) ((((ULONG_PTR)(hkl)) & 0xF0000000) == 0xE0000000)
1194 
1195 typedef struct tagIMEUI
1196 {
1203  struct {
1211  };
1212 } IMEUI, *PIMEUI;
1213 
1214 /* Window Extra data container. */
1215 typedef struct _IMEWND
1216 {
1219 } IMEWND, *PIMEWND;
1220 
1221 typedef struct tagTRANSMSG
1222 {
1227 
1228 typedef struct tagTRANSMSGLIST
1229 {
1233 
1234 #define DEFINE_IME_ENTRY(type, name, params, extended) typedef type (WINAPI *FN_##name) params;
1235 #include "imetable.h"
1236 #undef DEFINE_IME_ENTRY
1237 
1238 typedef struct IMEDPI
1239 {
1240  struct IMEDPI *pNext;
1248 #define DEFINE_IME_ENTRY(type, name, params, extended) FN_##name name;
1249 #include "imetable.h"
1250 #undef DEFINE_IME_ENTRY
1251 } IMEDPI, *PIMEDPI;
1252 
1253 #ifndef _WIN64
1255 C_ASSERT(offsetof(IMEDPI, hInst) == 0x4);
1256 C_ASSERT(offsetof(IMEDPI, hKL) == 0x8);
1257 C_ASSERT(offsetof(IMEDPI, ImeInfo) == 0xc);
1258 C_ASSERT(offsetof(IMEDPI, uCodePage) == 0x28);
1259 C_ASSERT(offsetof(IMEDPI, szUIClass) == 0x2c);
1260 C_ASSERT(offsetof(IMEDPI, cLockObj) == 0x4c);
1261 C_ASSERT(offsetof(IMEDPI, dwFlags) == 0x50);
1262 C_ASSERT(offsetof(IMEDPI, ImeInquire) == 0x54);
1269 C_ASSERT(offsetof(IMEDPI, ImeDestroy) == 0x70);
1270 C_ASSERT(offsetof(IMEDPI, ImeEscape) == 0x74);
1272 C_ASSERT(offsetof(IMEDPI, ImeSelect) == 0x7c);
1275 C_ASSERT(offsetof(IMEDPI, NotifyIME) == 0x88);
1278 C_ASSERT(offsetof(IMEDPI, CtfImeInquireExW) == 0x94);
1279 C_ASSERT(offsetof(IMEDPI, CtfImeSelectEx) == 0x98);
1280 C_ASSERT(offsetof(IMEDPI, CtfImeEscapeEx) == 0x9c);
1281 C_ASSERT(offsetof(IMEDPI, CtfImeGetGuidAtom) == 0xa0);
1282 C_ASSERT(offsetof(IMEDPI, CtfImeIsGuidMapEnable) == 0xa4);
1283 C_ASSERT(sizeof(IMEDPI) == 0xa8);
1284 #endif
1285 
1286 /* flags for IMEDPI.dwFlags */
1287 #define IMEDPI_FLAG_UNKNOWN 0x1
1288 #define IMEDPI_FLAG_LOCKED 0x2
1289 
1290 /* unconfirmed */
1291 typedef struct tagCLIENTIMC
1292 {
1293  HANDLE hInputContext; /* LocalAlloc'ed LHND */
1301 } CLIENTIMC, *PCLIENTIMC;
1302 
1303 #ifndef _WIN64
1304 C_ASSERT(offsetof(CLIENTIMC, hInputContext) == 0x0);
1305 C_ASSERT(offsetof(CLIENTIMC, cLockObj) == 0x4);
1307 C_ASSERT(offsetof(CLIENTIMC, cs) == 0x10);
1308 C_ASSERT(offsetof(CLIENTIMC, uCodePage) == 0x28);
1309 C_ASSERT(offsetof(CLIENTIMC, hKL) == 0x2c);
1310 C_ASSERT(sizeof(CLIENTIMC) == 0x34);
1311 #endif
1312 
1313 /* flags for CLIENTIMC */
1314 #define CLIENTIMC_WIDE 0x1
1315 #define CLIENTIMC_UNKNOWN5 0x2
1316 #define CLIENTIMC_UNKNOWN4 0x20
1317 #define CLIENTIMC_UNKNOWN1 0x40
1318 #define CLIENTIMC_UNKNOWN3 0x80
1319 #define CLIENTIMC_UNKNOWN2 0x100
1320 
1321 DWORD
1322 NTAPI
1324 
1325 NTSTATUS
1326 NTAPI
1327 NtUserBuildHimcList(DWORD dwThreadId, DWORD dwCount, HIMC *phList, LPDWORD pdwCount);
1328 
1329 DWORD
1330 NTAPI
1332  HWND hwnd,
1333  DWORD x,
1334  DWORD width,
1335  DWORD y,
1336  LPRECT prc);
1337 
1338 DWORD
1339 NTAPI
1341  HMENU hmenu,
1342  UINT uIDCheckItem,
1343  UINT uCheck);
1344 
1345 DWORD
1346 NTAPI
1348  DWORD dwUnknown1,
1349  DWORD dwUnknown2,
1350  DWORD dwUnknown3);
1351 
1352 DWORD
1353 APIENTRY
1355  DWORD Unknown0,
1356  DWORD Unknown1);
1357 
1358 DWORD
1359 APIENTRY
1361  DWORD Unknown0,
1362  DWORD Unknown1);
1363 
1364 BOOL
1365 NTAPI
1367  HMENU hMenu,
1368  UINT uPosition,
1369  UINT uFlags);
1370 
1371 BOOL
1372 NTAPI
1374  HMENU hMenu);
1375 
1376 DWORD
1377 NTAPI
1379  HWND hWnd,
1380  HDC hDC,
1381  PRECT hRect,
1382  HMENU hMenu,
1383  HFONT hFont);
1384 
1385 UINT
1386 NTAPI
1388  HMENU hMenu,
1389  UINT uIDEnableItem,
1390  UINT uEnable);
1391 
1392 BOOL
1393 NTAPI
1395 
1396 BOOL
1397 NTAPI
1399  HWND hwnd,
1400  LONG idObject,
1401  LONG idItem,
1402  PMENUBARINFO pmbi);
1403 
1404 UINT
1405 NTAPI
1407  HMENU hMenu,
1408  HMENU hSubMenu);
1409 
1410 BOOL
1411 NTAPI
1413  HWND hWnd,
1414  HMENU hMenu,
1415  UINT uItem,
1416  LPRECT lprcItem);
1417 
1418 HMENU
1419 NTAPI
1421  HWND hWnd,
1422  BOOL bRevert);
1423 
1424 BOOL
1425 NTAPI
1427  HWND hWnd,
1428  HMENU hMenu,
1429  UINT uItemHilite,
1430  UINT uHilite);
1431 
1432 int
1433 NTAPI
1435  HWND hWnd,
1436  HMENU hMenu,
1437  DWORD X,
1438  DWORD Y);
1439 
1440 BOOL
1441 NTAPI
1443  HMENU hMenu,
1444  UINT uPosition,
1445  UINT uFlags);
1446 
1447 BOOL
1448 NTAPI
1450  HWND hWnd,
1451  HMENU hMenu,
1452  BOOL bRepaint);
1453 
1454 BOOL
1455 NTAPI
1457  HMENU hmenu,
1458  DWORD dwContextHelpId);
1459 
1460 BOOL
1461 NTAPI
1463  HMENU hMenu,
1464  UINT uItem,
1465  UINT fByPos);
1466 
1467 BOOL
1468 NTAPI
1470  HMENU hMenu);
1471 
1472 BOOL
1473 NTAPI
1475  HWND hWnd,
1476  HMENU hMenu);
1477 
1478 BOOL
1479 NTAPI
1481  HMENU hMenu,
1482  LPCMENUINFO lpcmi);
1483 
1484 BOOL
1485 NTAPI
1487  HMENU hMenu,
1488  UINT uItem,
1489  BOOL fByPosition,
1490  BOOL bInsert,
1491  LPMENUITEMINFOW lpmii,
1492  PUNICODE_STRING lpszCaption);
1493 
1494 BOOL
1495 NTAPI
1497  HMENU hmenu,
1498  UINT fuFlags,
1499  int x,
1500  int y,
1501  HWND hwnd,
1502  LPTPMPARAMS lptpm);
1503 
1504 HKL
1505 NTAPI
1507  HKL hKl,
1508  ULONG Flags);
1509 
1510 DWORD
1511 NTAPI
1513  HWND hWnd,
1514  DWORD Index,
1515  LONG NewValue);
1516 
1517 BOOL
1518 NTAPI
1520  IN DWORD idAttach,
1521  IN DWORD idAttachTo,
1522  IN BOOL fAttach);
1523 
1524 HDC NTAPI
1526  HWND hWnd,
1527  PAINTSTRUCT *lPs);
1528 
1529 BOOL
1530 NTAPI
1532  HDC hdc,
1533  INT nXDest,
1534  INT nYDest,
1535  INT nWidth,
1536  INT nHeight,
1537  INT nXSrc,
1538  INT nYSrc,
1539  DWORD dwRop);
1540 
1541 BOOL
1542 NTAPI
1544  BOOL BlockIt);
1545 
1546 NTSTATUS
1547 NTAPI
1549  HDESK hDesktop,
1550  HWND hwndParent,
1551  BOOLEAN bChildren,
1552  ULONG dwThreadId,
1553  ULONG lParam,
1554  HWND *pWnd,
1555  ULONG *pBufSize);
1556 
1557 NTSTATUS
1558 NTAPI
1560  HWINSTA hWinSta,
1561  ULONG dwSize,
1562  PVOID lpBuffer,
1563  PULONG pRequiredSize);
1564 
1565 NTSTATUS
1566 NTAPI
1568  HWND hWnd,
1569  LPVOID Buffer,
1570  DWORD BufferSize,
1571  DWORD *Count);
1572 
1573 /* apfnSimpleCall indices from Windows XP SP 2 */
1574 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1575 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1576 
1578 {
1581 #if (WIN32K_VERSION >= NTDDI_VISTA)
1586 #endif
1588 #if (WIN32K_VERSION < NTDDI_VISTA)
1592 #endif
1597 #if (WIN32K_VERSION >= NTDDI_VISTA)
1599 #else
1600  NOPARAM_ROUTINE_GETREMOTEPROCESSID,
1601 #endif
1604 #if (WIN32K_VERSION >= NTDDI_VISTA)
1607 #endif
1622 #if (WIN32K_VERSION >= NTDDI_VISTA)
1624 #endif
1627 #if (WIN32K_VERSION < NTDDI_VISTA)
1629 #endif
1631 #if (WIN32K_VERSION >= NTDDI_VISTA)
1633 #endif
1637 #if (WIN32K_VERSION < NTDDI_VISTA)
1638  ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
1639 #endif
1643 #if (WIN32K_VERSION < NTDDI_VISTA)
1644  ONEPARAM_ROUTINE_GETCURSORPOS,
1645 #endif
1652 #if (WIN32K_VERSION < NTDDI_VISTA)
1653  ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1654 #endif
1661 #if (WIN32K_VERSION < NTDDI_VISTA)
1662  ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
1663 #endif
1666 #if (WIN32K_VERSION >= NTDDI_VISTA)
1668 #endif
1672 #if (WIN32K_VERSION >= NTDDI_VISTA)
1674 #endif
1678 #if (WIN32K_VERSION < NTDDI_VISTA)
1679  ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
1680 #endif
1683 #if (WIN32K_VERSION >= NTDDI_VISTA)
1685 #endif
1690 #if (WIN32K_VERSION < NTDDI_VISTA)
1691  X_ROUTINE_REMOTENOTIFY,
1692 #endif
1707  HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
1726 #if (WIN32K_VERSION >= NTDDI_VISTA)
1729 #endif
1733 #if (WIN32K_VERSION >= NTDDI_VISTA)
1735 #endif
1737 #if (WIN32K_VERSION >= NTDDI_VISTA)
1739 #else
1740  TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1741 #endif
1747 #if (WIN32K_VERSION >= NTDDI_VISTA)
1749 #endif
1752 };
1753 
1754 DWORD
1755 NTAPI
1757  HWND hWnd,
1758  DWORD Routine);
1759 
1760 BOOL
1761 NTAPI
1763  HWND hWnd,
1764  DWORD Routine);
1765 
1766 HWND
1767 NTAPI
1769  HWND hWnd,
1770  DWORD Routine);
1771 
1772 DWORD
1773 NTAPI
1775  HWND hWnd,
1776  DWORD_PTR Param,
1777  DWORD Routine);
1778 
1779 DWORD
1780 NTAPI
1782  HWND hWnd,
1783  DWORD_PTR Param,
1784  DWORD Routine);
1785 
1786 BOOL
1787 NTAPI
1789  LPMSG msg,
1790  INT code);
1791 
1792 LRESULT
1793 NTAPI
1795  int Code,
1796  WPARAM wParam,
1797  LPARAM lParam,
1798  BOOL Ansi);
1799 
1800 DWORD_PTR
1801 NTAPI
1803  DWORD Routine);
1804 
1805 DWORD_PTR
1806 NTAPI
1808  DWORD_PTR Param,
1809  DWORD Routine);
1810 
1811 DWORD_PTR
1812 NTAPI
1814  DWORD_PTR Param1,
1815  DWORD_PTR Param2,
1816  DWORD Routine);
1817 
1818 BOOL
1819 NTAPI
1821  HWND hWndRemove,
1822  HWND hWndNewNext);
1823 
1824 LONG
1825 NTAPI
1827  PUNICODE_STRING lpszDeviceName,
1829  DWORD dwflags,
1830  LPVOID lParam);
1831 
1832 BOOL
1833 NTAPI
1835  DWORD dwThreadId);
1836 
1837 BOOL
1838 NTAPI
1840  HWND hwnd,
1841  DWORD dwThreadId,
1842  ULONG ReturnValue);
1843 
1844 DWORD
1845 NTAPI
1847  DWORD dwUnknown1,
1848  LPARAM dwUnknown2);
1849 
1850 HWND NTAPI
1852  HWND Parent,
1853  LONG x,
1854  LONG y,
1855  UINT Flags);
1856 
1857 BOOL
1858 NTAPI
1860  RECT *lpRect);
1861 
1862 BOOL
1863 NTAPI
1865 
1866 BOOL
1867 NTAPI
1869  HDESK hDesktop);
1870 
1871 BOOL
1872 NTAPI
1874  HWINSTA hWinSta);
1875 
1876 /* Console commands for NtUserConsoleControl */
1877 typedef enum _CONSOLECONTROL
1878 {
1884 
1886 {
1890 
1891 NTSTATUS
1892 APIENTRY
1894  IN CONSOLECONTROL ConsoleCtrl,
1895  IN PVOID ConsoleCtrlInfo,
1896  IN ULONG ConsoleCtrlInfoLength);
1897 
1898 HANDLE
1899 NTAPI
1901  PVOID pData,
1902  DWORD cbData);
1903 
1904 ULONG
1905 NTAPI
1907  HACCEL Table,
1908  LPACCEL Entries,
1909  ULONG EntriesCount);
1910 
1911 DWORD
1912 NTAPI
1914 
1915 HACCEL
1916 NTAPI
1918  LPACCEL Entries,
1919  ULONG EntriesCount);
1920 
1921 BOOL
1922 NTAPI
1924  HWND hWnd,
1925  HBITMAP hBitmap,
1926  int nWidth,
1927  int nHeight);
1928 
1929 HDESK
1930 NTAPI
1932  POBJECT_ATTRIBUTES poa,
1933  PUNICODE_STRING lpszDesktopDevice,
1934  LPDEVMODEW lpdmw,
1935  DWORD dwFlags,
1936  ACCESS_MASK dwDesiredAccess);
1937 
1938 HIMC
1939 NTAPI
1941 
1942 NTSTATUS
1943 NTAPI
1945  HANDLE hMem,
1946  PVOID pData,
1947  DWORD cbData,
1948  DWORD *pcbData);
1949 
1950 HWND
1951 NTAPI
1953  DWORD dwExStyle,
1954  PLARGE_STRING plstrClassName,
1955  PLARGE_STRING plstrClsVersion,
1956  PLARGE_STRING plstrWindowName,
1957  DWORD dwStyle,
1958  int x,
1959  int y,
1960  int nWidth,
1961  int nHeight,
1962  HWND hWndParent,
1963  HMENU hMenu,
1965  LPVOID lpParam,
1966  DWORD dwFlags,
1967  PVOID acbiBuffer);
1968 
1969 HWINSTA
1970 NTAPI
1973  ACCESS_MASK dwDesiredAccess,
1974  DWORD Unknown2,
1975  DWORD Unknown3,
1976  DWORD Unknown4,
1977  DWORD Unknown5,
1978  DWORD Unknown6);
1979 
1980 BOOL
1981 NTAPI
1983  IN HWND hwndClient,
1984  IN HWND hWndServer,
1986 
1987 DWORD
1988 NTAPI
1990  DWORD Unknown0,
1991  DWORD Unknown1,
1992  DWORD Unknown2,
1993  DWORD Unknown3,
1994  DWORD Unknown4);
1995 
1996 BOOL
1997 NTAPI
1999  IN HWND hwndClient,
2002 
2003 HDWP
2004 NTAPI
2006  HDWP WinPosInfo,
2007  HWND Wnd,
2008  HWND WndInsertAfter,
2009  int x,
2010  int y,
2011  int cx,
2012  int cy,
2013  UINT Flags);
2014 
2015 BOOL
2016 NTAPI
2018  HWND WindowHandle,
2019  PLARGE_STRING WindowText);
2020 
2021 BOOLEAN
2022 NTAPI
2024  HACCEL Table);
2025 
2026 BOOL
2027 NTAPI
2029  _In_ HANDLE Handle,
2030  _In_ BOOL bForce);
2031 
2032 BOOL
2033 NTAPI
2035 
2036 BOOLEAN
2037 NTAPI
2039  HWND Wnd);
2040 
2041 DWORD
2042 NTAPI
2044  DWORD dwUnknown1);
2045 
2046 LRESULT
2047 NTAPI
2049  PMSG pMsg);
2050 
2051 BOOL
2052 NTAPI
2054  HWND hWnd,
2055  POINT pt);
2056 
2057 DWORD
2058 NTAPI
2060  HWND hwnd1,
2061  HWND hwnd2,
2062  UINT u1,
2063  DWORD dw1,
2064  HCURSOR hc1);
2065 
2066 BOOL
2067 NTAPI
2069  HWND hwnd,
2070  INT idAni,
2071  RECT *lprcFrom,
2072  RECT *lprcTo);
2073 
2074 BOOL
2075 NTAPI
2077  HWND hWnd,
2078  HDC hDc,
2079  LPCRECT lpRc,
2080  UINT uFlags);
2081 
2082 BOOL
2083 NTAPI
2085  HWND hWnd,
2086  HDC hDC,
2087  LPCRECT lpRc,
2088  HFONT hFont,
2089  HICON hIcon,
2090  const PUNICODE_STRING str,
2091  UINT uFlags);
2092 
2093 /* Used with NtUserDrawIconEx, last parameter. */
2094 typedef struct _DRAWICONEXDATA
2095 {
2098  int cx;
2099  int cy;
2101 
2102 BOOL
2103 NTAPI
2105  HDC hdc,
2106  int xLeft,
2107  int yTop,
2108  HICON hIcon,
2109  int cxWidth,
2110  int cyWidth,
2111  UINT istepIfAniCur,
2112  HBRUSH hbrFlickerFreeDraw,
2113  UINT diFlags,
2114  BOOL bMetaHDC,
2115  PVOID pDIXData);
2116 
2117 BOOL
2118 NTAPI
2120 
2121 BOOL
2122 NTAPI
2124  HWND hWnd,
2125  UINT wSBflags,
2126  UINT wArrows);
2127 
2128 BOOL
2129 NTAPI
2131  HDWP WinPosInfo,
2132  DWORD Unknown1);
2133 
2134 BOOL
2135 NTAPI
2137  HWND hWnd,
2138  CONST PAINTSTRUCT *lPs);
2139 
2140 BOOL
2141 NTAPI
2143  PUNICODE_STRING lpDevice, /* device name */
2144  DWORD iDevNum, /* display device */
2145  PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
2146  DWORD dwFlags); /* reserved */
2147 
2148 /*
2149 BOOL
2150 NTAPI
2151 NtUserEnumDisplayMonitors(
2152  HDC hdc,
2153  LPCRECT lprcClip,
2154  MONITORENUMPROC lpfnEnum,
2155  LPARAM dwData);
2156 */
2157 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2158 INT
2159 NTAPI
2161  OPTIONAL IN HDC hDC,
2162  OPTIONAL IN LPCRECT pRect,
2163  OPTIONAL OUT HMONITOR *hMonitorList,
2164  OPTIONAL OUT LPRECT monitorRectList,
2165  OPTIONAL IN DWORD listSize);
2166 
2167 
2168 NTSTATUS
2169 NTAPI
2171  PUNICODE_STRING lpszDeviceName,
2172  DWORD iModeNum,
2173  LPDEVMODEW lpDevMode, /* FIXME is this correct? */
2174  DWORD dwFlags);
2175 
2176 DWORD
2177 NTAPI
2178 NtUserEvent(
2179  DWORD Unknown0);
2180 
2181 INT
2182 NTAPI
2184  HDC hDC,
2185  HWND hWnd);
2186 
2187 BOOL
2188 NTAPI
2190  HWND hWndPaint,
2191  HWND hWndPaint1,
2192  HDC hDC,
2193  HBRUSH hBrush);
2194 
2195 HWND
2196 NTAPI
2198  HWND hwndParent,
2199  HWND hwndChildAfter,
2200  PUNICODE_STRING ucClassName,
2201  PUNICODE_STRING ucWindowName,
2202  DWORD dwUnknown);
2203 
2204 BOOL
2205 NTAPI
2207  IN PFLASHWINFO pfwi);
2208 
2209 BOOL
2210 NTAPI
2212  HWND hwnd,
2213  INT iItem,
2214  PALTTABINFO pati,
2215  LPWSTR pszItemText,
2216  UINT cchItemText,
2217  BOOL Ansi);
2218 
2219 HWND
2220 NTAPI
2222  HWND hWnd,
2223  UINT Flags);
2224 
2225 DWORD
2226 NTAPI
2228 
2229 SHORT
2230 NTAPI
2232  INT Key);
2233 
2234 _Success_(return != 0)
2235 _At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2))
2236 ULONG
2237 APIENTRY
2238 NtUserGetAtomName(
2239  _In_ ATOM atom,
2240  _Inout_ PUNICODE_STRING pustrName);
2241 
2242 UINT
2243 NTAPI
2245 
2246 BOOL
2247 NTAPI
2249  LPPOINT lpPoint);
2250 
2251 BOOL
2252 NTAPI
2255  PUNICODE_STRING ClassName,
2256  LPWNDCLASSEXW wcex,
2257  LPWSTR *ppszMenuName,
2258  BOOL Ansi);
2259 
2260 INT
2261 NTAPI
2263  HWND hWnd,
2264  BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2265  PUNICODE_STRING ClassName);
2266 
2267 HANDLE
2268 NTAPI
2270  UINT fmt,
2271  PGETCLIPBDATA pgcd);
2272 
2273 INT
2274 NTAPI
2276  UINT uFormat,
2277  LPWSTR lpszFormatName,
2278  INT cchMaxCount);
2279 
2280 HWND
2281 NTAPI
2283 
2284 DWORD
2285 NTAPI
2287 
2288 HWND
2289 NTAPI
2291 
2292 BOOL
2293 NTAPI
2295  RECT *lpRect);
2296 
2297 BOOL
2298 NTAPI
2300  HWND hWnd,
2301  PCOMBOBOXINFO pcbi);
2302 
2303 HBRUSH
2304 NTAPI
2306  HWND hwnd,
2307  HDC hdc,
2308  UINT ctlType);
2309 
2310 HBRUSH
2311 NTAPI
2313  HWND hwndParent,
2314  HWND hwnd,
2315  HDC hdc,
2316  UINT CtlMsg);
2317 
2318 ULONG_PTR
2319 NTAPI
2320 NtUserGetCPD(
2321  HWND hWnd,
2322  GETCPD Flags,
2323  ULONG_PTR Proc);
2324 
2325 HCURSOR
2326 NTAPI
2328  HCURSOR hCursor,
2329  DWORD istep,
2330  INT *rate_jiffies,
2331  DWORD *num_steps);
2332 
2333 BOOL
2334 NTAPI
2336  PCURSORINFO pci);
2337 
2338 HDC
2339 NTAPI
2340 NtUserGetDC(
2341  HWND hWnd);
2342 
2343 HDC
2344 NTAPI
2346  HWND hWnd,
2347  HANDLE hRegion,
2348  ULONG Flags);
2349 
2350 UINT
2351 NTAPI
2353 
2354 HWND
2355 NTAPI
2357 
2358 DWORD
2359 NTAPI
2361  HANDLE hProcess,
2362  DWORD uiFlags);
2363 
2364 BOOL
2365 NTAPI
2367  DWORD idThread,
2368  LPGUITHREADINFO lpgui);
2369 
2371 BOOL
2372 NTAPI
2373 NtUserGetIconInfo(
2374  _In_ HANDLE hCurIcon,
2379  _In_ BOOL bInternal);
2380 
2381 BOOL
2382 NTAPI
2384  HANDLE Handle,
2385  UINT istepIfAniCur,
2386  LONG *plcx,
2387  LONG *plcy);
2388 
2389 BOOL NTAPI
2390 NtUserGetImeHotKey(IN DWORD dwHotKey,
2391  OUT LPUINT lpuModifiers,
2392  OUT LPUINT lpuVKey,
2393  OUT LPHKL lphKL);
2394 
2395 BOOL
2396 NTAPI
2398  PIMEINFOEX pImeInfoEx,
2399  IMEINFOEXCLASS SearchType);
2400 
2401 DWORD
2402 NTAPI
2404  HWND hwnd,
2405  LPRECT rectWnd,
2406  LPPOINT ptIcon);
2407 
2408 HKL
2409 NTAPI
2411  DWORD dwThreadid);
2412 
2413 UINT
2414 NTAPI
2416  ULONG nItems,
2417  HKL *pHklBuff);
2418 
2419 BOOL
2420 NTAPI
2422  LPWSTR lpszName);
2423 
2424 DWORD
2425 NTAPI
2427  LPBYTE Unknown0);
2428 
2429 DWORD
2430 NTAPI
2432  DWORD TypeFlag);
2433 
2434 DWORD
2435 NTAPI
2437  LONG lParam,
2438  LPWSTR lpString,
2439  int nSize);
2440 
2441 SHORT
2442 NTAPI
2444  INT VirtKey);
2445 
2446 BOOL
2447 NTAPI
2449  HWND hwnd,
2450  COLORREF *pcrKey,
2451  BYTE *pbAlpha,
2452  DWORD *pdwFlags);
2453 
2454 DWORD
2455 NTAPI
2457  HWND hWnd);
2458 
2459 BOOL
2460 APIENTRY
2462  PMSG pMsg,
2463  HWND hWnd,
2464  UINT MsgFilterMin,
2465  UINT MsgFilterMax);
2466 
2467 DWORD
2468 NTAPI
2470  UINT cbSize,
2471  LPMOUSEMOVEPOINT lppt,
2472  LPMOUSEMOVEPOINT lpptBuf,
2473  int nBufPoints,
2474  DWORD resolution);
2475 
2476 BOOL
2477 NTAPI
2479  HANDLE hObject,
2480  DWORD nIndex,
2481  PVOID pvInformation,
2482  DWORD nLength,
2483  PDWORD nLengthNeeded);
2484 
2485 HWND
2486 NTAPI
2488 
2489 INT
2490 NTAPI
2492  UINT *paFormatPriorityList,
2493  INT cFormats);
2494 
2495 HWINSTA
2496 NTAPI
2498 
2499 DWORD
2500 NTAPI
2502  PRAWINPUT pData,
2503  PUINT pcbSize,
2504  UINT cbSizeHeader);
2505 
2506 DWORD
2507 NTAPI
2509  HRAWINPUT hRawInput,
2510  UINT uiCommand,
2511  LPVOID pData,
2512  PUINT pcbSize,
2513  UINT cbSizeHeader);
2514 
2515 DWORD
2516 NTAPI
2518  HANDLE hDevice,
2519  UINT uiCommand,
2520  LPVOID pData,
2521  PUINT pcbSize);
2522 
2523 DWORD
2524 NTAPI
2526  PRAWINPUTDEVICELIST pRawInputDeviceList,
2527  PUINT puiNumDevices,
2528  UINT cbSize);
2529 
2530 DWORD
2531 NTAPI
2533  PRAWINPUTDEVICE pRawInputDevices,
2534  PUINT puiNumDevices,
2535  UINT cbSize);
2536 
2537 BOOL
2538 NTAPI
2540  HWND hWnd,
2541  LONG idObject,
2542  PSCROLLBARINFO psbi);
2543 
2544 HDESK
2545 NTAPI
2547  DWORD dwThreadId,
2548  HDESK hConsoleDesktop);
2549 
2551 {
2566 };
2567 
2568 DWORD_PTR
2569 NTAPI
2571  DWORD Routine);
2572 
2573 BOOLEAN
2574 NTAPI
2576  HWND hwnd,
2577  PTITLEBARINFO pti);
2578 
2579 BOOL
2580 NTAPI
2582  HWND hWnd,
2583  LPRECT lpRect,
2584  BOOL fErase);
2585 
2586 INT
2587 NTAPI
2589  HWND hWnd,
2590  HRGN hRgn,
2591  BOOL bErase);
2592 
2593 HDC
2594 NTAPI
2596  HWND hWnd);
2597 
2598 BOOL
2599 NTAPI
2601  HWND hWnd,
2602  WINDOWPLACEMENT *lpwndpl);
2603 
2604 PCLS
2605 NTAPI
2608  PUNICODE_STRING ClassName);
2609 
2610 DWORD
2611 NTAPI
2613  DWORD dwUnknown1,
2614  DWORD dwUnknown2,
2615  DWORD dwUnknown3);
2616 
2617 BOOL
2618 NTAPI
2620  HWND hWndClient,
2621  HWND hWndServer);
2622 
2623 NTSTATUS
2624 NTAPI
2626  DWORD dwWinVersion,
2627  HANDLE hPowerRequestEvent,
2628  HANDLE hMediaRequestEvent);
2629 
2630 NTSTATUS
2631 NTAPI
2636  HINSTANCE hmodUser);
2637 
2638 DWORD
2639 NTAPI
2641  DWORD Unknown0,
2642  DWORD Unknown1,
2643  DWORD Unknown2,
2644  DWORD Unknown3,
2645  DWORD Unknown4,
2646  DWORD Unknown5,
2647  DWORD Unknown6,
2648  DWORD Unknown7,
2649  DWORD Unknown8,
2650  DWORD Unknown9,
2651  DWORD Unknown10,
2652  DWORD Unknown11);
2653 
2654 INT
2655 NTAPI
2657  HWND hWnd,
2658  LPWSTR lpString,
2659  INT nMaxCount);
2660 
2661 BOOL
2662 NTAPI
2664  HWND hWnd,
2665  CONST RECT *lpRect,
2666  BOOL bErase);
2667 
2668 BOOL
2669 NTAPI
2671  HWND hWnd,
2672  HRGN hRgn,
2673  BOOL bErase);
2674 
2675 BOOL
2676 NTAPI
2678  UINT format);
2679 
2680 BOOL
2681 NTAPI
2683  HWND hWnd,
2684  UINT_PTR uIDEvent);
2685 
2686 HKL
2687 NTAPI
2689  IN HANDLE Handle,
2690  IN DWORD offTable,
2691  IN PUNICODE_STRING puszKeyboardName,
2692  IN HKL hKL,
2693  IN PUNICODE_STRING puszKLID,
2694  IN DWORD dwKLID,
2695  IN UINT Flags);
2696 
2697 BOOL
2698 NTAPI
2700  HWINSTA hWindowStation);
2701 
2702 BOOL
2703 NTAPI
2705  HWND hWnd);
2706 
2707 BOOL
2708 NTAPI
2710 
2711 UINT
2712 NTAPI
2714  UINT keyCode,
2715  UINT transType,
2716  DWORD keyboardId,
2717  HKL dwhkl);
2718 
2719 typedef struct tagDOSENDMESSAGE
2720 {
2724 }
2726 
2727 BOOL
2728 NTAPI
2730  HWND hWnd,
2731  UINT Msg,
2732  WPARAM wParam,
2733  LPARAM lParam,
2734  ULONG_PTR ResultInfo,
2735  DWORD dwType, /* FNID_XX types */
2736  BOOL Ansi);
2737 
2738 DWORD
2739 NTAPI
2741  HWND hWnd,
2742  UINT cmd, /* Wine SW_ commands */
2743  BOOL Hide);
2744 
2745 DWORD
2746 NTAPI
2748 
2749 DWORD
2750 NTAPI
2752  DWORD Unknown0,
2753  DWORD Unknown1);
2754 
2755 DWORD
2756 NTAPI
2758  DWORD Unknown0,
2759  DWORD Unknown1);
2760 
2761 BOOL
2762 NTAPI
2764  HWND hWnd,
2765  int X,
2766  int Y,
2767  int nWidth,
2768  int nHeight,
2769  BOOL bRepaint
2770 );
2771 
2772 DWORD
2773 NTAPI
2774 NtUserNotifyIMEStatus(HWND hwnd, BOOL fOpen, DWORD dwConversion);
2775 
2776 BOOL
2777 NTAPI
2779  HANDLE NewProcessId,
2780  HANDLE ParentThreadId,
2781  ULONG dwUnknown,
2782  ULONG CreateFlags);
2783 
2784 VOID
2785 NTAPI
2787  DWORD Event,
2788  HWND hWnd,
2789  LONG idObject,
2790  LONG idChild);
2791 
2792 BOOL
2793 NTAPI
2795  HWND hWnd,
2796  DWORD Unknown1);
2797 
2798 HDESK
2799 NTAPI
2802  DWORD dwFlags,
2803  ACCESS_MASK dwDesiredAccess);
2804 
2805 HDESK
2806 NTAPI
2808  DWORD dwFlags,
2809  BOOL fInherit,
2810  ACCESS_MASK dwDesiredAccess);
2811 
2812 HWINSTA
2813 NTAPI
2816  ACCESS_MASK dwDesiredAccess);
2817 
2818 BOOL
2819 NTAPI
2821  HDC hDC);
2822 
2823 DWORD
2824 NTAPI
2826  HWND hWnd,
2827  HDC hDC,
2828  ULONG left, // x,
2829  ULONG right, // width, // Scale the edge thickness, offset?
2830  ULONG top, // y,
2831  BOOL bActive); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground.
2832 
2833 BOOL
2834 APIENTRY
2836  PMSG pMsg,
2837  HWND hWnd,
2838  UINT MsgFilterMin,
2839  UINT MsgFilterMax,
2840  UINT RemoveMsg);
2841 
2842 BOOL
2843 NTAPI
2845  HWND hWnd,
2846  UINT Msg,
2847  WPARAM wParam,
2848  LPARAM lParam);
2849 
2850 BOOL
2851 NTAPI
2853  DWORD idThread,
2854  UINT Msg,
2855  WPARAM wParam,
2856  LPARAM lParam);
2857 
2858 BOOL
2859 NTAPI
2861  HWND hwnd,
2862  HDC hdcBlt,
2863  UINT nFlags);
2864 
2865 NTSTATUS
2866 NTAPI
2869  OUT PUSERCONNECT pUserConnect,
2870  IN ULONG Size); /* sizeof(USERCONNECT) */
2871 
2872 NTSTATUS
2873 NTAPI
2875  IN HANDLE ThreadHandle,
2877  OUT PVOID ThreadInformation,
2879 
2880 DWORD
2881 NTAPI
2883  HIMC hIMC,
2884  DWORD dwUnknown2);
2885 
2886 DWORD
2887 NTAPI
2889  DWORD Unknown0);
2890 
2891 DWORD
2892 NTAPI
2894  DWORD Unknown0,
2895  DWORD Unknown1,
2896  DWORD Unknown2,
2897  DWORD Unknown3,
2898  DWORD Unknown4);
2899 
2900 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2901 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2902 #define QUERY_WINDOW_ACTIVE 0x02
2903 #define QUERY_WINDOW_FOCUS 0x03
2904 #define QUERY_WINDOW_ISHUNG 0x04
2905 #define QUERY_WINDOW_REAL_ID 0x05
2906 #define QUERY_WINDOW_FOREGROUND 0x06
2907 #define QUERY_WINDOW_DEFAULT_IME 0x07
2908 #define QUERY_WINDOW_DEFAULT_ICONTEXT 0x08
2909 #define QUERY_WINDOW_ACTIVE_IME 0x09
2910 
2911 DWORD_PTR
2912 NTAPI
2914  HWND hWnd,
2915  DWORD Index);
2916 
2917 BOOL
2918 NTAPI
2920  LPMSG lpMsg,
2921  HWND hWnd,
2922  UINT wMsgFilterMin,
2923  UINT wMsgFilterMax,
2924  UINT wRemoveMsg,
2925  BOOL bGMSG);
2926 
2927 HWND
2928 NTAPI
2930  HWND Parent,
2931  LONG x,
2932  LONG y);
2933 
2934 BOOL
2935 NTAPI
2937  DWORD dwWakeMask,
2938  UINT uTimeout);
2939 
2940 BOOL
2941 NTAPI
2943  HWND hWnd,
2944  CONST RECT *lprcUpdate,
2945  HRGN hrgnUpdate,
2946  UINT flags);
2947 
2948 RTL_ATOM
2949 NTAPI
2951  WNDCLASSEXW* lpwcx,
2952  PUNICODE_STRING pustrClassName,
2953  PUNICODE_STRING pustrCVersion,
2954  PCLSMENUNAME pClassMenuName,
2955  DWORD fnID,
2956  DWORD Flags,
2957  LPDWORD pWow);
2958 
2959 BOOL
2960 NTAPI
2962  IN PCRAWINPUTDEVICE pRawInputDevices,
2963  IN UINT uiNumDevices,
2964  IN UINT cbSize);
2965 
2966 BOOL
2967 NTAPI
2969  PUNICODE_STRING m_dllname1,
2970  PUNICODE_STRING m_funname1,
2971  DWORD dwUnknown3,
2972  DWORD dwUnknown4);
2973 
2974 BOOL
2975 NTAPI
2977  HWND hWnd,
2978  int id,
2979  UINT fsModifiers,
2980  UINT vk);
2981 
2982 DWORD
2983 NTAPI
2985  DWORD Unknown0);
2986 
2987 UINT
2988 NTAPI
2990  PUNICODE_STRING MessageName);
2991 
2992 DWORD
2993 NTAPI
2995  DWORD dwUnknown1,
2996  DWORD dwUnknown2,
2997  DWORD dwUnknown3);
2998 
2999 DWORD
3000 NTAPI
3002  DWORD dwUnknown1,
3003  DWORD dwUnknown2,
3004  DWORD dwUnknown3,
3005  DWORD dwUnknown4);
3006 
3007 DWORD
3008 NTAPI
3010 
3011 DWORD
3012 NTAPI
3014 
3015 HANDLE
3016 NTAPI
3018  HWND hWnd,
3019  ATOM Atom);
3020 
3021 HDESK
3022 NTAPI
3025  IN PUNICODE_STRING DesktopPath,
3026  IN BOOL bInherit,
3027  OUT HWINSTA* phWinSta);
3028 
3029 DWORD
3030 NTAPI
3032  DWORD Unknown0);
3033 
3034 BOOL
3035 NTAPI
3037  HWND hwnd,
3038  int fnBar,
3039  PSBDATA pSBData,
3040  LPSCROLLINFO lpsi);
3041 
3042 BOOL
3043 NTAPI
3045  HDC hDC,
3046  int dx,
3047  int dy,
3048  CONST RECT *lprcScroll,
3049  CONST RECT *lprcClip ,
3050  HRGN hrgnUpdate,
3051  LPRECT lprcUpdate);
3052 
3053 DWORD
3054 NTAPI
3056  HWND hWnd,
3057  INT dx,
3058  INT dy,
3059  const RECT *rect,
3060  const RECT *clipRect,
3061  HRGN hrgnUpdate,
3062  LPRECT rcUpdate,
3063  UINT flags);
3064 
3065 UINT
3066 NTAPI
3068  UINT nInputs,
3069  LPINPUT pInput,
3070  INT cbSize);
3071 
3072 HWND
3073 NTAPI
3075  HWND Wnd);
3076 
3077 DWORD
3078 NTAPI
3080  DWORD dwUnknown1,
3081  DWORD dwUnknown2);
3082 
3083 HWND
3084 NTAPI
3086  HWND Wnd);
3087 
3088 ULONG_PTR
3089 NTAPI
3091  HWND hWnd,
3092  INT Offset,
3093  ULONG_PTR dwNewLong,
3094  BOOL Ansi);
3095 
3096 WORD
3097 NTAPI
3099  HWND hWnd,
3100  INT nIndex,
3101  WORD wNewWord);
3102 
3103 HANDLE
3104 NTAPI
3106  UINT fmt,
3107  HANDLE hMem,
3108  PSETCLIPBDATA scd);
3109 
3110 HWND
3111 NTAPI
3113  HWND hWndNewViewer);
3114 
3115 HPALETTE
3116 NTAPI
3118  HDC hDC,
3119  HPALETTE hpal,
3120  BOOL ForceBackground);
3121 
3122 DWORD
3123 NTAPI
3125  DWORD Unknown0,
3126  DWORD Unknown1);
3127 
3128 HCURSOR
3129 NTAPI
3131  HCURSOR hCursor);
3132 
3133 BOOL
3134 NTAPI
3136  HANDLE Handle,
3138 
3139 BOOL
3140 NTAPI
3142  _In_ HCURSOR hCursor,
3143  _In_opt_ PUNICODE_STRING pustrModule,
3144  _In_opt_ PUNICODE_STRING puSrcName,
3145  _In_ const CURSORDATA *pCursorData);
3146 
3148 {
3153 
3154 HICON
3155 NTAPI
3157  _In_ PUNICODE_STRING pustrModule,
3158  _In_ PUNICODE_STRING pustrRsrc,
3160 
3161 DWORD
3162 NTAPI
3164  DWORD Unknown0,
3165  DWORD Unknown1);
3166 
3167 DWORD
3168 APIENTRY
3170  DWORD Unknown0);
3171 
3172 HWND
3173 NTAPI
3175  HWND hWnd);
3176 
3177 DWORD
3178 NTAPI
3180  DWORD Unknown0,
3181  DWORD Unknown1,
3182  DWORD Unknown2,
3183  DWORD Unknown3,
3184  DWORD Unknown4);
3185 
3186 DWORD
3187 NTAPI
3189  PIMEINFOEX pImeInfoEx);
3190 
3191 DWORD
3192 NTAPI
3193 NtUserSetImeOwnerWindow(PIMEINFOEX pImeInfoEx, BOOL fFlag);
3194 
3195 DWORD
3196 NTAPI
3198  DWORD dwUnknown1,
3199  DWORD dwUnknown2,
3200  DWORD dwUnknown3,
3201  DWORD dwUnknown4);
3202 
3203 NTSTATUS
3204 NTAPI
3206  IN HANDLE ThreadHandle,
3208  IN PVOID ThreadInformation,
3210 
3211 DWORD
3212 NTAPI
3214  HWND hwnd,
3215  UINT showCmd,
3216  LPRECT rect,
3217  LPPOINT pt);
3218 
3219 BOOL
3220 NTAPI
3222  LPBYTE lpKeyState);
3223 
3224 BOOL
3225 NTAPI
3227  HWND hwnd,
3228  COLORREF crKey,
3229  BYTE bAlpha,
3230  DWORD dwFlags);
3231 
3232 BOOL
3233 NTAPI
3235  HWND hWnd);
3236 
3237 BOOL
3238 NTAPI
3240  HANDLE hObject,
3241  DWORD nIndex,
3242  PVOID pvInformation,
3243  DWORD nLength);
3244 
3245 HWND
3246 NTAPI
3248  HWND hWndChild,
3249  HWND hWndNewParent);
3250 
3251 BOOL
3252 NTAPI
3254  HWINSTA hWindowStation);
3255 
3256 BOOL
3257 NTAPI
3259  HWND hWnd,
3260  ATOM Atom,
3261  HANDLE Data);
3262 
3263 DWORD
3264 NTAPI
3266  DWORD Unknown0);
3267 
3268 DWORD
3269 NTAPI
3271  HWND hwnd,
3272  int fnBar,
3273  LPCSCROLLINFO lpsi,
3274  BOOL bRedraw);
3275 
3276 BOOL
3277 NTAPI
3279  HWND hwndShell,
3280  HWND hwndShellListView);
3281 
3282 BOOL
3283 NTAPI
3285  int cElements,
3286  IN CONST INT *lpaElements,
3287  IN CONST COLORREF *lpaRgbValues,
3288  FLONG Flags);
3289 
3290 BOOL
3291 NTAPI
3293  HCURSOR hcur,
3294  DWORD id);
3295 
3296 BOOL
3297 NTAPI
3299  HDESK hDesktop);
3300 
3301 DWORD
3302 NTAPI
3304  DWORD Unknown0,
3305  DWORD Unknown1);
3306 
3307 UINT_PTR
3308 NTAPI
3310  HWND hWnd,
3311  UINT_PTR nIDEvent,
3312  UINT uElapse,
3313  TIMERPROC lpTimerFunc);
3314 
3315 DWORD
3316 NTAPI
3317 NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL);
3318 
3319 UINT_PTR
3320 NTAPI
3322  HWND hWnd,
3323  UINT_PTR nIDEvent,
3324  UINT uElapse,
3325  TIMERPROC lpTimerFunc);
3326 
3327 BOOL
3328 NTAPI
3330  HWND hWnd,
3331  WORD fnID);
3332 
3333 LONG
3334 NTAPI
3336  HWND hWnd,
3337  DWORD Index,
3338  LONG NewValue,
3339  BOOL Ansi);
3340 
3341 #ifdef _WIN64
3342 LONG_PTR
3343 NTAPI
3344 NtUserSetWindowLongPtr(
3345  HWND hWnd,
3346  DWORD Index,
3347  LONG_PTR NewValue,
3348  BOOL Ansi);
3349 #endif // _WIN64
3350 
3351 BOOL
3352 NTAPI
3354  HWND hWnd,
3355  WINDOWPLACEMENT *lpwndpl);
3356 
3357 BOOL
3358 NTAPI
3360  HWND hWnd,
3361  HWND hWndInsertAfter,
3362  int X,
3363  int Y,
3364  int cx,
3365  int cy,
3366  UINT uFlags);
3367 
3368 INT
3369 NTAPI
3371  HWND hWnd,
3372  HRGN hRgn,
3373  BOOL bRedraw);
3374 
3375 HHOOK
3376 NTAPI
3378  int idHook,
3379  HOOKPROC lpfn,
3380  BOOL Ansi);
3381 
3382 HHOOK
3383 NTAPI
3385  HINSTANCE Mod,
3387  DWORD ThreadId,
3388  int HookId,
3389  HOOKPROC HookProc,
3390  BOOL Ansi);
3391 
3392 BOOL
3393 NTAPI
3395  IN HWINSTA hWindowStation,
3396  IN PLUID pluid,
3397  IN PSID psid OPTIONAL,
3398  IN DWORD size);
3399 
3400 WORD
3401 NTAPI
3403  HWND hWnd,
3404  INT Index,
3405  WORD NewVal);
3406 
3408 NTAPI
3410  UINT eventMin,
3411  UINT eventMax,
3412  HMODULE hmodWinEventProc,
3413  PUNICODE_STRING puString,
3414  WINEVENTPROC lpfnWinEventProc,
3415  DWORD idProcess,
3416  DWORD idThread,
3417  UINT dwflags);
3418 
3419 BOOL
3420 NTAPI
3422  HWND hWnd);
3423 
3424 BOOL
3425 NTAPI
3427  HWND hWnd);
3428 
3429 DWORD
3430 NTAPI
3432  HWND hWnd,
3433  int wBar,
3434  DWORD bShow);
3435 
3436 BOOL
3437 NTAPI
3439  HWND hWnd,
3440  LONG nCmdShow);
3441 
3442 BOOL
3443 NTAPI
3445  HWND hWnd,
3446  LONG nCmdShow);
3447 
3448 BOOL
3449 NTAPI
3451 
3452 BOOL
3453 NTAPI
3455  HDESK hDesktop);
3456 
3457 BOOL
3458 NTAPI
3460  UINT uiAction,
3461  UINT uiParam,
3462  PVOID pvParam,
3463  UINT fWinIni);
3464 
3465 DWORD
3466 NTAPI
3468  DWORD dwUnknown1);
3469 
3470 INT
3471 NTAPI
3473  UINT wVirtKey,
3474  UINT wScanCode,
3475  PBYTE lpKeyState,
3476  LPWSTR pwszBuff,
3477  int cchBuff,
3478  UINT wFlags,
3479  HKL dwhkl);
3480 
3481 BOOL
3482 NTAPI
3484  LPTRACKMOUSEEVENT lpEventTrack);
3485 
3486 int
3487 NTAPI
3489  HWND Window,
3490  HACCEL Table,
3491  LPMSG Message);
3492 
3493 BOOL
3494 NTAPI
3496  LPMSG lpMsg,
3497  UINT flags );
3498 
3499 BOOL
3500 NTAPI
3502  HHOOK Hook);
3503 
3504 BOOL
3505 NTAPI
3507  HWINEVENTHOOK hWinEventHook);
3508 
3509 BOOL
3510 NTAPI
3512  HKL hKl);
3513 
3514 BOOL
3515 NTAPI
3517  HWINSTA hWindowStation);
3518 
3519 BOOL
3520 NTAPI
3522  PUNICODE_STRING ClassNameOrAtom,
3524  PCLSMENUNAME pClassMenuName);
3525 
3526 BOOL
3527 NTAPI
3529  HWND hWnd,
3530  int id);
3531 
3532 BOOL
3533 NTAPI
3535 
3536 DWORD
3537 NTAPI
3539  HIMC hIMC,
3540  DWORD Unknown1,
3541  LPVOID pClientImc);
3542 
3543 DWORD
3544 NTAPI
3546  DWORD Unknown0,
3547  DWORD Unknown1,
3548  DWORD Unknown2);
3549 
3550 BOOL
3551 NTAPI
3553  HWND hwnd,
3554  HDC hdcDst,
3555  POINT *pptDst,
3556  SIZE *psize,
3557  HDC hdcSrc,
3558  POINT *pptSrc,
3559  COLORREF crKey,
3560  BLENDFUNCTION *pblend,
3561  DWORD dwFlags,
3562  RECT *prcDirty);
3563 
3564 BOOL
3565 NTAPI
3567  DWORD dwReserved,
3568  BOOL bEnable);
3569 
3570 BOOL
3571 NTAPI
3573  IN HANDLE hUserHandle,
3574  IN HANDLE hJob,
3575  IN BOOL bGrant);
3576 
3577 BOOL
3578 NTAPI
3580  HANDLE hHdl);
3581 
3582 BOOL
3583 NTAPI
3585  HWND hWnd,
3586  CONST RECT *lpRect);
3587 
3588 BOOL
3589 APIENTRY
3591  LPARAM lParam);
3592 
3593 DWORD
3594 NTAPI
3596  WCHAR wChar,
3598  BOOL bUsehHK);
3599 
3600 DWORD
3601 NTAPI
3603  IN HANDLE hProcess,
3604  IN DWORD dwMilliseconds,
3605  IN BOOL bSharedWow); /* Always FALSE */
3606 
3607 DWORD
3608 NTAPI
3610  DWORD Unknown0);
3611 
3612 BOOL
3613 NTAPI
3615 
3616 DWORD
3617 NTAPI
3619  DWORD Unknown0,
3620  DWORD Unknown1,
3621  DWORD Unknown2,
3622  DWORD Unknown3,
3623  DWORD Unknown4,
3624  DWORD Unknown5);
3625 
3626 HWND
3627 NTAPI
3629  LONG X,
3630  LONG Y);
3631 
3632 DWORD
3633 NTAPI
3635 
3636 /* NtUserBad
3637  * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3638  */
3639 
3640 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3641 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3642 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3643 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3644 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3645 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3646 
3647 #define MSQ_STATE_CAPTURE 0x1
3648 #define MSQ_STATE_ACTIVE 0x2
3649 #define MSQ_STATE_FOCUS 0x3
3650 #define MSQ_STATE_MENUOWNER 0x4
3651 #define MSQ_STATE_MOVESIZE 0x5
3652 #define MSQ_STATE_CARET 0x6
3653 
3654 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3655 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3656 
3657 BOOL
3658 NTAPI
3660  IN HMONITOR hMonitor,
3661  OUT LPMONITORINFO pMonitorInfo);
3662 
3663 /* Should be done in usermode */
3664 
3665 HMONITOR
3666 NTAPI
3668  IN POINT point,
3669  IN DWORD dwFlags);
3670 
3671 HMONITOR
3672 NTAPI
3674  IN LPCRECT pRect,
3675  IN DWORD dwFlags);
3676 
3677 HMONITOR
3678 NTAPI
3680  IN HWND hWnd,
3681  IN DWORD dwFlags);
3682 
3683 typedef struct _SETSCROLLBARINFO
3684 {
3689 
3690 BOOL
3691 NTAPI
3693  HWND hwnd,
3694  LONG idObject,
3696 
3697 #endif /* __WIN32K_NTUSER_H */
3698 
3699 /* EOF */
ULONG fFreed
Definition: ntuser.h:435
ULONG bAnsi
Definition: ntuser.h:93
struct tagOEMBITMAPINFO OEMBITMAPINFO
INT aiSysMet[SM_CMETRICS]
Definition: ntuser.h:971
DWORD NTAPI NtUserAssociateInputContext(HWND hWnd, HIMC hIMC, DWORD dwFlags)
Definition: ntstubs.c:14
DWORD NTAPI NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL)
Definition: ntstubs.c:897
WCHAR szName[16]
Definition: ntuser.h:947
WND wnd
Definition: ntuser.h:751
HKL NTAPI NtUserGetKeyboardLayout(DWORD dwThreadid)
DWORD_PTR dwMenuData
Definition: ntuser.h:404
HIMC NTAPI NtUserCreateInputContext(PCLIENTIMC pClientImc)
Definition: ntstubs.c:421
VOID NTAPI RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING, IN PCWSTR, IN INT)
Definition: rtlstr.c:42
DWORD NTAPI NtUserCallHwndParam(HWND hWnd, DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:755
BOOL NTAPI NtUserPostThreadMessage(DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:2242
HANDLE NTAPI NtUserRemoveProp(HWND hWnd, ATOM Atom)
HBITMAP hbmAlpha
Definition: ntuser.h:1142
signed char * PCHAR
Definition: retypes.h:7
INT cxBmp
Definition: ntuser.h:363
UINT NTAPI NtUserEnableMenuItem(HMENU hMenu, UINT uIDEnableItem, UINT uEnable)
Definition: menu.c:5856
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
UINT uiShellMsg
Definition: ntuser.h:1025
ULONG_PTR cHandleEntries
Definition: ntuser.h:1014
HWND NTAPI NtUserCreateWindowEx(DWORD dwExStyle, PLARGE_STRING plstrClassName, PLARGE_STRING plstrClsVersion, PLARGE_STRING plstrWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam, DWORD dwFlags, PVOID acbiBuffer)
Definition: window.c:2426
CONST char * PCSZ
Definition: umtypes.h:125
UINT_PTR NTAPI NtUserSetTimer(HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc)
Definition: timer.c:630
struct tagHOOK HOOK
HMENU NTAPI NtUserGetSystemMenu(HWND hWnd, BOOL bRevert)
Definition: menu.c:5661
HWND hWnd
Definition: ntuser.h:411
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
ULONG fsHooks
Definition: ntuser.h:302
HFONT hMsgFont
Definition: ntuser.h:956
UINT uCodePage
Definition: ntuser.h:1244
POINT MaxPos
Definition: ntuser.h:722
struct tagMBSTRING * PMBSTRING
BOOL NTAPI NtUserTrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack)
Definition: mouse.c:482
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
BOOL NTAPI NtUserGetCaretPos(LPPOINT lpPoint)
Definition: caret.c:398
const uint16_t * PCWSTR
Definition: typedefs.h:57
DWORD dwReserved
Definition: ntuser.h:752
#define IN
Definition: typedefs.h:39
CALLBACKWND CallbackWnd
Definition: ntuser.h:303
GLint GLint GLsizei width
Definition: gl.h:1546
#define LONG_PTR
Definition: treelist.c:79
DWORD_PTR dwItemData
Definition: ntuser.h:354
return
Definition: dirsup.c:529
struct _CLSMENUNAME CLSMENUNAME
BOOL WINAPI ImeConfigure(HKL, HWND, DWORD, LPVOID)
BOOL NTAPI NtUserRegisterUserApiHook(PUNICODE_STRING m_dllname1, PUNICODE_STRING m_funname1, DWORD dwUnknown3, DWORD dwUnknown4)
Definition: hook.c:1724
IMEINFO ImeInfo
Definition: ntuser.h:1243
ULONG Win32ClientInfo3[26]
Definition: ntuser.h:318
WORD fsWakeBitsJournal
Definition: ntuser.h:165
DWORD ExStyle
Definition: ntuser.h:674
PVOID pSelf
Definition: ntuser.h:187
ASMGENDATA Table[]
Definition: genincdata.c:61
static HICON
Definition: imagelist.c:84
UINT wID
Definition: ntuser.h:348
_GETCPD
Definition: ntuser.h:512
INT cInDDEMLCallback
Definition: ntuser.h:305
WNDPROC pfnStaticWndProc
Definition: ntuser.h:780
INT cpxThumb
Definition: ntuser.h:502
DWORD dwProdVersion
Definition: ntuser.h:1175
LPWSTR lpName
Definition: ntuser.h:1133
DWORD NTAPI NtUserDdeInitialize(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
Definition: dde.c:465
HWND hTaskManWindow
Definition: ntuser.h:137
USHORT BitCount
Definition: ntuser.h:998
UINT HideFocus
Definition: ntuser.h:728
struct _DESKTOP * rpdeskParent
Definition: ntuser.h:545
struct _WND * spwndPopupMenu
Definition: ntuser.h:444
LPARAM lParam
Definition: ntuser.h:1225
INT fCUASLayer
Definition: ntuser.h:1182
unsigned short RTL_ATOM
Definition: atom.c:42
ULONG CURSORF_flags
Definition: ntuser.h:1137
INT page
Definition: ntuser.h:496
LIST_ENTRY ThreadListEntry
Definition: ntuser.h:734
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
Definition: conport.c:35
struct _CALLBACKWND * PCALLBACKWND
struct _CLIENTTHREADINFO CLIENTTHREADINFO
struct _USER_HANDLE_TABLE USER_HANDLE_TABLE
BOOL NTAPI NtUserNotifyProcessCreate(HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags)
Definition: ntstubs.c:507
WNDPROC pfnClientPrevious
Definition: ntuser.h:526
INT fSysWow64Only
Definition: ntuser.h:1181
struct _DESKTOPINFO DESKTOPINFO
DWORD_PTR NTAPI NtUserGetThreadState(DWORD Routine)
Definition: misc.c:231
_Must_inspect_result_ _Out_ LPSIZE psize
Definition: ntgdi.h:1569
HDESK NTAPI NtUserOpenInputDesktop(DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess)
Definition: desktop.c:2641
struct _DESKTOP * rpdesk
Definition: ntuser.h:186
#define _In_opt_
Definition: ms_sal.h:309
BOOL NTAPI NtUserDdeSetQualityOfService(IN HWND hwndClient, IN PSECURITY_QUALITY_OF_SERVICE pqosNew, OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev)
Definition: dde.c:442
struct _DESKTOP_CONSOLE_THREAD DESKTOP_CONSOLE_THREAD
DWORD NTAPI NtUserWaitForInputIdle(IN HANDLE hProcess, IN DWORD dwMilliseconds, IN BOOL bSharedWow)
Definition: message.c:3056
INT fInitOpen
Definition: ntuser.h:1173
DPISERVERINFO dpiSystem
Definition: ntuser.h:990
#define FNID_NUMSERVERPROC
Definition: ntuser.h:865
ULONG fToggle
Definition: ntuser.h:424
#define _Inout_
Definition: ms_sal.h:378
DWORD NTAPI NtUserRemoteRedrawScreen(VOID)
Definition: ntstubs.c:945
enum _CONSOLECONTROL CONSOLECONTROL
ULONG PropListItems
Definition: ntuser.h:694
HBRUSH hbrBack
Definition: ntuser.h:405
DWORD NTAPI NtUserDragObject(HWND hwnd1, HWND hwnd2, UINT u1, DWORD dw1, HCURSOR hc1)
Definition: ntstubs.c:64
DWORD ExStyle2
Definition: ntuser.h:715
GLint x0
Definition: linetemp.h:95
static HMENU hmenu
Definition: win.c:66
DWORD fsHooks
Definition: ntuser.h:134
#define Y(I)
HWND NTAPI NtUserSetCapture(HWND Wnd)
Definition: focus.c:1587
_Out_opt_ PICONINFO _Inout_opt_ PUNICODE_STRING lpInstName
Definition: ntuser.h:2375
struct tagMENULIST * PMENULIST
ULONG fIsSysMenu
Definition: ntuser.h:419
struct _THREADINFO * pti
Definition: ntuser.h:22
struct _CLS CLS
HANDLE hLocale
Definition: ntuser.h:1119
struct tagDDEPACK * PDDEPACK
DWORD NTAPI NtUserModifyUserStartupInfoFlags(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:205
ULONG fRightButton
Definition: ntuser.h:423
struct _WNDMSG WNDMSG
DWORD NTAPI NtUserGetListBoxInfo(HWND hWnd)
Definition: window.c:3318
PVOID Buffer
Definition: ntuser.h:94
#define _At_(target, annos)
Definition: ms_sal.h:244
LPSTR pszClientAnsiMenuName
Definition: ntuser.h:472
enum _CONSOLECONTROL * PCONSOLECONTROL
BOOL NTAPI NtUserThunkedMenuItemInfo(HMENU hMenu, UINT uItem, BOOL fByPosition, BOOL bInsert, LPMENUITEMINFOW lpmii, PUNICODE_STRING lpszCaption)
Definition: menu.c:6556
CHAR acOemToAnsi[256]
Definition: ntuser.h:1031
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
BOOL NTAPI NtUserDestroyCursor(_In_ HANDLE Handle, _In_ BOOL bForce)
Definition: cursoricon.c:793
UINT Dummy
Definition: ntuser.h:147
BOOL NTAPI NtUserAttachThreadInput(IN DWORD idAttach, IN DWORD idAttachTo, IN BOOL fAttach)
Definition: input.c:664
BOOL WINAPI ImeProcessKey(HIMC, UINT, LPARAM, CONST LPBYTE)
struct _CLIENTTHREADINFO * PCLIENTTHREADINFO
WORD ATOM
Definition: dimm.idl:113
struct tagMENULIST * pNext
Definition: ntuser.h:371
struct _THROBJHEAD THROBJHEAD
HPALETTE NTAPI NtUserSelectPalette(HDC hDC, HPALETTE hpal, BOOL ForceBackground)
Definition: windc.c:1033
Definition: ftp_var.h:139
HWND NTAPI NtUserGetAncestor(HWND hWnd, UINT Flags)
Definition: window.c:3148
ATOM atomFrostedWindowProp
Definition: ntuser.h:1030
HKL NTAPI NtUserActivateKeyboardLayout(HKL hKl, ULONG Flags)
Definition: kbdlayout.c:758
struct tagCURSORDATA * aspcur
Definition: ntuser.h:1150
#define pt(x, y)
Definition: drawing.c:79
struct _CLIENTINFO CLIENTINFO
WNDPROC pfnGhostWndProc
Definition: ntuser.h:782
LRESULT NTAPI NtUserCallNextHookEx(int Code, WPARAM wParam, LPARAM lParam, BOOL Ansi)
Definition: hook.c:1371
UINT ucWheelScrollLines
Definition: ntuser.h:983
struct tagCURSORDATA * PCURSORDATA
UINT WINAPI ImeToAsciiEx(UINT, UINT, CONST LPBYTE, LPDWORD, UINT, HIMC)
LONG NTAPI NtUserChangeDisplaySettings(PUNICODE_STRING lpszDeviceName, LPDEVMODEW lpDevMode, DWORD dwflags, LPVOID lParam)
Definition: display.c:870
INT page
Definition: ntuser.h:481
WNDPROC pfnEditWndProc
Definition: ntuser.h:777
ULONG_PTR dwClientImcData
Definition: ntuser.h:194
UINT NTAPI NtUserGetMenuIndex(HMENU hMenu, HMENU hSubMenu)
Definition: menu.c:6069
uint16_t * PWSTR
Definition: typedefs.h:56
unsigned char type
Definition: ntuser.h:25
HINSTANCE hModule
Definition: ntuser.h:678
BOOL NTAPI NtUserCreateCaret(HWND hWnd, HBITMAP hBitmap, int nWidth, int nHeight)
Definition: caret.c:312
enum _GETCPD GETCPD
BOOL NTAPI NtUserTrackPopupMenuEx(HMENU hmenu, UINT fuFlags, int x, int y, HWND hwnd, LPTPMPARAMS lptpm)
Definition: menu.c:6616
UINT fFreeActiveEvent
Definition: ntuser.h:1210
WNDPROC lpfnWndProc
Definition: ntuser.h:688
struct _USERCONNECT * PUSERCONNECT
HCURSOR NTAPI NtUserSetCursor(HCURSOR hCursor)
Definition: cursoricon.c:1049
BOOL NTAPI NtUserScrollDC(HDC hDC, int dx, int dy, CONST RECT *lprcScroll, CONST RECT *lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate)
struct _SETSCROLLBARINFO SETSCROLLBARINFO
HINSTANCE hModule
Definition: ntuser.h:558
static DWORD DWORD istep
Definition: cursoricon.c:1638
SBDATA Vert
Definition: ntuser.h:489
BOOL NTAPI NtUserRegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk)
Definition: hotkey.c:512
GLint dy
Definition: linetemp.h:97
HANDLE h
Definition: ntuser.h:173
BOOL NTAPI NtUserCallMsgFilter(LPMSG msg, INT code)
Definition: message.c:2379
WORD vk
Definition: input.c:77
struct tagIMEINFOEX * PIMEINFOEX
char CHAR
Definition: xmlstorage.h:175
ThreadStateRoutines
Definition: ntuser.h:2550
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
LIST_ENTRY ListEntry
Definition: ntuser.h:410
struct tagMENULIST MENULIST
NTSTATUS NTAPI NtUserBuildHimcList(DWORD dwThreadId, DWORD dwCount, HIMC *phList, LPDWORD pdwCount)
Definition: ntstubs.c:56
HDESK hDesk
Definition: ntuser.h:1072
WNDPROC_EX pfnStaticWndProc
Definition: ntuser.h:813
DWORD recipients
Definition: ntuser.h:1071
WNDPROC pfnDefWindowProc
Definition: ntuser.h:770
HWND NTAPI NtUserGetClipboardViewer(VOID)
Definition: clipboard.c:800
UINT fState
Definition: ntuser.h:347
struct _PFNCLIENT * PPFNCLIENT
struct _tagFINDEXISTINGCURICONPARAM FINDEXISTINGCURICONPARAM
ULONG fDestroyed
Definition: ntuser.h:432
LONG cLockObj
Definition: ntuser.h:1294
BOOL NTAPI NtUserUnlockWindowStation(HWINSTA hWindowStation)
Definition: winsta.c:1565
_Out_opt_ PICONINFO _Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING _Out_opt_ LPDWORD pbpp
Definition: ntuser.h:2375
Definition: ntuser.h:190
BOOL NTAPI NtUserCloseClipboard(VOID)
Definition: clipboard.c:589
*nSize LPSTR _Inout_ LPDWORD nSize
Definition: winbase.h:2053
LONG NTSTATUS
Definition: precomp.h:26
struct tagHOOK * phkNext
Definition: ntuser.h:223
DWORD NTAPI NtUserGetInternalWindowPos(HWND hwnd, LPRECT rectWnd, LPPOINT ptIcon)
Definition: winpos.c:3232
PVOID pActCtx
Definition: ntuser.h:279
ULONG ulWidth
Definition: ntuser.h:361
DWORD WINAPI ImeGetImeMenuItems(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD)
ULONG hTaskWow
Definition: ntuser.h:209
ULONG MaximumLength
Definition: ntuser.h:102
LRESULT WINAPI ImeEscape(HIMC, UINT, LPVOID)
DWORD APIENTRY NtUserDbgWin32HeapFail(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:282
static HDC
Definition: imagelist.c:92
ULONG_PTR CI_flags
Definition: ntuser.h:293
#define CALLBACK
Definition: compat.h:35
_In_ DWORD nLength
Definition: wincon.h:473
struct _REGISTER_SYSCLASS * PREGISTER_SYSCLASS
INT pxRight
Definition: ntuser.h:501
UINT cicur
Definition: ntuser.h:1149
LIST_ENTRY PropListHead
Definition: ntuser.h:693
LPWSTR pwszClientUnicodeMenuName
Definition: ntuser.h:473
TRANSMSG TransMsg[ANYSIZE_ARRAY]
Definition: ntuser.h:1231
HWND hWnd
Definition: settings.c:17
ULONG cch
Definition: ntuser.h:353
ULONG fInCancel
Definition: ntuser.h:436
WNDPROC pfnMessageWindowProc
Definition: ntuser.h:771
UINT Global
Definition: ntuser.h:567
#define CCHILDREN_SCROLLBAR
Definition: winuser.h:3721
struct tagOEMBITMAPINFO * POEMBITMAPINFO
DWORD NTAPI NtUserNotifyIMEStatus(HWND hwnd, BOOL fOpen, DWORD dwConversion)
Definition: ime.c:52
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD IN DWORD Unknown6
Definition: conport.c:35
HKL hKL
Definition: ntuser.h:1200
struct tagIMEINFOEX IMEINFOEX
INT pos
Definition: ntuser.h:482
HANDLE HWND
Definition: compat.h:19
PWND spwnd
Definition: ntuser.h:1197
struct _WND * spwndActivePopup
Definition: ntuser.h:449
PSBINFO pSBInfo
Definition: ntuser.h:696
struct _WND WND
SHORT xHotspot
Definition: ntuser.h:1138
static HRGN hRgn
Definition: mapping.c:33
BOOL NTAPI NtUserGetScrollBarInfo(HWND hWnd, LONG idObject, PSCROLLBARINFO psbi)
Definition: scrollbar.c:1256
ULONG cyItem
Definition: ntuser.h:358
BOOL NTAPI NtUserRegisterRawInputDevices(IN PCRAWINPUTDEVICE pRawInputDevices, IN UINT uiNumDevices, IN UINT cbSize)
Definition: ntstubs.c:694
INT NTAPI NtUserInternalGetWindowText(HWND hWnd, LPWSTR lpString, INT nMaxCount)
Definition: window.c:4341
HMENU SystemMenu
Definition: ntuser.h:698
INT NTAPI NtUserGetPriorityClipboardFormat(UINT *paFormatPriorityList, INT cFormats)
Definition: clipboard.c:823
DWORD_PTR NTAPI NtUserCallOneParam(DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:145
WNDPROC pfnDialogWndProc
Definition: ntuser.h:776
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
HWND NTAPI NtUserChildWindowFromPointEx(HWND Parent, LONG x, LONG y, UINT Flags)
Definition: winpos.c:3141
ULONG yItem
Definition: ntuser.h:356
struct _WND * spwndNotify
Definition: ntuser.h:399
HBRUSH NTAPI NtUserGetControlBrush(HWND hwnd, HDC hdc, UINT ctlType)
Definition: misc.c:182
BOOL TimeToHide
Definition: ntuser.h:412
BOOL NTAPI NtUserPostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:2225
_In_ BOOL _In_ HANDLE hProcess
Definition: mapping.h:70
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
HBITMAP hbmMask
Definition: ntuser.h:1140
BOOL NTAPI NtUserEndDeferWindowPosEx(HDWP WinPosInfo, DWORD Unknown1)
Definition: winpos.c:3162
BOOL NTAPI NtUserCheckWindowThreadDesktop(HWND hwnd, DWORD dwThreadId, ULONG ReturnValue)
DWORD NTAPI NtUserSetImeHotKey(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
Definition: ime.c:60
uint32_t * LPUINT
Definition: typedefs.h:59
struct _CURICON_OBJECT * spcur
Definition: ntuser.h:560
ULONG fHierarchyDropped
Definition: ntuser.h:422
struct _SBWND SBWND
BOOL NTAPI NtUserFillWindow(HWND hWndPaint, HWND hWndPaint1, HDC hDC, HBRUSH hBrush)
Definition: painting.c:1702
USHORT dmLogPixels
Definition: ntuser.h:999
BOOL NTAPI NtUserDdeGetQualityOfService(IN HWND hwndClient, IN HWND hWndServer, OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev)
Definition: dde.c:430
struct tagCLIENTIMC CLIENTIMC
ULONG fIsTrackPopup
Definition: ntuser.h:420
DWORD dwExpWinVer
Definition: ntuser.h:295
UINT_PTR WPARAM
Definition: windef.h:207
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:1274
BYTE afAsyncKeyStateRecentDow[8]
Definition: ntuser.h:312
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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:728
DWORD NTAPI NtUserRemoteRedrawRectangle(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
Definition: ntstubs.c:933
enum _GETCPD * PGETCPD
RECT rcClient
Definition: ntuser.h:687
#define _Out_z_bytecap_post_bytecount_(cap, count)
Definition: ms_sal.h:911
BOOL NTAPI NtUserValidateRect(HWND hWnd, CONST RECT *lpRect)
struct _USERCONNECT USERCONNECT
HICON HCURSOR
Definition: windef.h:299
UINT NTAPI NtUserGetCaretBlinkTime(VOID)
Definition: caret.c:383
DWORD NTAPI NtUserCtxDisplayIOCtl(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
Definition: ntstubs.c:961
UINT uFlags
Definition: api.c:59
GLdouble u1
Definition: glext.h:8308
static HDC hdcSrc
Definition: xlate.c:32
HIMC hImc
Definition: ntuser.h:710
int32_t INT_PTR
Definition: typedefs.h:64
INT NTAPI NtUserEnumDisplayMonitors(OPTIONAL IN HDC hDC, OPTIONAL IN LPCRECT pRect, OPTIONAL OUT HMONITOR *hMonitorList, OPTIONAL OUT LPRECT monitorRectList, OPTIONAL IN DWORD listSize)
struct _MDIWND * PMDIWND
_Out_opt_ PICONINFO _Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING lpResName
Definition: ntuser.h:2375
static HWINEVENTHOOK(WINAPI *pSetWinEventHook)(DWORD
char * LPSTR
Definition: xmlstorage.h:182
struct _CLS * pclsClone
Definition: ntuser.h:552
WNDPROC pfnComboListBoxProc
Definition: ntuser.h:775
_CONSOLECONTROL
Definition: ntuser.h:1877
INT WSBflags
Definition: ntuser.h:487
ATOM atomContextHelpIdProp
Definition: ntuser.h:1029
struct _PFNCLIENT PFNCLIENT
BOOL NTAPI NtUserGetMenuBarInfo(HWND hwnd, LONG idObject, LONG idItem, PMENUBARINFO pmbi)
Definition: menu.c:5914
struct tagPOPUPMENU * PPOPUPMENU
#define BOOL
Definition: nt_native.h:43
HDC NTAPI NtUserGetDC(HWND hWnd)
Definition: windc.c:1013
MENUINFO CONST * LPCMENUINFO
Definition: winuser.h:3720
struct tagSBINFO * PSBINFO
struct _WND * spwndClipboardListener
Definition: ntuser.h:714
#define MAX_MB_STRINGS
Definition: ntuser.h:916
struct _REGISTER_SYSCLASS REGISTER_SYSCLASS
UNICODE_STRING lpstr
Definition: ntuser.h:366
RTL_ATOM atomClassName
Definition: ntuser.h:542
struct _PROCESSINFO * ppi
Definition: ntuser.h:23
BOOL NTAPI NtUserInvalidateRect(HWND hWnd, CONST RECT *lpRect, BOOL bErase)
Definition: painting.c:2544
BOOL NTAPI NtUserGetMonitorInfo(IN HMONITOR hMonitor, OUT LPMONITORINFO pMonitorInfo)
Definition: monitor.c:728
int32_t INT
Definition: typedefs.h:58
NTSTATUS NTAPI NtUserInitializeClientPfnArrays(PPFNCLIENT pfnClientA, PPFNCLIENT pfnClientW, PPFNCLIENTWORKER pfnClientWorker, HINSTANCE hmodUser)
Definition: ntstubs.c:117
struct _THREADINFO * ptiHooked
Definition: ntuser.h:228
struct _LARGE_ANSI_STRING LARGE_ANSI_STRING
struct tagDPISERVERINFO * PDPISERVERINFO
COLORREF argbSystem[NUM_SYSCOLORS]
Definition: ntuser.h:973
BOOL NTAPI NtUserEnableScrollBar(HWND hWnd, UINT wSBflags, UINT wArrows)
Definition: scrollbar.c:1366
BOOL APIENTRY NtUserPeekMessage(PMSG pMsg, HWND hWnd, UINT MsgFilterMin, UINT MsgFilterMax, UINT RemoveMsg)
Definition: message.c:2337
POINTL point
Definition: edittest.c:50
& rect
Definition: startmenu.cpp:1413
struct _CURICON_OBJECT * spicn
Definition: ntuser.h:559
WPARAM wParam
Definition: combotst.c:138
INT pxTop
Definition: ntuser.h:498
struct _PROCDESKHEAD * PPROCDESKHEAD
UINT NTAPI NtUserSendInput(UINT nInputs, LPINPUT pInput, INT cbSize)
Definition: input.c:707
PIMEUI pimeui
Definition: ntuser.h:1218
_OBI_TYPES
Definition: ntuser.h:934
ATOM atomNVClassName
Definition: ntuser.h:543
struct _SHAREDINFO SHAREDINFO
HFONT hFont
Definition: main.c:53
VOID(CALLBACK * TIMERPROC)(HWND, UINT, UINT_PTR, DWORD)
Definition: winuser.h:2873
struct _BROADCASTPARM BROADCASTPARM
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
BOOL NTAPI NtUserGetObjectInformation(HANDLE hObject, DWORD nIndex, PVOID pvInformation, DWORD nLength, PDWORD nLengthNeeded)
Definition: winsta.c:1079
struct _DESKTOP_CONSOLE_THREAD * PDESKTOP_CONSOLE_THREAD
DWORD NTAPI NtUserGetGuiResources(HANDLE hProcess, DWORD uiFlags)
Definition: misc.c:506
LRESULT(CALLBACK * HOOKPROC)(int, WPARAM, LPARAM)
Definition: winuser.h:2875
struct _PROPLISTITEM * PPROPLISTITEM
BOOL NTAPI NtUserEmptyClipboard(VOID)
Definition: clipboard.c:722
struct _SHAREDINFO * PSHAREDINFO
UINT wMaxBtnSize
Definition: ntuser.h:959
DWORD dwLastRITEventTickCount
Definition: ntuser.h:978
SBCALC SBCalc
Definition: ntuser.h:746
HBITMAP hbmUserAlpha
Definition: ntuser.h:1144
struct tagDDEPACK DDEPACK<