[BCRYPT] Sync with Wine Staging 1.7.55. CORE-10536
[reactos.git] / reactos / win32ss / include / ntuser.h
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 #ifndef HIMC
10 typedef HANDLE HIMC;
11 #endif
12
13 #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
14 #define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
15
16 #define HANDLEENTRY_INDESTROY 1
17
18 typedef struct _USER_HANDLE_ENTRY
19 {
20 void *ptr; /* pointer to object */
21 union
22 {
23 PVOID pi;
24 struct _THREADINFO *pti; /* pointer to Win32ThreadInfo */
25 struct _PROCESSINFO *ppi; /* pointer to W32ProcessInfo */
26 };
27 unsigned char type; /* object type (0 if free) */
28 unsigned char flags;
29 unsigned short generation; /* generation counter */
30 } USER_HANDLE_ENTRY, *PUSER_HANDLE_ENTRY;
31
32 typedef struct _USER_HANDLE_TABLE
33 {
34 PUSER_HANDLE_ENTRY handles;
35 PUSER_HANDLE_ENTRY freelist;
36 int nb_handles;
37 int allocated_handles;
38 } USER_HANDLE_TABLE, *PUSER_HANDLE_TABLE;
39
40 typedef enum _HANDLE_TYPE
41 {
42 TYPE_FREE = 0,
43 TYPE_WINDOW = 1,
44 TYPE_MENU = 2,
45 TYPE_CURSOR = 3,
46 TYPE_SETWINDOWPOS = 4,
47 TYPE_HOOK = 5,
48 TYPE_CLIPDATA = 6,
49 TYPE_CALLPROC = 7,
50 TYPE_ACCELTABLE = 8,
51 TYPE_DDEACCESS = 9,
52 TYPE_DDECONV = 10,
53 TYPE_DDEXACT = 11,
54 TYPE_MONITOR = 12,
55 TYPE_KBDLAYOUT = 13,
56 TYPE_KBDFILE = 14,
57 TYPE_WINEVENTHOOK = 15,
58 TYPE_TIMER = 16,
59 TYPE_INPUTCONTEXT = 17,
60 TYPE_HIDDATA = 18,
61 TYPE_DEVICEINFO = 19,
62 TYPE_TOUCHINPUTINFO = 20,
63 TYPE_GESTUREINFOOBJ = 21,
64 TYPE_CTYPES,
65 TYPE_GENERIC = 255
66 } HANDLE_TYPE, *PHANDLE_TYPE;
67
68 typedef enum _USERTHREADINFOCLASS
69 {
70 UserThreadShutdownInformation,
71 UserThreadFlags,
72 UserThreadTaskName,
73 UserThreadWOWInformation,
74 UserThreadHungStatus,
75 UserThreadInitiateShutdown,
76 UserThreadEndShutdown,
77 UserThreadUseActiveDesktop,
78 UserThreadUseDesktop,
79 UserThreadRestoreDesktop,
80 UserThreadCsrApiPort,
81 } USERTHREADINFOCLASS;
82
83 typedef struct _LARGE_UNICODE_STRING
84 {
85 ULONG Length;
86 ULONG MaximumLength:31;
87 ULONG bAnsi:1;
88 PWSTR Buffer;
89 } LARGE_UNICODE_STRING, *PLARGE_UNICODE_STRING;
90
91 typedef struct _LARGE_STRING
92 {
93 ULONG Length;
94 ULONG MaximumLength:31;
95 ULONG bAnsi:1;
96 PVOID Buffer;
97 } LARGE_STRING, *PLARGE_STRING;
98
99
100 /* Based on ANSI_STRING */
101 typedef struct _LARGE_ANSI_STRING
102 {
103 ULONG Length;
104 ULONG MaximumLength:31;
105 ULONG bAnsi:1;
106 PCHAR Buffer;
107 } LARGE_ANSI_STRING, *PLARGE_ANSI_STRING;
108
109 VOID
110 NTAPI
111 RtlInitLargeAnsiString(
112 IN OUT PLARGE_ANSI_STRING,
113 IN PCSZ,
114 IN INT);
115
116 VOID
117 NTAPI
118 RtlInitLargeUnicodeString(
119 IN OUT PLARGE_UNICODE_STRING,
120 IN PCWSTR,
121 IN INT);
122
123 BOOL
124 NTAPI
125 RtlLargeStringToUnicodeString(
126 PUNICODE_STRING,
127 PLARGE_STRING);
128
129 #define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1)
130
131 typedef struct _DESKTOPINFO
132 {
133 PVOID pvDesktopBase;
134 PVOID pvDesktopLimit;
135 struct _WND *spwnd;
136 DWORD fsHooks;
137 LIST_ENTRY aphkStart[NB_HOOKS];
138
139 HWND hTaskManWindow;
140 HWND hProgmanWindow;
141 HWND hShellWindow;
142 struct _WND *spwndShell;
143
144 struct _PROCESSINFO *ppiShellProcess;
145
146 union
147 {
148 UINT Dummy;
149 struct
150 {
151 UINT LastInputWasKbd:1;
152 };
153 };
154
155 WCHAR szDesktopName[1];
156 } DESKTOPINFO, *PDESKTOPINFO;
157
158 #define CTI_THREADSYSLOCK 0x0001
159 #define CTI_INSENDMESSAGE 0x0002
160
161 typedef struct _CLIENTTHREADINFO
162 {
163 DWORD CTI_flags;
164 WORD fsChangeBits;
165 WORD fsWakeBits;
166 WORD fsWakeBitsJournal;
167 WORD fsWakeMask;
168 ULONG tickLastMsgChecked;
169 DWORD dwcPumpHook;
170 } CLIENTTHREADINFO, *PCLIENTTHREADINFO;
171
172 typedef struct _HEAD
173 {
174 HANDLE h;
175 DWORD cLockObj;
176 } HEAD, *PHEAD;
177
178 typedef struct _THROBJHEAD
179 {
180 HEAD;
181 struct _THREADINFO *pti;
182 } THROBJHEAD, *PTHROBJHEAD;
183
184 typedef struct _THRDESKHEAD
185 {
186 THROBJHEAD;
187 struct _DESKTOP *rpdesk;
188 PVOID pSelf;
189 } THRDESKHEAD, *PTHRDESKHEAD;
190
191 typedef struct _PROCDESKHEAD
192 {
193 HEAD;
194 DWORD_PTR hTaskWow;
195 struct _DESKTOP *rpdesk;
196 PVOID pSelf;
197 } PROCDESKHEAD, *PPROCDESKHEAD;
198
199 typedef struct _PROCMARKHEAD
200 {
201 HEAD;
202 ULONG hTaskWow;
203 struct _PROCESSINFO *ppi;
204 } PROCMARKHEAD, *PPROCMARKHEAD;
205
206 #define UserHMGetHandle(obj) ((obj)->head.h)
207
208 /* Window Client Information structure */
209 struct _ETHREAD;
210
211 #define WEF_SETBYWNDPTI 0x0001
212
213 typedef struct tagHOOK
214 {
215 THRDESKHEAD head;
216 struct tagHOOK *phkNext; /* This is for user space. */
217 int HookId; /* Hook table index */
218 ULONG_PTR offPfn;
219 ULONG flags; /* Some internal flags */
220 INT ihmod;
221 struct _THREADINFO *ptiHooked;
222 struct _DESKTOP *rpdesk;
223 /* ReactOS */
224 LIST_ENTRY Chain; /* Hook chain entry */
225 HOOKPROC Proc; /* Hook function */
226 BOOLEAN Ansi; /* Is it an Ansi hook? */
227 UNICODE_STRING ModuleName; /* Module name for global hooks */
228 } HOOK, *PHOOK;
229
230 typedef struct tagCLIPBOARDDATA
231 {
232 HEAD head;
233 DWORD cbData;
234 BYTE Data[0];
235 } CLIPBOARDDATA, *PCLIPBOARDDATA;
236
237 /* THREADINFO Flags */
238 #define TIF_INCLEANUP 0x00000001
239 #define TIF_16BIT 0x00000002
240 #define TIF_SYSTEMTHREAD 0x00000004
241 #define TIF_CSRSSTHREAD 0x00000008
242 #define TIF_TRACKRECTVISIBLE 0x00000010
243 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
244 #define TIF_DONTATTACHQUEUE 0x00000040
245 #define TIF_DONTJOURNALATTACH 0x00000080
246 #define TIF_WOW64 0x00000100
247 #define TIF_INACTIVATEAPPMSG 0x00000200
248 #define TIF_SPINNING 0x00000400
249 #define TIF_PALETTEAWARE 0x00000800
250 #define TIF_SHAREDWOW 0x00001000
251 #define TIF_FIRSTIDLE 0x00002000
252 #define TIF_WAITFORINPUTIDLE 0x00004000
253 #define TIF_MOVESIZETRACKING 0x00008000
254 #define TIF_VDMAPP 0x00010000
255 #define TIF_DOSEMULATOR 0x00020000
256 #define TIF_GLOBALHOOKER 0x00040000
257 #define TIF_DELAYEDEVENT 0x00080000
258 #define TIF_MSGPOSCHANGED 0x00100000
259 #define TIF_SHUTDOWNCOMPLETE 0x00200000
260 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
261 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
262 #define TIF_GUITHREADINITIALIZED 0x02000000
263 #define TIF_DISABLEIME 0x04000000
264 #define TIF_INGETTEXTLENGTH 0x08000000
265 #define TIF_ANSILENGTH 0x10000000
266 #define TIF_DISABLEHOOKS 0x20000000
267
268 typedef struct _CALLBACKWND
269 {
270 HWND hWnd;
271 struct _WND *pWnd;
272 PVOID pActCtx;
273 } CALLBACKWND, *PCALLBACKWND;
274
275 #define CI_TRANSACTION 0x00000001
276 #define CI_QUEUEMSG 0x00000002
277 #define CI_WOW 0x00000004
278 #define CI_INITTHREAD 0x00000008
279 #define CI_CURTHPRHOOK 0x00000010
280 #define CI_CLASSESREGISTERED 0x00000020
281 #define CI_IMMACTIVATE 0x00000040
282
283 typedef struct _CLIENTINFO
284 {
285 ULONG_PTR CI_flags;
286 ULONG_PTR cSpins;
287 DWORD dwExpWinVer;
288 DWORD dwCompatFlags;
289 DWORD dwCompatFlags2;
290 DWORD dwTIFlags; /* ThreadInfo TIF_Xxx flags for User space. */
291 PDESKTOPINFO pDeskInfo;
292 ULONG_PTR ulClientDelta;
293 PHOOK phkCurrent;
294 ULONG fsHooks;
295 CALLBACKWND CallbackWnd;
296 DWORD dwHookCurrent;
297 INT cInDDEMLCallback;
298 PCLIENTTHREADINFO pClientThreadInfo;
299 ULONG_PTR dwHookData;
300 DWORD dwKeyCache;
301 BYTE afKeyState[8];
302 DWORD dwAsyncKeyCache;
303 BYTE afAsyncKeyState[8];
304 BYTE afAsyncKeyStateRecentDow[8];
305 HKL hKL;
306 USHORT CodePage;
307 UCHAR achDbcsCF[2];
308 MSG msgDbcsCB;
309 LPDWORD lpdwRegisteredClasses;
310 ULONG Win32ClientInfo3[26];
311 /* It's just a pointer reference not to be used w the structure in user space. */
312 struct _PROCESSINFO *ppi;
313 } CLIENTINFO, *PCLIENTINFO;
314
315 /* Make sure it fits into the TEB */
316 C_ASSERT(sizeof(CLIENTINFO) <= sizeof(((PTEB)0)->Win32ClientInfo));
317
318 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
319
320 typedef struct tagDDEPACK
321 {
322 UINT_PTR uiLo;
323 UINT_PTR uiHi;
324 } DDEPACK, *PDDEPACK;
325
326 #define HRGN_NULL ((HRGN)0) /* NULL empty region */
327 #define HRGN_WINDOW ((HRGN)1) /* region from window rcWindow */
328 #define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */
329
330 /* Menu Item fType. */
331 #define MFT_RTOL 0x6000
332
333 /* Menu Item fState. */
334 #define MFS_HBMMENUBMP 0x20000000
335
336 typedef struct tagITEM
337 {
338 UINT fType;
339 UINT fState;
340 UINT wID;
341 struct tagMENU *spSubMenu; /* Pop-up menu. */
342 HANDLE hbmpChecked;
343 HANDLE hbmpUnchecked;
344 USHORT *Xlpstr; /* Item text pointer. */
345 ULONG cch;
346 DWORD_PTR dwItemData;
347 ULONG xItem; /* Item position. left */
348 ULONG yItem; /* " top */
349 ULONG cxItem; /* Item Size Width */
350 ULONG cyItem; /* " Height */
351 ULONG dxTab; /* X position of text after Tab */
352 ULONG ulX; /* underline.. start position */
353 ULONG ulWidth; /* underline.. width */
354 HBITMAP hbmp; /* bitmap */
355 INT cxBmp; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
356 INT cyBmp; /* Height " */
357 /* ReactOS */
358 UNICODE_STRING lpstr;
359 } ITEM, *PITEM;
360
361 typedef struct tagMENULIST
362 {
363 struct tagMENULIST *pNext;
364 struct tagMENU *pMenu;
365 } MENULIST, *PMENULIST;
366
367 /* Menu fFlags, upper byte is MNS_X style flags. */
368 #define MNF_POPUP 0x0001
369 #define MNF_UNDERLINE 0x0004
370 #define MNF_INACTIVE 0x0010
371 #define MNF_RTOL 0x0020
372 #define MNF_DESKTOPMN 0x0040
373 #define MNF_SYSDESKMN 0x0080
374 #define MNF_SYSSUBMENU 0x0100
375 /* Hack */
376 #define MNF_SYSMENU 0x0200
377
378 /* (other FocusedItem values give the position of the focused item) */
379 #define NO_SELECTED_ITEM 0xffff
380
381 typedef struct tagMENU
382 {
383 PROCDESKHEAD head;
384 ULONG fFlags; /* [Style flags | Menu flags] */
385 INT iItem; /* nPos of selected item, if -1 not selected. AKA focused item */
386 UINT cAlloced; /* Number of allocated items. Inc's of 8 */
387 UINT cItems; /* Number of items in the menu */
388 ULONG cxMenu; /* Width of the whole menu */
389 ULONG cyMenu; /* Height of the whole menu */
390 ULONG cxTextAlign; /* Offset of text when items have both bitmaps and text */
391 struct _WND *spwndNotify; /* window receiving the messages for ownerdraw */
392 PITEM rgItems; /* Array of menu items */
393 struct tagMENULIST *pParentMenus; /* If this is SubMenu, list of parents. */
394 DWORD dwContextHelpId;
395 ULONG cyMax; /* max height of the whole menu, 0 is screen height */
396 DWORD_PTR dwMenuData; /* application defined value */
397 HBRUSH hbrBack; /* brush for menu background */
398 INT iTop; /* Current scroll position Top */
399 INT iMaxTop; /* Current scroll position Max Top */
400 DWORD dwArrowsOn:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
401 /* ReactOS */
402 LIST_ENTRY ListEntry;
403 HWND hWnd; /* Window containing the menu, use POPUPMENU */
404 BOOL TimeToHide;
405 } MENU, *PMENU;
406
407 typedef struct tagPOPUPMENU
408 {
409 ULONG fIsMenuBar:1;
410 ULONG fHasMenuBar:1;
411 ULONG fIsSysMenu:1;
412 ULONG fIsTrackPopup:1;
413 ULONG fDroppedLeft:1;
414 ULONG fHierarchyDropped:1;
415 ULONG fRightButton:1;
416 ULONG fToggle:1;
417 ULONG fSynchronous:1;
418 ULONG fFirstClick:1;
419 ULONG fDropNextPopup:1;
420 ULONG fNoNotify:1;
421 ULONG fAboutToHide:1;
422 ULONG fShowTimer:1;
423 ULONG fHideTimer:1;
424 ULONG fDestroyed:1;
425 ULONG fDelayedFree:1;
426 ULONG fFlushDelayedFree:1;
427 ULONG fFreed:1;
428 ULONG fInCancel:1;
429 ULONG fTrackMouseEvent:1;
430 ULONG fSendUninit:1;
431 ULONG fRtoL:1;
432 // ULONG fDesktopMenu:1;
433 ULONG iDropDir:5;
434 ULONG fUseMonitorRect:1;
435 struct _WND *spwndNotify;
436 struct _WND *spwndPopupMenu;
437 struct _WND *spwndNextPopup;
438 struct _WND *spwndPrevPopup;
439 PMENU spmenu;
440 PMENU spmenuAlternate;
441 struct _WND *spwndActivePopup;
442 struct tagPOPUPMENU *ppopupmenuRoot;
443 struct tagPOPUPMENU *ppmDelayedFree;
444 UINT posSelectedItem;
445 UINT posDropped;
446 } POPUPMENU, *PPOPUPMENU;
447
448 typedef struct _REGISTER_SYSCLASS
449 {
450 /* This is a reactos specific class used to initialize the
451 system window classes during user32 initialization */
452 PWSTR ClassName;
453 UINT Style;
454 WNDPROC ProcW;
455 UINT ExtraBytes;
456 HICON hCursor;
457 HBRUSH hBrush;
458 WORD fiId;
459 WORD iCls;
460 } REGISTER_SYSCLASS, *PREGISTER_SYSCLASS;
461
462 typedef struct _CLSMENUNAME
463 {
464 LPSTR pszClientAnsiMenuName;
465 LPWSTR pwszClientUnicodeMenuName;
466 PUNICODE_STRING pusMenuName;
467 } CLSMENUNAME, *PCLSMENUNAME;
468
469 typedef struct tagSBDATA
470 {
471 INT posMin;
472 INT posMax;
473 INT page;
474 INT pos;
475 } SBDATA, *PSBDATA;
476
477 typedef struct tagSBINFO
478 {
479 INT WSBflags;
480 SBDATA Horz;
481 SBDATA Vert;
482 } SBINFO, *PSBINFO;
483
484 typedef struct tagSBCALC
485 {
486 INT posMin;
487 INT posMax;
488 INT page;
489 INT pos;
490 INT pxTop;
491 INT pxBottom;
492 INT pxLeft;
493 INT pxRight;
494 INT cpxThumb;
495 INT pxUpArrow;
496 INT pxDownArrow;
497 INT pxStart;
498 INT pxThumbBottom;
499 INT pxThumbTop;
500 INT cpx;
501 INT pxMin;
502 } SBCALC, *PSBCALC;
503
504 typedef enum _GETCPD
505 {
506 UserGetCPDA2U = 0x01, /* " Unicode " */
507 UserGetCPDU2A = 0X02, /* " Ansi " */
508 UserGetCPDClass = 0X10,
509 UserGetCPDWindow = 0X20,
510 UserGetCPDDialog = 0X40,
511 UserGetCPDWndtoCls = 0X80
512 } GETCPD, *PGETCPD;
513
514 typedef struct _CALLPROCDATA
515 {
516 PROCDESKHEAD head;
517 struct _CALLPROCDATA *spcpdNext;
518 WNDPROC pfnClientPrevious;
519 GETCPD wType;
520 } CALLPROCDATA, *PCALLPROCDATA;
521
522 #define CSF_SERVERSIDEPROC 0x0001
523 #define CSF_ANSIPROC 0x0002
524 #define CSF_WOWDEFERDESTROY 0x0004
525 #define CSF_SYSTEMCLASS 0x0008
526 #define CSF_WOWCLASS 0x0010
527 #define CSF_WOWEXTRA 0x0020
528 #define CSF_CACHEDSMICON 0x0040
529 #define CSF_WIN40COMPAT 0x0080
530
531 typedef struct _CLS
532 {
533 struct _CLS *pclsNext;
534 RTL_ATOM atomClassName;
535 ATOM atomNVClassName;
536 DWORD fnid;
537 struct _DESKTOP *rpdeskParent;
538 PVOID pdce;
539 DWORD CSF_flags;
540 PSTR lpszClientAnsiMenuName; /* For client use */
541 PWSTR lpszClientUnicodeMenuName; /* " " " */
542 PCALLPROCDATA spcpdFirst;
543 struct _CLS *pclsBase;
544 struct _CLS *pclsClone;
545 ULONG cWndReferenceCount;
546 UINT style;
547 WNDPROC lpfnWndProc;
548 INT cbclsExtra;
549 INT cbwndExtra;
550 HINSTANCE hModule;
551 struct _CURICON_OBJECT *spicn;
552 struct _CURICON_OBJECT *spcur;
553 HBRUSH hbrBackground;
554 PWSTR lpszMenuName; /* kernel use */
555 PSTR lpszAnsiClassName; /* " */
556 struct _CURICON_OBJECT *spicnSm;
557 ////
558 UINT Unicode:1; // !CSF_ANSIPROC
559 UINT Global:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
560 UINT MenuNameIsString:1;
561 UINT NotUsed:29;
562 } CLS, *PCLS;
563
564 typedef struct _SBINFOEX
565 {
566 SCROLLBARINFO ScrollBarInfo;
567 SCROLLINFO ScrollInfo;
568 } SBINFOEX, *PSBINFOEX;
569
570 /* State Flags !Not Implemented! */
571 #define WNDS_HASMENU 0X00000001
572 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
573 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
574 #define WNDS_HASCAPTION 0X00000008
575 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
576 #define WNDS_MSGBOX 0X00000020
577 #define WNDS_ACTIVEFRAME 0X00000040
578 #define WNDS_HASSPB 0X00000080
579 #define WNDS_NONCPAINT 0X00000100
580 #define WNDS_SENDERASEBACKGROUND 0X00000200
581 #define WNDS_ERASEBACKGROUND 0X00000400
582 #define WNDS_SENDNCPAINT 0X00000800
583 #define WNDS_INTERNALPAINT 0X00001000
584 #define WNDS_UPDATEDIRTY 0X00002000
585 #define WNDS_HIDDENPOPUP 0X00004000
586 #define WNDS_FORCEMENUDRAW 0X00008000
587 #define WNDS_DIALOGWINDOW 0X00010000
588 #define WNDS_HASCREATESTRUCTNAME 0X00020000
589 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */
590 #define WNDS_ANSIWINDOWPROC 0x00080000
591 #define WNDS_BEINGACTIVATED 0x00100000
592 #define WNDS_HASPALETTE 0x00200000
593 #define WNDS_PAINTNOTPROCESSED 0x00400000
594 #define WNDS_SYNCPAINTPENDING 0x00800000
595 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000
596 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000
597 #define WNDS_TOGGLETOPMOST 0x04000000
598 #define WNDS_REDRAWIFHUNG 0x08000000
599 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
600 #define WNDS_ANSICREATOR 0x20000000
601 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
602 #define WNDS_DESTROYED 0x80000000
603
604 #define WNDSACTIVEFRAME 0x00000006
605
606 /* State2 Flags !Not Implemented! */
607 #define WNDS2_WMPAINTSENT 0X00000001
608 #define WNDS2_ENDPAINTINVALIDATE 0X00000002
609 #define WNDS2_STARTPAINT 0X00000004
610 #define WNDS2_OLDUI 0X00000008
611 #define WNDS2_HASCLIENTEDGE 0X00000010
612 #define WNDS2_BOTTOMMOST 0X00000020
613 #define WNDS2_FULLSCREEN 0X00000040
614 #define WNDS2_INDESTROY 0X00000080
615 #define WNDS2_WIN31COMPAT 0X00000100
616 #define WNDS2_WIN40COMPAT 0X00000200
617 #define WNDS2_WIN50COMPAT 0X00000400
618 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800
619 #define WNDS2_CLOSEBUTTONDOWN 0X00001000
620 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000
621 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000
622 #define WNDS2_HELPBUTTONDOWN 0X00008000
623 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000
624 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000
625 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000
626 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000
627 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000
628 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000
629 #define WNDS2_FORCENCPAINT 0X00400000
630 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000
631 #define WNDS2_FULLSCREENMODE 0X01000000
632 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000
633 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000
634 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000
635 #define WNDS2_SHELLHOOKREGISTERED 0X40000000
636 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000
637
638 /* ExStyles2 */
639 #define WS_EX2_CLIPBOARDLISTENER 0X00000001
640 #define WS_EX2_LAYEREDINVALIDATE 0X00000002
641 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004
642 #define WS_EX2_LINKED 0X00000008
643 #define WS_EX2_LAYEREDFORDWM 0X00000010
644 #define WS_EX2_LAYEREDLIMBO 0X00000020
645 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040
646 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080
647 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100
648 #define WS_EX2_HASOVERLAY 0X00000200
649 #define WS_EX2_CONSOLEWINDOW 0X00000400
650 #define WS_EX2_CHILDNOACTIVATE 0X00000800
651
652 #define WPF_MININIT 0x0008
653 #define WPF_MAXINIT 0x0010
654
655 typedef struct _WND
656 {
657 THRDESKHEAD head;
658 DWORD state;
659 DWORD state2;
660 /* Extended style. */
661 DWORD ExStyle;
662 /* Style. */
663 DWORD style;
664 /* Handle of the module that created the window. */
665 HINSTANCE hModule;
666 DWORD fnid;
667 struct _WND *spwndNext;
668 struct _WND *spwndPrev;
669 struct _WND *spwndParent;
670 struct _WND *spwndChild;
671 struct _WND *spwndOwner;
672 RECT rcWindow;
673 RECT rcClient;
674 WNDPROC lpfnWndProc;
675 /* Pointer to the window class. */
676 PCLS pcls;
677 HRGN hrgnUpdate;
678 /* Property list head.*/
679 LIST_ENTRY PropListHead;
680 ULONG PropListItems;
681 /* Scrollbar info */
682 PSBINFO pSBInfo;
683 /* system menu handle. */
684 HMENU SystemMenu;
685 //PMENU spmenuSys;
686 /* Window menu handle or window id */
687 UINT IDMenu; // Use spmenu
688 //PMENU spmenu;
689 HRGN hrgnClip;
690 HRGN hrgnNewFrame;
691 /* Window name. */
692 LARGE_UNICODE_STRING strName;
693 /* Size of the extra data associated with the window. */
694 ULONG cbwndExtra;
695 struct _WND *spwndLastActive;
696 HIMC hImc; // Input context associated with this window.
697 LONG dwUserData;
698 PVOID pActCtx;
699 //PD3DMATRIX pTransForm;
700 struct _WND *spwndClipboardListener;
701 DWORD ExStyle2;
702
703 /* ReactOS */
704 struct
705 {
706 RECT NormalRect;
707 POINT IconPos;
708 POINT MaxPos;
709 UINT flags; /* WPF_ flags. */
710 } InternalPos;
711
712 UINT Unicode:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */
713 UINT InternalPosInitialized:1;
714 UINT HideFocus:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */
715 UINT HideAccel:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
716
717 /* Scrollbar info */
718 PSBINFOEX pSBInfoex; // convert to PSBINFO
719 /* Entry in the list of thread windows. */
720 LIST_ENTRY ThreadListEntry;
721 } WND, *PWND;
722
723 #define PWND_BOTTOM ((PWND)1)
724
725 typedef struct _SBWND
726 {
727 WND wnd;
728 BOOL fVert;
729 UINT wDisableFlags;
730 SBCALC SBCalc;
731 } SBWND, *PSBWND;
732
733 typedef struct _MENUWND
734 {
735 WND wnd;
736 PPOPUPMENU ppopupmenu;
737 } MENUWND, *PMENUWND;
738
739 typedef struct _PFNCLIENT
740 {
741 WNDPROC pfnScrollBarWndProc;
742 WNDPROC pfnTitleWndProc;
743 WNDPROC pfnMenuWndProc;
744 WNDPROC pfnDesktopWndProc;
745 WNDPROC pfnDefWindowProc;
746 WNDPROC pfnMessageWindowProc;
747 WNDPROC pfnSwitchWindowProc;
748 WNDPROC pfnButtonWndProc;
749 WNDPROC pfnComboBoxWndProc;
750 WNDPROC pfnComboListBoxProc;
751 WNDPROC pfnDialogWndProc;
752 WNDPROC pfnEditWndProc;
753 WNDPROC pfnListBoxWndProc;
754 WNDPROC pfnMDIClientWndProc;
755 WNDPROC pfnStaticWndProc;
756 WNDPROC pfnImeWndProc;
757 WNDPROC pfnGhostWndProc;
758 WNDPROC pfnHkINLPCWPSTRUCT;
759 WNDPROC pfnHkINLPCWPRETSTRUCT;
760 WNDPROC pfnDispatchHook;
761 WNDPROC pfnDispatchDefWindowProc;
762 WNDPROC pfnDispatchMessage;
763 WNDPROC pfnMDIActivateDlgProc;
764 } PFNCLIENT, *PPFNCLIENT;
765
766 /*
767 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode );
768 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE.
769 */
770
771 typedef LRESULT
772 (CALLBACK *WNDPROC_EX)(
773 HWND,
774 UINT,
775 WPARAM,
776 LPARAM,
777 BOOL);
778
779 typedef struct _PFNCLIENTWORKER
780 {
781 WNDPROC_EX pfnButtonWndProc;
782 WNDPROC_EX pfnComboBoxWndProc;
783 WNDPROC_EX pfnComboListBoxProc;
784 WNDPROC_EX pfnDialogWndProc;
785 WNDPROC_EX pfnEditWndProc;
786 WNDPROC_EX pfnListBoxWndProc;
787 WNDPROC_EX pfnMDIClientWndProc;
788 WNDPROC_EX pfnStaticWndProc;
789 WNDPROC_EX pfnImeWndProc;
790 WNDPROC_EX pfnGhostWndProc;
791 WNDPROC_EX pfnCtfHookProc;
792 } PFNCLIENTWORKER, *PPFNCLIENTWORKER;
793
794 typedef LONG_PTR
795 (NTAPI *PFN_FNID)(
796 PWND,
797 UINT,
798 WPARAM,
799 LPARAM,
800 ULONG_PTR);
801
802 /* FNID's for NtUserSetWindowFNID, NtUserMessageCall */
803 #define FNID_FIRST 0x029A
804 #define FNID_SCROLLBAR 0x029A
805 #define FNID_ICONTITLE 0x029B
806 #define FNID_MENU 0x029C
807 #define FNID_DESKTOP 0x029D
808 #define FNID_DEFWINDOWPROC 0x029E
809 #define FNID_MESSAGEWND 0x029F
810 #define FNID_SWITCH 0x02A0
811 #define FNID_BUTTON 0x02A1
812 #define FNID_COMBOBOX 0x02A2
813 #define FNID_COMBOLBOX 0x02A3
814 #define FNID_DIALOG 0x02A4
815 #define FNID_EDIT 0x02A5
816 #define FNID_LISTBOX 0x02A6
817 #define FNID_MDICLIENT 0x02A7
818 #define FNID_STATIC 0x02A8
819 #define FNID_IME 0x02A9
820 #define FNID_GHOST 0x02AA
821 #define FNID_CALLWNDPROC 0x02AB
822 #define FNID_CALLWNDPROCRET 0x02AC
823 #define FNID_HKINLPCWPEXSTRUCT 0x02AD
824 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE
825 #define FNID_MB_DLGPROC 0x02AF
826 #define FNID_MDIACTIVATEDLGPROC 0x02B0
827 #define FNID_SENDMESSAGE 0x02B1
828 #define FNID_SENDMESSAGEFF 0x02B2
829 /* Kernel has option to use TimeOut or normal msg send, based on type of msg. */
830 #define FNID_SENDMESSAGEWTOOPTION 0x02B3
831 #define FNID_SENDMESSAGECALLPROC 0x02B4
832 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5
833 #define FNID_TOOLTIPS 0x02B6
834 #define FNID_SENDNOTIFYMESSAGE 0x02B7
835 #define FNID_SENDMESSAGECALLBACK 0x02B8
836 #define FNID_LAST 0x02B9
837
838 #define FNID_NUM FNID_LAST - FNID_FIRST + 1
839 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1
840
841 #define FNID_DDEML 0x2000 /* Registers DDEML */
842 #define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */
843 /* Seen during WM_CREATE on error exit too. */
844 #define FNID_FREED 0x8000 /* Window being Freed... */
845
846 #define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
847
848 #define GETPFNCLIENTA(fnid) \
849 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))
850 #define GETPFNCLIENTW(fnid) \
851 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
852
853 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
854
855 /* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */
856 #define ICLS_BUTTON 0
857 #define ICLS_EDIT 1
858 #define ICLS_STATIC 2
859 #define ICLS_LISTBOX 3
860 #define ICLS_SCROLLBAR 4
861 #define ICLS_COMBOBOX 5
862 #define ICLS_MDICLIENT 6
863 #define ICLS_COMBOLBOX 7
864 #define ICLS_DDEMLEVENT 8
865 #define ICLS_DDEMLMOTHER 9
866 #define ICLS_DDEML16BIT 10
867 #define ICLS_DDEMLCLIENTA 11
868 #define ICLS_DDEMLCLIENTW 12
869 #define ICLS_DDEMLSERVERA 13
870 #define ICLS_DDEMLSERVERW 14
871 #define ICLS_IME 15
872 #define ICLS_GHOST 16
873 #define ICLS_DESKTOP 17
874 #define ICLS_DIALOG 18
875 #define ICLS_MENU 19
876 #define ICLS_SWITCH 20
877 #define ICLS_ICONTITLE 21
878 #define ICLS_TOOLTIPS 22
879 #if (_WIN32_WINNT <= 0x0501)
880 #define ICLS_UNKNOWN 22
881 #define ICLS_NOTUSED 23
882 #else
883 #define ICLS_SYSSHADOW 23
884 #define ICLS_HWNDMESSAGE 24
885 #define ICLS_NOTUSED 25
886 #endif
887 #define ICLS_END 31
888
889 #define COLOR_LAST COLOR_MENUBAR
890 #define MAX_MB_STRINGS 11
891
892 #define SRVINFO_DBCSENABLED 0x0002
893 #define SRVINFO_IMM32 0x0004
894 #define SRVINFO_APIHOOK 0x0010
895 #define SRVINFO_METRICS 0x0020
896 #define SRVINFO_KBDPREF 0x0080
897
898 #define NUM_SYSCOLORS 31
899
900 typedef struct tagOEMBITMAPINFO
901 {
902 INT x;
903 INT y;
904 INT cx;
905 INT cy;
906 } OEMBITMAPINFO, *POEMBITMAPINFO;
907
908 typedef enum _OBI_TYPES
909 {
910 OBI_CLOSE = 0,
911 OBI_UPARROW = 46,
912 OBI_UPARROWI = 49,
913 OBI_DNARROW = 50,
914 OBI_DNARROWI = 53,
915 OBI_MNARROW = 62,
916 OBI_CTYPES = 93
917 } OBI_TYPES;
918
919 typedef struct tagMBSTRING
920 {
921 WCHAR szName[16];
922 UINT uID;
923 UINT uStr;
924 } MBSTRING, *PMBSTRING;
925
926 typedef struct tagDPISERVERINFO
927 {
928 INT gclBorder; /* 000 */
929 HFONT hCaptionFont; /* 004 */
930 HFONT hMsgFont; /* 008 */
931 INT cxMsgFontChar; /* 00C */
932 INT cyMsgFontChar; /* 010 */
933 UINT wMaxBtnSize; /* 014 */
934 } DPISERVERINFO, *PDPISERVERINFO;
935
936 /* PUSIFlags: */
937 #define PUSIF_PALETTEDISPLAY 0x01
938 #define PUSIF_SNAPTO 0x02
939 #define PUSIF_COMBOBOXANIMATION 0x04
940 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08
941 #define PUSIF_KEYBOARDCUES 0x20
942
943 typedef struct _PERUSERSERVERINFO
944 {
945 INT aiSysMet[SM_CMETRICS];
946 ULONG argbSystemUnmatched[NUM_SYSCOLORS];
947 COLORREF argbSystem[NUM_SYSCOLORS];
948 HBRUSH ahbrSystem[NUM_SYSCOLORS];
949 HBRUSH hbrGray;
950 POINT ptCursor;
951 POINT ptCursorReal;
952 DWORD dwLastRITEventTickCount;
953 INT nEvents;
954 UINT dtScroll;
955 UINT dtLBSearch;
956 UINT dtCaretBlink;
957 UINT ucWheelScrollLines;
958 UINT ucWheelScrollChars;
959 INT wMaxLeftOverlapChars;
960 INT wMaxRightOverlapChars;
961 INT cxSysFontChar;
962 INT cySysFontChar;
963 TEXTMETRICW tmSysFont;
964 DPISERVERINFO dpiSystem;
965 HICON hIconSmWindows;
966 HICON hIconWindows;
967 DWORD dwKeyCache;
968 DWORD dwAsyncKeyCache;
969 ULONG cCaptures;
970 OEMBITMAPINFO oembmi[OBI_CTYPES];
971 RECT rcScreenReal;
972 USHORT BitCount;
973 USHORT dmLogPixels;
974 BYTE Planes;
975 BYTE BitsPixel;
976 ULONG PUSIFlags;
977 UINT uCaretWidth;
978 USHORT UILangID;
979 DWORD dwLastSystemRITEventTickCountUpdate;
980 ULONG adwDBGTAGFlags[35];
981 DWORD dwTagCount;
982 DWORD dwRIPFlags;
983 } PERUSERSERVERINFO, *PPERUSERSERVERINFO;
984
985 typedef struct tagSERVERINFO
986 {
987 DWORD dwSRVIFlags;
988 ULONG_PTR cHandleEntries;
989 PFN_FNID mpFnidPfn[FNID_NUM];
990 WNDPROC aStoCidPfn[FNID_NUMSERVERPROC];
991 USHORT mpFnid_serverCBWndProc[FNID_NUM];
992 PFNCLIENT apfnClientA;
993 PFNCLIENT apfnClientW;
994 PFNCLIENTWORKER apfnClientWorker;
995 ULONG cbHandleTable;
996 ATOM atomSysClass[ICLS_NOTUSED+1];
997 DWORD dwDefaultHeapBase;
998 DWORD dwDefaultHeapSize;
999 UINT uiShellMsg;
1000 MBSTRING MBStrings[MAX_MB_STRINGS];
1001 ATOM atomIconSmProp;
1002 ATOM atomIconProp;
1003 ATOM atomContextHelpIdProp;
1004 ATOM atomFrostedWindowProp;
1005 CHAR acOemToAnsi[256];
1006 CHAR acAnsiToOem[256];
1007 DWORD dwInstalledEventHooks;
1008 PERUSERSERVERINFO;
1009 } SERVERINFO, *PSERVERINFO;
1010
1011 #ifdef _M_IX86
1012 C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
1013 #endif
1014
1015
1016 /* Server event activity bits. */
1017 #define SRV_EVENT_MENU 0x0001
1018 #define SRV_EVENT_END_APPLICATION 0x0002
1019 #define SRV_EVENT_RUNNING 0x0004
1020 #define SRV_EVENT_NAMECHANGE 0x0008
1021 #define SRV_EVENT_VALUECHANGE 0x0010
1022 #define SRV_EVENT_STATECHANGE 0x0020
1023 #define SRV_EVENT_LOCATIONCHANGE 0x0040
1024 #define SRV_EVENT_CREATE 0x8000
1025
1026 typedef struct _PROPLISTITEM
1027 {
1028 ATOM Atom;
1029 HANDLE Data;
1030 } PROPLISTITEM, *PPROPLISTITEM;
1031
1032 #define PROPERTY_FLAG_SYSTEM 1
1033
1034 typedef struct _PROPERTY
1035 {
1036 LIST_ENTRY PropListEntry;
1037 HANDLE Data;
1038 ATOM Atom;
1039 WORD fs;
1040 } PROPERTY, *PPROPERTY;
1041
1042 typedef struct _BROADCASTPARM
1043 {
1044 DWORD flags;
1045 DWORD recipients;
1046 HDESK hDesk;
1047 HWND hWnd;
1048 LUID luid;
1049 } BROADCASTPARM, *PBROADCASTPARM;
1050
1051 struct _THREADINFO *GetW32ThreadInfo(VOID);
1052 struct _PROCESSINFO *GetW32ProcessInfo(VOID);
1053
1054 typedef struct _WNDMSG
1055 {
1056 DWORD maxMsgs;
1057 PINT abMsgs;
1058 } WNDMSG, *PWNDMSG;
1059
1060 typedef struct _SHAREDINFO
1061 {
1062 PSERVERINFO psi; /* global Server Info */
1063 PVOID aheList; /* Handle Entry List */
1064 PVOID pDispInfo; /* global PDISPLAYINFO pointer */
1065 ULONG_PTR ulSharedDelta; /* Heap delta */
1066 WNDMSG awmControl[FNID_LAST - FNID_FIRST];
1067 WNDMSG DefWindowMsgs;
1068 WNDMSG DefWindowSpecMsgs;
1069 } SHAREDINFO, *PSHAREDINFO;
1070
1071 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1072 typedef struct _USERCONNECT
1073 {
1074 ULONG ulVersion;
1075 ULONG ulCurrentVersion;
1076 DWORD dwDispatchCount;
1077 SHAREDINFO siClient;
1078 } USERCONNECT, *PUSERCONNECT;
1079
1080 /* WinNT 5.0 compatible user32 / win32k */
1081 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1082
1083 #if defined(_M_IX86)
1084 C_ASSERT(sizeof(USERCONNECT) == 0x124);
1085 #endif
1086
1087 typedef struct tagGETCLIPBDATA
1088 {
1089 UINT uFmtRet;
1090 BOOL fGlobalHandle;
1091 union
1092 {
1093 HANDLE hLocale;
1094 HANDLE hPalette;
1095 };
1096 } GETCLIPBDATA, *PGETCLIPBDATA;
1097
1098 typedef struct tagSETCLIPBDATA
1099 {
1100 BOOL fGlobalHandle;
1101 BOOL fIncSerialNumber;
1102 } SETCLIPBDATA, *PSETCLIPBDATA;
1103
1104 /* Used with NtUserSetCursorIconData, last parameter. */
1105 typedef struct tagCURSORDATA
1106 {
1107 LPWSTR lpName;
1108 LPWSTR lpModName;
1109 USHORT rt;
1110 USHORT dummy;
1111 ULONG CURSORF_flags;
1112 SHORT xHotspot;
1113 SHORT yHotspot;
1114 HBITMAP hbmMask;
1115 HBITMAP hbmColor;
1116 HBITMAP hbmAlpha;
1117 RECT rcBounds;
1118 HBITMAP hbmUserAlpha; /* Could be in W7U, not in W2k */
1119 ULONG bpp;
1120 ULONG cx;
1121 ULONG cy;
1122 UINT cpcur;
1123 UINT cicur;
1124 struct tagCURSORDATA *aspcur;
1125 DWORD *aicur;
1126 INT *ajifRate;
1127 UINT iicur;
1128 } CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
1129
1130 /* CURSORF_flags: */
1131 #define CURSORF_FROMRESOURCE 0x0001
1132 #define CURSORF_GLOBAL 0x0002
1133 #define CURSORF_LRSHARED 0x0004
1134 #define CURSORF_ACON 0x0008
1135 #define CURSORF_WOWCLEANUP 0x0010
1136 #define CURSORF_ACONFRAME 0x0040
1137 #define CURSORF_SECRET 0x0080
1138 #define CURSORF_LINKED 0x0100
1139 #define CURSORF_CURRENT 0x0200
1140
1141 typedef struct tagIMEINFOEX
1142 {
1143 HKL hkl;
1144 IMEINFO ImeInfo;
1145 WCHAR wszUIClass[16];
1146 ULONG fdwInitConvMode;
1147 INT fInitOpen;
1148 INT fLoadFlag;
1149 DWORD dwProdVersion;
1150 DWORD dwImeWinVersion;
1151 WCHAR wszImeDescription[50];
1152 WCHAR wszImeFile[80];
1153 struct
1154 {
1155 INT fSysWow64Only:1;
1156 INT fCUASLayer:1;
1157 };
1158 } IMEINFOEX, *PIMEINFOEX;
1159
1160 typedef struct tagIMEUI
1161 {
1162 PWND spwnd;
1163 HIMC hIMC;
1164 HWND hwndIMC;
1165 HKL hKL;
1166 HWND hwndUI;
1167 INT nCntInIMEProc;
1168 struct {
1169 UINT fShowStatus:1;
1170 UINT fActivate:1;
1171 UINT fDestroy:1;
1172 UINT fDefault:1;
1173 UINT fChildThreadDef:1;
1174 UINT fCtrlShowStatus:1;
1175 UINT fFreeActiveEvent:1;
1176 };
1177 } IMEUI, *PIMEUI;
1178
1179 /* Window Extra data container. */
1180 typedef struct _IMEWND
1181 {
1182 WND;
1183 PIMEUI pimeui;
1184 } IMEWND, *PIMEWND;
1185
1186 DWORD
1187 NTAPI
1188 NtUserAssociateInputContext(
1189 DWORD dwUnknown1,
1190 DWORD dwUnknown2,
1191 DWORD dwUnknown3);
1192
1193 DWORD
1194 NTAPI
1195 NtUserBuildHimcList(
1196 DWORD dwUnknown1,
1197 DWORD dwUnknown2,
1198 DWORD dwUnknown3,
1199 DWORD dwUnknown4);
1200
1201 DWORD
1202 NTAPI
1203 NtUserCalcMenuBar(
1204 DWORD dwUnknown1,
1205 DWORD dwUnknown2,
1206 DWORD dwUnknown3,
1207 DWORD dwUnknown4,
1208 DWORD dwUnknown5);
1209
1210 DWORD
1211 NTAPI
1212 NtUserCheckMenuItem(
1213 HMENU hmenu,
1214 UINT uIDCheckItem,
1215 UINT uCheck);
1216
1217 DWORD
1218 NTAPI
1219 NtUserCtxDisplayIOCtl(
1220 DWORD dwUnknown1,
1221 DWORD dwUnknown2,
1222 DWORD dwUnknown3);
1223
1224 DWORD
1225 APIENTRY
1226 NtUserDbgWin32HeapFail(
1227 DWORD Unknown0,
1228 DWORD Unknown1);
1229
1230 DWORD
1231 APIENTRY
1232 NtUserDbgWin32HeapStat(
1233 DWORD Unknown0,
1234 DWORD Unknown1);
1235
1236 BOOL
1237 NTAPI
1238 NtUserDeleteMenu(
1239 HMENU hMenu,
1240 UINT uPosition,
1241 UINT uFlags);
1242
1243 BOOL
1244 NTAPI
1245 NtUserDestroyMenu(
1246 HMENU hMenu);
1247
1248 DWORD
1249 NTAPI
1250 NtUserDrawMenuBarTemp(
1251 HWND hWnd,
1252 HDC hDC,
1253 PRECT hRect,
1254 HMENU hMenu,
1255 HFONT hFont);
1256
1257 UINT
1258 NTAPI
1259 NtUserEnableMenuItem(
1260 HMENU hMenu,
1261 UINT uIDEnableItem,
1262 UINT uEnable);
1263
1264 BOOL
1265 NTAPI
1266 NtUserEndMenu(VOID);
1267
1268 BOOL
1269 NTAPI
1270 NtUserGetMenuBarInfo(
1271 HWND hwnd,
1272 LONG idObject,
1273 LONG idItem,
1274 PMENUBARINFO pmbi);
1275
1276 UINT
1277 NTAPI
1278 NtUserGetMenuIndex(
1279 HMENU hMenu,
1280 HMENU hSubMenu);
1281
1282 BOOL
1283 NTAPI
1284 NtUserGetMenuItemRect(
1285 HWND hWnd,
1286 HMENU hMenu,
1287 UINT uItem,
1288 LPRECT lprcItem);
1289
1290 HMENU
1291 NTAPI
1292 NtUserGetSystemMenu(
1293 HWND hWnd,
1294 BOOL bRevert);
1295
1296 BOOL
1297 NTAPI
1298 NtUserHiliteMenuItem(
1299 HWND hWnd,
1300 HMENU hMenu,
1301 UINT uItemHilite,
1302 UINT uHilite);
1303
1304 int
1305 NTAPI
1306 NtUserMenuItemFromPoint(
1307 HWND hWnd,
1308 HMENU hMenu,
1309 DWORD X,
1310 DWORD Y);
1311
1312 BOOL
1313 NTAPI
1314 NtUserRemoveMenu(
1315 HMENU hMenu,
1316 UINT uPosition,
1317 UINT uFlags);
1318
1319 BOOL
1320 NTAPI
1321 NtUserSetMenu(
1322 HWND hWnd,
1323 HMENU hMenu,
1324 BOOL bRepaint);
1325
1326 BOOL
1327 NTAPI
1328 NtUserSetMenuContextHelpId(
1329 HMENU hmenu,
1330 DWORD dwContextHelpId);
1331
1332 BOOL
1333 NTAPI
1334 NtUserSetMenuDefaultItem(
1335 HMENU hMenu,
1336 UINT uItem,
1337 UINT fByPos);
1338
1339 BOOL
1340 NTAPI
1341 NtUserSetMenuFlagRtoL(
1342 HMENU hMenu);
1343
1344 BOOL
1345 NTAPI
1346 NtUserSetSystemMenu(
1347 HWND hWnd,
1348 HMENU hMenu);
1349
1350 BOOL
1351 NTAPI
1352 NtUserThunkedMenuInfo(
1353 HMENU hMenu,
1354 LPCMENUINFO lpcmi);
1355
1356 BOOL
1357 NTAPI
1358 NtUserThunkedMenuItemInfo(
1359 HMENU hMenu,
1360 UINT uItem,
1361 BOOL fByPosition,
1362 BOOL bInsert,
1363 LPMENUITEMINFOW lpmii,
1364 PUNICODE_STRING lpszCaption);
1365
1366 BOOL
1367 NTAPI
1368 NtUserTrackPopupMenuEx(
1369 HMENU hmenu,
1370 UINT fuFlags,
1371 int x,
1372 int y,
1373 HWND hwnd,
1374 LPTPMPARAMS lptpm);
1375
1376 HKL
1377 NTAPI
1378 NtUserActivateKeyboardLayout(
1379 HKL hKl,
1380 ULONG Flags);
1381
1382 DWORD
1383 NTAPI
1384 NtUserAlterWindowStyle(
1385 HWND hWnd,
1386 DWORD Index,
1387 LONG NewValue);
1388
1389 BOOL
1390 NTAPI
1391 NtUserAttachThreadInput(
1392 IN DWORD idAttach,
1393 IN DWORD idAttachTo,
1394 IN BOOL fAttach);
1395
1396 HDC NTAPI
1397 NtUserBeginPaint(
1398 HWND hWnd,
1399 PAINTSTRUCT *lPs);
1400
1401 BOOL
1402 NTAPI
1403 NtUserBitBltSysBmp(
1404 HDC hdc,
1405 INT nXDest,
1406 INT nYDest,
1407 INT nWidth,
1408 INT nHeight,
1409 INT nXSrc,
1410 INT nYSrc,
1411 DWORD dwRop);
1412
1413 BOOL
1414 NTAPI
1415 NtUserBlockInput(
1416 BOOL BlockIt);
1417
1418 NTSTATUS
1419 NTAPI
1420 NtUserBuildHwndList(
1421 HDESK hDesktop,
1422 HWND hwndParent,
1423 BOOLEAN bChildren,
1424 ULONG dwThreadId,
1425 ULONG lParam,
1426 HWND *pWnd,
1427 ULONG *pBufSize);
1428
1429 NTSTATUS
1430 NTAPI
1431 NtUserBuildNameList(
1432 HWINSTA hWinSta,
1433 ULONG dwSize,
1434 PVOID lpBuffer,
1435 PULONG pRequiredSize);
1436
1437 NTSTATUS
1438 NTAPI
1439 NtUserBuildPropList(
1440 HWND hWnd,
1441 LPVOID Buffer,
1442 DWORD BufferSize,
1443 DWORD *Count);
1444
1445 /* apfnSimpleCall indices from Windows XP SP 2 */
1446 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1447 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1448
1449 enum SimpleCallRoutines
1450 {
1451 NOPARAM_ROUTINE_CREATEMENU,
1452 NOPARAM_ROUTINE_CREATEMENUPOPUP,
1453 #if (WIN32K_VERSION >= NTDDI_VISTA)
1454 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1455 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1456 NOPARAM_ROUTINE_CREATESYSTEMTHREADS,
1457 NOPARAM_ROUTINE_DESTROY_CARET,
1458 #endif
1459 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,
1460 #if (WIN32K_VERSION < NTDDI_VISTA)
1461 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1462 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1463 NOPARAM_ROUTINE_DESTROY_CARET,
1464 #endif
1465 NOPARAM_ROUTINE_GETDEVICECHANGEINFO,
1466 NOPARAM_ROUTINE_GETIMESHOWSTATUS,
1467 NOPARAM_ROUTINE_GETINPUTDESKTOP,
1468 NOPARAM_ROUTINE_GETMSESSAGEPOS,
1469 #if (WIN32K_VERSION >= NTDDI_VISTA)
1470 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1471 #else
1472 NOPARAM_ROUTINE_GETREMOTEPROCESSID,
1473 #endif
1474 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE,
1475 NOPARAM_ROUTINE_LOADCURSANDICOS,
1476 #if (WIN32K_VERSION >= NTDDI_VISTA)
1477 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1478 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */
1479 #endif
1480 NOPARAM_ROUTINE_RELEASECAPTURE,
1481 NOPARAM_ROUTINE_RESETDBLCLICK,
1482 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS,
1483 NOPARAM_ROUTINE_REMOTECONSHDWSTOP,
1484 NOPARAM_ROUTINE_REMOTEDISCONNECT,
1485 NOPARAM_ROUTINE_REMOTELOGOFF,
1486 NOPARAM_ROUTINE_REMOTENTSECURITY,
1487 NOPARAM_ROUTINE_REMOTESHDWSETUP,
1488 NOPARAM_ROUTINE_REMOTESHDWSTOP,
1489 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE,
1490 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE,
1491 NOPARAM_ROUTINE_REMOTECONNECTSTATE,
1492 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING,
1493 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,
1494 #if (WIN32K_VERSION >= NTDDI_VISTA)
1495 NOPARAM_ROUTINE_WAKERITFORSHTDWN,
1496 #endif
1497 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP,
1498 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,
1499 #if (WIN32K_VERSION < NTDDI_VISTA)
1500 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1501 #endif
1502 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,
1503 #if (WIN32K_VERSION >= NTDDI_VISTA)
1504 ONEPARAM_ROUTINE_GETSENDMSGRECVR,
1505 #endif
1506 ONEPARAM_ROUTINE_WINDOWFROMDC,
1507 ONEPARAM_ROUTINE_ALLOWSETFOREGND,
1508 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,
1509 #if (WIN32K_VERSION < NTDDI_VISTA)
1510 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
1511 #endif
1512 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE,
1513 ONEPARAM_ROUTINE_DIRECTEDYIELD,
1514 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,
1515 #if (WIN32K_VERSION < NTDDI_VISTA)
1516 ONEPARAM_ROUTINE_GETCURSORPOS,
1517 #endif
1518 ONEPARAM_ROUTINE_GETINPUTEVENT,
1519 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT,
1520 ONEPARAM_ROUTINE_GETKEYBOARDTYPE,
1521 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT,
1522 ONEPARAM_ROUTINE_GETQUEUESTATUS,
1523 ONEPARAM_ROUTINE_GETWINSTAINFO,
1524 #if (WIN32K_VERSION < NTDDI_VISTA)
1525 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1526 #endif
1527 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW,
1528 ONEPARAM_ROUTINE_LOADFONTS,
1529 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT,
1530 ONEPARAM_ROUTINE_MESSAGEBEEP,
1531 ONEPARAM_ROUTINE_PLAYEVENTSOUND,
1532 ONEPARAM_ROUTINE_POSTQUITMESSAGE,
1533 #if (WIN32K_VERSION < NTDDI_VISTA)
1534 ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
1535 #endif
1536 ONEPARAM_ROUTINE_REALIZEPALETTE,
1537 ONEPARAM_ROUTINE_REGISTERLPK,
1538 #if (WIN32K_VERSION >= NTDDI_VISTA)
1539 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1540 #endif
1541 ONEPARAM_ROUTINE_REMOTERECONNECT,
1542 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS,
1543 ONEPARAM_ROUTINE_RELEASEDC,
1544 #if (WIN32K_VERSION >= NTDDI_VISTA)
1545 ONEPARAM_ROUTINE_REMOTENOTIFY,
1546 #endif
1547 ONEPARAM_ROUTINE_REPLYMESSAGE,
1548 ONEPARAM_ROUTINE_SETCARETBLINKTIME,
1549 ONEPARAM_ROUTINE_SETDBLCLICKTIME,
1550 #if (WIN32K_VERSION < NTDDI_VISTA)
1551 ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
1552 #endif
1553 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO,
1554 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,
1555 #if (WIN32K_VERSION >= NTDDI_VISTA)
1556 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,
1557 #endif
1558 ONEPARAM_ROUTINE_SHOWCURSOR,
1559 ONEPARAM_ROUTINE_SHOWSTARTGLASS,
1560 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON,
1561 X_ROUTINE_WOWMODULEUNLOAD,
1562 #if (WIN32K_VERSION < NTDDI_VISTA)
1563 X_ROUTINE_REMOTENOTIFY,
1564 #endif
1565 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW,
1566 HWND_ROUTINE_DWP_GETENABLEDPOPUP,
1567 HWND_ROUTINE_GETWNDCONTEXTHLPID,
1568 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
1569 HWND_ROUTINE_SETMSGBOX,
1570 HWNDOPT_ROUTINE_SETPROGMANWINDOW,
1571 HWNDOPT_ROUTINE_SETTASKMANWINDOW,
1572 HWNDPARAM_ROUTINE_GETCLASSICOCUR,
1573 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE,
1574 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER,
1575 HWNDPARAM_ROUTINE_SETDIALOGPOINTER,
1576 HWNDPARAM_ROUTINE_SETVISIBLE,
1577 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID,
1578 HWNDPARAM_ROUTINE_SETWINDOWSTATE,
1579 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
1580 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS,
1581 HWNDLOCK_ROUTINE_DRAWMENUBAR,
1582 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD,
1583 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE,
1584 HWNDLOCK_ROUTINE_REDRAWFRAME,
1585 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK,
1586 HWNDLOCK_ROUTINE_SETDLGSYSMENU,
1587 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW,
1588 HWNDLOCK_ROUTINE_SETSYSMENU,
1589 HWNDLOCK_ROUTINE_UPDATECKIENTRECT,
1590 HWNDLOCK_ROUTINE_UPDATEWINDOW,
1591 X_ROUTINE_IMESHOWSTATUSCHANGE,
1592 TWOPARAM_ROUTINE_ENABLEWINDOW,
1593 TWOPARAM_ROUTINE_REDRAWTITLE,
1594 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS,
1595 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW,
1596 TWOPARAM_ROUTINE_UPDATEWINDOWS,
1597 TWOPARAM_ROUTINE_VALIDATERGN,
1598 #if (WIN32K_VERSION >= NTDDI_VISTA)
1599 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER,
1600 TWOPARAM_ROUTINE_GETCURSORPOS,
1601 #endif
1602 TWOPARAM_ROUTINE_GETHDEVNAME,
1603 TWOPARAM_ROUTINE_INITANSIOEM,
1604 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,
1605 #if (WIN32K_VERSION >= NTDDI_VISTA)
1606 TWOPARAM_ROUTINE_REGISTERGHSTWND,
1607 #endif
1608 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,
1609 #if (WIN32K_VERSION >= NTDDI_VISTA)
1610 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,
1611 #else
1612 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1613 #endif
1614 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS,
1615 TWOPARAM_ROUTINE_SHADOWCLEANUP,
1616 TWOPARAM_ROUTINE_REMOTESHADOWSTART,
1617 TWOPARAM_ROUTINE_SETCARETPOS,
1618 TWOPARAM_ROUTINE_SETCURSORPOS,
1619 #if (WIN32K_VERSION >= NTDDI_VISTA)
1620 TWOPARAM_ROUTINE_SETPHYSCURSORPOS,
1621 #endif
1622 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK,
1623 TWOPARAM_ROUTINE_WOWCLEANUP
1624 };
1625
1626 DWORD
1627 NTAPI
1628 NtUserCallHwnd(
1629 HWND hWnd,
1630 DWORD Routine);
1631
1632 BOOL
1633 NTAPI
1634 NtUserCallHwndLock(
1635 HWND hWnd,
1636 DWORD Routine);
1637
1638 HWND
1639 NTAPI
1640 NtUserCallHwndOpt(
1641 HWND hWnd,
1642 DWORD Routine);
1643
1644 DWORD
1645 NTAPI
1646 NtUserCallHwndParam(
1647 HWND hWnd,
1648 DWORD Param,
1649 DWORD Routine);
1650
1651 DWORD
1652 NTAPI
1653 NtUserCallHwndParamLock(
1654 HWND hWnd,
1655 DWORD Param,
1656 DWORD Routine);
1657
1658 BOOL
1659 NTAPI
1660 NtUserCallMsgFilter(
1661 LPMSG msg,
1662 INT code);
1663
1664 LRESULT
1665 NTAPI
1666 NtUserCallNextHookEx(
1667 int Code,
1668 WPARAM wParam,
1669 LPARAM lParam,
1670 BOOL Ansi);
1671
1672 DWORD_PTR
1673 NTAPI
1674 NtUserCallNoParam(
1675 DWORD Routine);
1676
1677 DWORD_PTR
1678 NTAPI
1679 NtUserCallOneParam(
1680 DWORD_PTR Param,
1681 DWORD Routine);
1682
1683 DWORD_PTR
1684 NTAPI
1685 NtUserCallTwoParam(
1686 DWORD_PTR Param1,
1687 DWORD_PTR Param2,
1688 DWORD Routine);
1689
1690 BOOL
1691 NTAPI
1692 NtUserChangeClipboardChain(
1693 HWND hWndRemove,
1694 HWND hWndNewNext);
1695
1696 LONG
1697 NTAPI
1698 NtUserChangeDisplaySettings(
1699 PUNICODE_STRING lpszDeviceName,
1700 LPDEVMODEW lpDevMode,
1701 DWORD dwflags,
1702 LPVOID lParam);
1703
1704 BOOL
1705 NTAPI
1706 NtUserCheckDesktopByThreadId(
1707 DWORD dwThreadId);
1708
1709 BOOL
1710 NTAPI
1711 NtUserCheckWindowThreadDesktop(
1712 HWND hwnd,
1713 DWORD dwThreadId,
1714 ULONG ReturnValue);
1715
1716 DWORD
1717 NTAPI
1718 NtUserCheckImeHotKey(
1719 DWORD dwUnknown1,
1720 LPARAM dwUnknown2);
1721
1722 HWND NTAPI
1723 NtUserChildWindowFromPointEx(
1724 HWND Parent,
1725 LONG x,
1726 LONG y,
1727 UINT Flags);
1728
1729 BOOL
1730 NTAPI
1731 NtUserClipCursor(
1732 RECT *lpRect);
1733
1734 BOOL
1735 NTAPI
1736 NtUserCloseClipboard(VOID);
1737
1738 BOOL
1739 NTAPI
1740 NtUserCloseDesktop(
1741 HDESK hDesktop);
1742
1743 BOOL
1744 NTAPI
1745 NtUserCloseWindowStation(
1746 HWINSTA hWinSta);
1747
1748 /* Console commands for NtUserConsoleControl */
1749 typedef enum _CONSOLECONTROL
1750 {
1751 ConsoleCtrlDesktopConsoleThread = 0,
1752 GuiConsoleWndClassAtom = 1,
1753 ConsoleMakePalettePublic = 5,
1754 ConsoleAcquireDisplayOwnership,
1755 } CONSOLECONTROL, *PCONSOLECONTROL;
1756
1757 typedef struct _DESKTOP_CONSOLE_THREAD
1758 {
1759 HDESK DesktopHandle;
1760 ULONG_PTR ThreadId;
1761 } DESKTOP_CONSOLE_THREAD, *PDESKTOP_CONSOLE_THREAD;
1762
1763 NTSTATUS
1764 APIENTRY
1765 NtUserConsoleControl(
1766 IN CONSOLECONTROL ConsoleCtrl,
1767 IN PVOID ConsoleCtrlInfo,
1768 IN ULONG ConsoleCtrlInfoLength);
1769
1770 HANDLE
1771 NTAPI
1772 NtUserConvertMemHandle(
1773 PVOID pData,
1774 DWORD cbData);
1775
1776 ULONG
1777 NTAPI
1778 NtUserCopyAcceleratorTable(
1779 HACCEL Table,
1780 LPACCEL Entries,
1781 ULONG EntriesCount);
1782
1783 DWORD
1784 NTAPI
1785 NtUserCountClipboardFormats(VOID);
1786
1787 HACCEL
1788 NTAPI
1789 NtUserCreateAcceleratorTable(
1790 LPACCEL Entries,
1791 ULONG EntriesCount);
1792
1793 BOOL
1794 NTAPI
1795 NtUserCreateCaret(
1796 HWND hWnd,
1797 HBITMAP hBitmap,
1798 int nWidth,
1799 int nHeight);
1800
1801 HDESK
1802 NTAPI
1803 NtUserCreateDesktop(
1804 POBJECT_ATTRIBUTES poa,
1805 PUNICODE_STRING lpszDesktopDevice,
1806 LPDEVMODEW lpdmw,
1807 DWORD dwFlags,
1808 ACCESS_MASK dwDesiredAccess);
1809
1810 DWORD
1811 NTAPI
1812 NtUserCreateInputContext(
1813 DWORD dwUnknown1);
1814
1815 NTSTATUS
1816 NTAPI
1817 NtUserCreateLocalMemHandle(
1818 HANDLE hMem,
1819 PVOID pData,
1820 DWORD cbData,
1821 DWORD *pcbData);
1822
1823 HWND
1824 NTAPI
1825 NtUserCreateWindowEx(
1826 DWORD dwExStyle,
1827 PLARGE_STRING plstrClassName,
1828 PLARGE_STRING plstrClsVersion,
1829 PLARGE_STRING plstrWindowName,
1830 DWORD dwStyle,
1831 int x,
1832 int y,
1833 int nWidth,
1834 int nHeight,
1835 HWND hWndParent,
1836 HMENU hMenu,
1837 HINSTANCE hInstance,
1838 LPVOID lpParam,
1839 DWORD dwFlags,
1840 PVOID acbiBuffer);
1841
1842 HWINSTA
1843 NTAPI
1844 NtUserCreateWindowStation(
1845 POBJECT_ATTRIBUTES ObjectAttributes,
1846 ACCESS_MASK dwDesiredAccess,
1847 DWORD Unknown2,
1848 DWORD Unknown3,
1849 DWORD Unknown4,
1850 DWORD Unknown5,
1851 DWORD Unknown6);
1852
1853 BOOL
1854 NTAPI
1855 NtUserDdeGetQualityOfService(
1856 IN HWND hwndClient,
1857 IN HWND hWndServer,
1858 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1859
1860 DWORD
1861 NTAPI
1862 NtUserDdeInitialize(
1863 DWORD Unknown0,
1864 DWORD Unknown1,
1865 DWORD Unknown2,
1866 DWORD Unknown3,
1867 DWORD Unknown4);
1868
1869 BOOL
1870 NTAPI
1871 NtUserDdeSetQualityOfService(
1872 IN HWND hwndClient,
1873 IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
1874 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1875
1876 HDWP
1877 NTAPI
1878 NtUserDeferWindowPos(
1879 HDWP WinPosInfo,
1880 HWND Wnd,
1881 HWND WndInsertAfter,
1882 int x,
1883 int y,
1884 int cx,
1885 int cy,
1886 UINT Flags);
1887
1888 BOOL
1889 NTAPI
1890 NtUserDefSetText(
1891 HWND WindowHandle,
1892 PLARGE_STRING WindowText);
1893
1894 BOOLEAN
1895 NTAPI
1896 NtUserDestroyAcceleratorTable(
1897 HACCEL Table);
1898
1899 BOOL
1900 NTAPI
1901 NtUserDestroyCursor(
1902 _In_ HANDLE Handle,
1903 _In_ BOOL bForce);
1904
1905 DWORD
1906 NTAPI
1907 NtUserDestroyInputContext(
1908 DWORD dwUnknown1);
1909
1910 BOOLEAN
1911 NTAPI
1912 NtUserDestroyWindow(
1913 HWND Wnd);
1914
1915 DWORD
1916 NTAPI
1917 NtUserDisableThreadIme(
1918 DWORD dwUnknown1);
1919
1920 LRESULT
1921 NTAPI
1922 NtUserDispatchMessage(
1923 PMSG pMsg);
1924
1925 BOOL
1926 NTAPI
1927 NtUserDragDetect(
1928 HWND hWnd,
1929 POINT pt);
1930
1931 DWORD
1932 NTAPI
1933 NtUserDragObject(
1934 HWND hwnd1,
1935 HWND hwnd2,
1936 UINT u1,
1937 DWORD dw1,
1938 HCURSOR hc1);
1939
1940 BOOL
1941 NTAPI
1942 NtUserDrawAnimatedRects(
1943 HWND hwnd,
1944 INT idAni,
1945 RECT *lprcFrom,
1946 RECT *lprcTo);
1947
1948 BOOL
1949 NTAPI
1950 NtUserDrawCaption(
1951 HWND hWnd,
1952 HDC hDc,
1953 LPCRECT lpRc,
1954 UINT uFlags);
1955
1956 BOOL
1957 NTAPI
1958 NtUserDrawCaptionTemp(
1959 HWND hWnd,
1960 HDC hDC,
1961 LPCRECT lpRc,
1962 HFONT hFont,
1963 HICON hIcon,
1964 const PUNICODE_STRING str,
1965 UINT uFlags);
1966
1967 /* Used with NtUserDrawIconEx, last parameter. */
1968 typedef struct _DRAWICONEXDATA
1969 {
1970 HBITMAP hbmMask;
1971 HBITMAP hbmColor;
1972 int cx;
1973 int cy;
1974 } DRAWICONEXDATA, *PDRAWICONEXDATA;
1975
1976 BOOL
1977 NTAPI
1978 NtUserDrawIconEx(
1979 HDC hdc,
1980 int xLeft,
1981 int yTop,
1982 HICON hIcon,
1983 int cxWidth,
1984 int cyWidth,
1985 UINT istepIfAniCur,
1986 HBRUSH hbrFlickerFreeDraw,
1987 UINT diFlags,
1988 BOOL bMetaHDC,
1989 PVOID pDIXData);
1990
1991 BOOL
1992 NTAPI
1993 NtUserEmptyClipboard(VOID);
1994
1995 BOOL
1996 NTAPI
1997 NtUserEnableScrollBar(
1998 HWND hWnd,
1999 UINT wSBflags,
2000 UINT wArrows);
2001
2002 BOOL
2003 NTAPI
2004 NtUserEndDeferWindowPosEx(
2005 HDWP WinPosInfo,
2006 DWORD Unknown1);
2007
2008 BOOL
2009 NTAPI
2010 NtUserEndPaint(
2011 HWND hWnd,
2012 CONST PAINTSTRUCT *lPs);
2013
2014 BOOL
2015 NTAPI
2016 NtUserEnumDisplayDevices(
2017 PUNICODE_STRING lpDevice, /* device name */
2018 DWORD iDevNum, /* display device */
2019 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
2020 DWORD dwFlags); /* reserved */
2021
2022 /*
2023 BOOL
2024 NTAPI
2025 NtUserEnumDisplayMonitors(
2026 HDC hdc,
2027 LPCRECT lprcClip,
2028 MONITORENUMPROC lpfnEnum,
2029 LPARAM dwData);
2030 */
2031 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2032 INT
2033 NTAPI
2034 NtUserEnumDisplayMonitors(
2035 OPTIONAL IN HDC hDC,
2036 OPTIONAL IN LPCRECT pRect,
2037 OPTIONAL OUT HMONITOR *hMonitorList,
2038 OPTIONAL OUT LPRECT monitorRectList,
2039 OPTIONAL IN DWORD listSize);
2040
2041
2042 NTSTATUS
2043 NTAPI
2044 NtUserEnumDisplaySettings(
2045 PUNICODE_STRING lpszDeviceName,
2046 DWORD iModeNum,
2047 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
2048 DWORD dwFlags);
2049
2050 DWORD
2051 NTAPI
2052 NtUserEvent(
2053 DWORD Unknown0);
2054
2055 DWORD
2056 NTAPI
2057 NtUserExcludeUpdateRgn(
2058 HDC hDC,
2059 HWND hWnd);
2060
2061 BOOL
2062 NTAPI
2063 NtUserFillWindow(
2064 HWND hWndPaint,
2065 HWND hWndPaint1,
2066 HDC hDC,
2067 HBRUSH hBrush);
2068
2069 HWND
2070 NTAPI
2071 NtUserFindWindowEx(
2072 HWND hwndParent,
2073 HWND hwndChildAfter,
2074 PUNICODE_STRING ucClassName,
2075 PUNICODE_STRING ucWindowName,
2076 DWORD dwUnknown);
2077
2078 BOOL
2079 NTAPI
2080 NtUserFlashWindowEx(
2081 IN PFLASHWINFO pfwi);
2082
2083 BOOL
2084 NTAPI
2085 NtUserGetAltTabInfo(
2086 HWND hwnd,
2087 INT iItem,
2088 PALTTABINFO pati,
2089 LPWSTR pszItemText,
2090 UINT cchItemText,
2091 BOOL Ansi);
2092
2093 HWND
2094 NTAPI
2095 NtUserGetAncestor(
2096 HWND hWnd,
2097 UINT Flags);
2098
2099 DWORD
2100 NTAPI
2101 NtUserGetAppImeLevel(
2102 DWORD dwUnknown1);
2103
2104 SHORT
2105 NTAPI
2106 NtUserGetAsyncKeyState(
2107 INT Key);
2108
2109 _Success_(return != 0)
2110 _At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2))
2111 ULONG
2112 APIENTRY
2113 NtUserGetAtomName(
2114 _In_ ATOM atom,
2115 _Inout_ PUNICODE_STRING pustrName);
2116
2117 UINT
2118 NTAPI
2119 NtUserGetCaretBlinkTime(VOID);
2120
2121 BOOL
2122 NTAPI
2123 NtUserGetCaretPos(
2124 LPPOINT lpPoint);
2125
2126 BOOL
2127 NTAPI
2128 NtUserGetClassInfo(
2129 HINSTANCE hInstance,
2130 PUNICODE_STRING ClassName,
2131 LPWNDCLASSEXW wcex,
2132 LPWSTR *ppszMenuName,
2133 BOOL Ansi);
2134
2135 INT
2136 NTAPI
2137 NtUserGetClassName(
2138 HWND hWnd,
2139 BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2140 PUNICODE_STRING ClassName);
2141
2142 HANDLE
2143 NTAPI
2144 NtUserGetClipboardData(
2145 UINT fmt,
2146 PGETCLIPBDATA pgcd);
2147
2148 INT
2149 NTAPI
2150 NtUserGetClipboardFormatName(
2151 UINT uFormat,
2152 LPWSTR lpszFormatName,
2153 INT cchMaxCount);
2154
2155 HWND
2156 NTAPI
2157 NtUserGetClipboardOwner(VOID);
2158
2159 DWORD
2160 NTAPI
2161 NtUserGetClipboardSequenceNumber(VOID);
2162
2163 HWND
2164 NTAPI
2165 NtUserGetClipboardViewer(VOID);
2166
2167 BOOL
2168 NTAPI
2169 NtUserGetClipCursor(
2170 RECT *lpRect);
2171
2172 BOOL
2173 NTAPI
2174 NtUserGetComboBoxInfo(
2175 HWND hWnd,
2176 PCOMBOBOXINFO pcbi);
2177
2178 HBRUSH
2179 NTAPI
2180 NtUserGetControlBrush(
2181 HWND hwnd,
2182 HDC hdc,
2183 UINT ctlType);
2184
2185 HBRUSH
2186 NTAPI
2187 NtUserGetControlColor(
2188 HWND hwndParent,
2189 HWND hwnd,
2190 HDC hdc,
2191 UINT CtlMsg);
2192
2193 ULONG_PTR
2194 NTAPI
2195 NtUserGetCPD(
2196 HWND hWnd,
2197 GETCPD Flags,
2198 ULONG_PTR Proc);
2199
2200 HCURSOR
2201 NTAPI
2202 NtUserGetCursorFrameInfo(
2203 HCURSOR hCursor,
2204 DWORD istep,
2205 INT *rate_jiffies,
2206 DWORD *num_steps);
2207
2208 BOOL
2209 NTAPI
2210 NtUserGetCursorInfo(
2211 PCURSORINFO pci);
2212
2213 HDC
2214 NTAPI
2215 NtUserGetDC(
2216 HWND hWnd);
2217
2218 HDC
2219 NTAPI
2220 NtUserGetDCEx(
2221 HWND hWnd,
2222 HANDLE hRegion,
2223 ULONG Flags);
2224
2225 UINT
2226 NTAPI
2227 NtUserGetDoubleClickTime(VOID);
2228
2229 HWND
2230 NTAPI
2231 NtUserGetForegroundWindow(VOID);
2232
2233 DWORD
2234 NTAPI
2235 NtUserGetGuiResources(
2236 HANDLE hProcess,
2237 DWORD uiFlags);
2238
2239 BOOL
2240 NTAPI
2241 NtUserGetGUIThreadInfo(
2242 DWORD idThread,
2243 LPGUITHREADINFO lpgui);
2244
2245 _Success_(return != FALSE)
2246 BOOL
2247 NTAPI
2248 NtUserGetIconInfo(
2249 _In_ HANDLE hCurIcon,
2250 _Out_opt_ PICONINFO IconInfo,
2251 _Inout_opt_ PUNICODE_STRING lpInstName,
2252 _Inout_opt_ PUNICODE_STRING lpResName,
2253 _Out_opt_ LPDWORD pbpp,
2254 _In_ BOOL bInternal);
2255
2256 BOOL
2257 NTAPI
2258 NtUserGetIconSize(
2259 HANDLE Handle,
2260 UINT istepIfAniCur,
2261 LONG *plcx,
2262 LONG *plcy);
2263
2264 DWORD
2265 NTAPI
2266 NtUserGetImeHotKey(
2267 DWORD Unknown0,
2268 DWORD Unknown1,
2269 DWORD Unknown2,
2270 DWORD Unknown3);
2271
2272 DWORD
2273 NTAPI
2274 NtUserGetImeInfoEx(
2275 PIMEINFOEX pImeInfoEx,
2276 DWORD dwUnknown2);
2277
2278 DWORD
2279 NTAPI
2280 NtUserGetInternalWindowPos(
2281 HWND hwnd,
2282 LPRECT rectWnd,
2283 LPPOINT ptIcon);
2284
2285 HKL
2286 NTAPI
2287 NtUserGetKeyboardLayout(
2288 DWORD dwThreadid);
2289
2290 UINT
2291 NTAPI
2292 NtUserGetKeyboardLayoutList(
2293 ULONG nItems,
2294 HKL *pHklBuff);
2295
2296 BOOL
2297 NTAPI
2298 NtUserGetKeyboardLayoutName(
2299 LPWSTR lpszName);
2300
2301 DWORD
2302 NTAPI
2303 NtUserGetKeyboardState(
2304 LPBYTE Unknown0);
2305
2306 DWORD
2307 NTAPI
2308 NtUserGetKeyboardType(
2309 DWORD TypeFlag);
2310
2311 DWORD
2312 NTAPI
2313 NtUserGetKeyNameText(
2314 LONG lParam,
2315 LPWSTR lpString,
2316 int nSize);
2317
2318 SHORT
2319 NTAPI
2320 NtUserGetKeyState(
2321 INT VirtKey);
2322
2323 BOOL
2324 NTAPI
2325 NtUserGetLayeredWindowAttributes(
2326 HWND hwnd,
2327 COLORREF *pcrKey,
2328 BYTE *pbAlpha,
2329 DWORD *pdwFlags);
2330
2331 DWORD
2332 NTAPI
2333 NtUserGetListBoxInfo(
2334 HWND hWnd);
2335
2336 BOOL
2337 APIENTRY
2338 NtUserGetMessage(
2339 PMSG pMsg,
2340 HWND hWnd,
2341 UINT MsgFilterMin,
2342 UINT MsgFilterMax);
2343
2344 DWORD
2345 NTAPI
2346 NtUserGetMouseMovePointsEx(
2347 UINT cbSize,
2348 LPMOUSEMOVEPOINT lppt,
2349 LPMOUSEMOVEPOINT lpptBuf,
2350 int nBufPoints,
2351 DWORD resolution);
2352
2353 BOOL
2354 NTAPI
2355 NtUserGetObjectInformation(
2356 HANDLE hObject,
2357 DWORD nIndex,
2358 PVOID pvInformation,
2359 DWORD nLength,
2360 PDWORD nLengthNeeded);
2361
2362 HWND
2363 NTAPI
2364 NtUserGetOpenClipboardWindow(VOID);
2365
2366 INT
2367 NTAPI
2368 NtUserGetPriorityClipboardFormat(
2369 UINT *paFormatPriorityList,
2370 INT cFormats);
2371
2372 HWINSTA
2373 NTAPI
2374 NtUserGetProcessWindowStation(VOID);
2375
2376 DWORD
2377 NTAPI
2378 NtUserGetRawInputBuffer(
2379 PRAWINPUT pData,
2380 PUINT pcbSize,
2381 UINT cbSizeHeader);
2382
2383 DWORD
2384 NTAPI
2385 NtUserGetRawInputData(
2386 HRAWINPUT hRawInput,
2387 UINT uiCommand,
2388 LPVOID pData,
2389 PUINT pcbSize,
2390 UINT cbSizeHeader);
2391
2392 DWORD
2393 NTAPI
2394 NtUserGetRawInputDeviceInfo(
2395 HANDLE hDevice,
2396 UINT uiCommand,
2397 LPVOID pData,
2398 PUINT pcbSize);
2399
2400 DWORD
2401 NTAPI
2402 NtUserGetRawInputDeviceList(
2403 PRAWINPUTDEVICELIST pRawInputDeviceList,
2404 PUINT puiNumDevices,
2405 UINT cbSize);
2406
2407 DWORD
2408 NTAPI
2409 NtUserGetRegisteredRawInputDevices(
2410 PRAWINPUTDEVICE pRawInputDevices,
2411 PUINT puiNumDevices,
2412 UINT cbSize);
2413
2414 BOOL
2415 NTAPI
2416 NtUserGetScrollBarInfo(
2417 HWND hWnd,
2418 LONG idObject,
2419 PSCROLLBARINFO psbi);
2420
2421 HDESK
2422 NTAPI
2423 NtUserGetThreadDesktop(
2424 DWORD dwThreadId,
2425 DWORD Unknown1);
2426
2427 enum ThreadStateRoutines
2428 {
2429 THREADSTATE_GETTHREADINFO,
2430 THREADSTATE_INSENDMESSAGE,
2431 THREADSTATE_FOCUSWINDOW,
2432 THREADSTATE_ACTIVEWINDOW,
2433 THREADSTATE_CAPTUREWINDOW,
2434 THREADSTATE_PROGMANWINDOW,
2435 THREADSTATE_TASKMANWINDOW,
2436 THREADSTATE_GETMESSAGETIME,
2437 THREADSTATE_GETINPUTSTATE,
2438 THREADSTATE_UPTIMELASTREAD,
2439 THREADSTATE_FOREGROUNDTHREAD,
2440 THREADSTATE_GETCURSOR,
2441 THREADSTATE_GETMESSAGEEXTRAINFO
2442 };
2443
2444 DWORD_PTR
2445 NTAPI
2446 NtUserGetThreadState(
2447 DWORD Routine);
2448
2449 BOOLEAN
2450 NTAPI
2451 NtUserGetTitleBarInfo(
2452 HWND hwnd,
2453 PTITLEBARINFO pti);
2454
2455 BOOL
2456 NTAPI
2457 NtUserGetUpdateRect(
2458 HWND hWnd,
2459 LPRECT lpRect,
2460 BOOL fErase);
2461
2462 int
2463 NTAPI
2464 NtUserGetUpdateRgn(
2465 HWND hWnd,
2466 HRGN hRgn,
2467 BOOL bErase);
2468
2469 HDC
2470 NTAPI
2471 NtUserGetWindowDC(
2472 HWND hWnd);
2473
2474 BOOL
2475 NTAPI
2476 NtUserGetWindowPlacement(
2477 HWND hWnd,
2478 WINDOWPLACEMENT *lpwndpl);
2479
2480 PCLS
2481 NTAPI
2482 NtUserGetWOWClass(
2483 HINSTANCE hInstance,
2484 PUNICODE_STRING ClassName);
2485
2486 DWORD
2487 NTAPI
2488 NtUserHardErrorControl(
2489 DWORD dwUnknown1,
2490 DWORD dwUnknown2,
2491 DWORD dwUnknown3);
2492
2493 BOOL
2494 NTAPI
2495 NtUserImpersonateDdeClientWindow(
2496 HWND hWndClient,
2497 HWND hWndServer);
2498
2499 NTSTATUS
2500 NTAPI
2501 NtUserInitialize(
2502 DWORD dwWinVersion,
2503 HANDLE hPowerRequestEvent,
2504 HANDLE hMediaRequestEvent);
2505
2506 NTSTATUS
2507 NTAPI
2508 NtUserInitializeClientPfnArrays(
2509 PPFNCLIENT pfnClientA,
2510 PPFNCLIENT pfnClientW,
2511 PPFNCLIENTWORKER pfnClientWorker,
2512 HINSTANCE hmodUser);
2513
2514 DWORD
2515 NTAPI
2516 NtUserInitTask(
2517 DWORD Unknown0,
2518 DWORD Unknown1,
2519 DWORD Unknown2,
2520 DWORD Unknown3,
2521 DWORD Unknown4,
2522 DWORD Unknown5,
2523 DWORD Unknown6,
2524 DWORD Unknown7,
2525 DWORD Unknown8,
2526 DWORD Unknown9,
2527 DWORD Unknown10,
2528 DWORD Unknown11);
2529
2530 INT
2531 NTAPI
2532 NtUserInternalGetWindowText(
2533 HWND hWnd,
2534 LPWSTR lpString,
2535 INT nMaxCount);
2536
2537 BOOL
2538 NTAPI
2539 NtUserInvalidateRect(
2540 HWND hWnd,
2541 CONST RECT *lpRect,
2542 BOOL bErase);
2543
2544 BOOL
2545 NTAPI
2546 NtUserInvalidateRgn(
2547 HWND hWnd,
2548 HRGN hRgn,
2549 BOOL bErase);
2550
2551 BOOL
2552 NTAPI
2553 NtUserIsClipboardFormatAvailable(
2554 UINT format);
2555
2556 BOOL
2557 NTAPI
2558 NtUserKillTimer(
2559 HWND hWnd,
2560 UINT_PTR uIDEvent);
2561
2562 HKL
2563 NTAPI
2564 NtUserLoadKeyboardLayoutEx(
2565 IN HANDLE Handle,
2566 IN DWORD offTable,
2567 IN PUNICODE_STRING puszKeyboardName,
2568 IN HKL hKL,
2569 IN PUNICODE_STRING puszKLID,
2570 IN DWORD dwKLID,
2571 IN UINT Flags);
2572
2573 BOOL
2574 NTAPI
2575 NtUserLockWindowStation(
2576 HWINSTA hWindowStation);
2577
2578 BOOL
2579 NTAPI
2580 NtUserLockWindowUpdate(
2581 HWND hWnd);
2582
2583 BOOL
2584 NTAPI
2585 NtUserLockWorkStation(VOID);
2586
2587 UINT
2588 NTAPI
2589 NtUserMapVirtualKeyEx(
2590 UINT keyCode,
2591 UINT transType,
2592 DWORD keyboardId,
2593 HKL dwhkl);
2594
2595 typedef struct tagDOSENDMESSAGE
2596 {
2597 UINT uFlags;
2598 UINT uTimeout;
2599 ULONG_PTR Result;
2600 }
2601 DOSENDMESSAGE, *PDOSENDMESSAGE;
2602
2603 BOOL
2604 NTAPI
2605 NtUserMessageCall(
2606 HWND hWnd,
2607 UINT Msg,
2608 WPARAM wParam,
2609 LPARAM lParam,
2610 ULONG_PTR ResultInfo,
2611 DWORD dwType, /* FNID_XX types */
2612 BOOL Ansi);
2613
2614 DWORD
2615 NTAPI
2616 NtUserMinMaximize(
2617 HWND hWnd,
2618 UINT cmd, /* Wine SW_ commands */
2619 BOOL Hide);
2620
2621 DWORD
2622 NTAPI
2623 NtUserMNDragLeave(VOID);
2624
2625 DWORD
2626 NTAPI
2627 NtUserMNDragOver(
2628 DWORD Unknown0,
2629 DWORD Unknown1);
2630
2631 DWORD
2632 NTAPI
2633 NtUserModifyUserStartupInfoFlags(
2634 DWORD Unknown0,
2635 DWORD Unknown1);
2636
2637 BOOL
2638 NTAPI
2639 NtUserMoveWindow(
2640 HWND hWnd,
2641 int X,
2642 int Y,
2643 int nWidth,
2644 int nHeight,
2645 BOOL bRepaint
2646 );
2647
2648 DWORD
2649 NTAPI
2650 NtUserNotifyIMEStatus(
2651 DWORD Unknown0,
2652 DWORD Unknown1,
2653 DWORD Unknown2);
2654
2655 BOOL
2656 NTAPI
2657 NtUserNotifyProcessCreate(
2658 HANDLE NewProcessId,
2659 HANDLE ParentThreadId,
2660 ULONG dwUnknown,
2661 ULONG CreateFlags);
2662
2663 VOID
2664 NTAPI
2665 NtUserNotifyWinEvent(
2666 DWORD Event,
2667 HWND hWnd,
2668 LONG idObject,
2669 LONG idChild);
2670
2671 BOOL
2672 NTAPI
2673 NtUserOpenClipboard(
2674 HWND hWnd,
2675 DWORD Unknown1);
2676
2677 HDESK
2678 NTAPI
2679 NtUserOpenDesktop(
2680 POBJECT_ATTRIBUTES ObjectAttributes,
2681 DWORD dwFlags,
2682 ACCESS_MASK dwDesiredAccess);
2683
2684 HDESK
2685 NTAPI
2686 NtUserOpenInputDesktop(
2687 DWORD dwFlags,
2688 BOOL fInherit,
2689 ACCESS_MASK dwDesiredAccess);
2690
2691 HWINSTA
2692 NTAPI
2693 NtUserOpenWindowStation(
2694 POBJECT_ATTRIBUTES ObjectAttributes,
2695 ACCESS_MASK dwDesiredAccess);
2696
2697 BOOL
2698 NTAPI
2699 NtUserPaintDesktop(
2700 HDC hDC);
2701
2702 DWORD
2703 NTAPI
2704 NtUserPaintMenuBar(
2705 DWORD dwUnknown1,
2706 DWORD dwUnknown2,
2707 DWORD dwUnknown3,
2708 DWORD dwUnknown4,
2709 DWORD dwUnknown5,
2710 DWORD dwUnknown6);
2711
2712 BOOL
2713 APIENTRY
2714 NtUserPeekMessage(
2715 PMSG pMsg,
2716 HWND hWnd,
2717 UINT MsgFilterMin,
2718 UINT MsgFilterMax,
2719 UINT RemoveMsg);
2720
2721 BOOL
2722 NTAPI
2723 NtUserPostMessage(
2724 HWND hWnd,
2725 UINT Msg,
2726 WPARAM wParam,
2727 LPARAM lParam);
2728
2729 BOOL
2730 NTAPI
2731 NtUserPostThreadMessage(
2732 DWORD idThread,
2733 UINT Msg,
2734 WPARAM wParam,
2735 LPARAM lParam);
2736
2737 BOOL
2738 NTAPI
2739 NtUserPrintWindow(
2740 HWND hwnd,
2741 HDC hdcBlt,
2742 UINT nFlags);
2743
2744 NTSTATUS
2745 NTAPI
2746 NtUserProcessConnect(
2747 IN HANDLE ProcessHandle,
2748 OUT PUSERCONNECT pUserConnect,
2749 IN ULONG Size); /* sizeof(USERCONNECT) */
2750
2751 NTSTATUS
2752 NTAPI
2753 NtUserQueryInformationThread(
2754 IN HANDLE ThreadHandle,
2755 IN USERTHREADINFOCLASS ThreadInformationClass,
2756 OUT PVOID ThreadInformation,
2757 IN ULONG ThreadInformationLength);
2758
2759 DWORD
2760 NTAPI
2761 NtUserQueryInputContext(
2762 DWORD dwUnknown1,
2763 DWORD dwUnknown2);
2764
2765 DWORD
2766 NTAPI
2767 NtUserQuerySendMessage(
2768 DWORD Unknown0);
2769
2770 DWORD
2771 NTAPI
2772 NtUserQueryUserCounters(
2773 DWORD Unknown0,
2774 DWORD Unknown1,
2775 DWORD Unknown2,
2776 DWORD Unknown3,
2777 DWORD Unknown4);
2778
2779 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2780 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2781 #define QUERY_WINDOW_ACTIVE 0x02
2782 #define QUERY_WINDOW_FOCUS 0x03
2783 #define QUERY_WINDOW_ISHUNG 0x04
2784 #define QUERY_WINDOW_REAL_ID 0x05
2785 #define QUERY_WINDOW_FOREGROUND 0x06
2786
2787 DWORD
2788 NTAPI
2789 NtUserQueryWindow(
2790 HWND hWnd,
2791 DWORD Index);
2792
2793 BOOL
2794 NTAPI
2795 NtUserRealInternalGetMessage(
2796 LPMSG lpMsg,
2797 HWND hWnd,
2798 UINT wMsgFilterMin,
2799 UINT wMsgFilterMax,
2800 UINT wRemoveMsg,
2801 BOOL bGMSG);
2802
2803 HWND
2804 NTAPI
2805 NtUserRealChildWindowFromPoint(
2806 HWND Parent,
2807 LONG x,
2808 LONG y);
2809
2810 BOOL
2811 NTAPI
2812 NtUserRealWaitMessageEx(
2813 DWORD dwWakeMask,
2814 UINT uTimeout);
2815
2816 BOOL
2817 NTAPI
2818 NtUserRedrawWindow(
2819 HWND hWnd,
2820 CONST RECT *lprcUpdate,
2821 HRGN hrgnUpdate,
2822 UINT flags);
2823
2824 RTL_ATOM
2825 NTAPI
2826 NtUserRegisterClassExWOW(
2827 WNDCLASSEXW* lpwcx,
2828 PUNICODE_STRING pustrClassName,
2829 PUNICODE_STRING pustrCNVersion,
2830 PCLSMENUNAME pClassMenuName,
2831 DWORD fnID,
2832 DWORD Flags,
2833 LPDWORD pWow);
2834
2835 BOOL
2836 NTAPI
2837 NtUserRegisterRawInputDevices(
2838 IN PCRAWINPUTDEVICE pRawInputDevices,
2839 IN UINT uiNumDevices,
2840 IN UINT cbSize);
2841
2842 BOOL
2843 NTAPI
2844 NtUserRegisterUserApiHook(
2845 PUNICODE_STRING m_dllname1,
2846 PUNICODE_STRING m_funname1,
2847 DWORD dwUnknown3,
2848 DWORD dwUnknown4);
2849
2850 BOOL
2851 NTAPI
2852 NtUserRegisterHotKey(
2853 HWND hWnd,
2854 int id,
2855 UINT fsModifiers,
2856 UINT vk);
2857
2858 DWORD
2859 NTAPI
2860 NtUserRegisterTasklist(
2861 DWORD Unknown0);
2862
2863 UINT
2864 NTAPI
2865 NtUserRegisterWindowMessage(
2866 PUNICODE_STRING MessageName);
2867
2868 DWORD
2869 NTAPI
2870 NtUserRemoteConnect(
2871 DWORD dwUnknown1,
2872 DWORD dwUnknown2,
2873 DWORD dwUnknown3);
2874
2875 DWORD
2876 NTAPI
2877 NtUserRemoteRedrawRectangle(
2878 DWORD dwUnknown1,
2879 DWORD dwUnknown2,
2880 DWORD dwUnknown3,
2881 DWORD dwUnknown4);
2882
2883 DWORD
2884 NTAPI
2885 NtUserRemoteRedrawScreen(VOID);
2886
2887 DWORD
2888 NTAPI
2889 NtUserRemoteStopScreenUpdates(VOID);
2890
2891 HANDLE
2892 NTAPI
2893 NtUserRemoveProp(
2894 HWND hWnd,
2895 ATOM Atom);
2896
2897 HDESK
2898 APIENTRY
2899 NtUserResolveDesktop(
2900 IN HANDLE ProcessHandle,
2901 IN PUNICODE_STRING DesktopPath,
2902 DWORD dwUnknown,
2903 OUT HWINSTA* phWinSta);
2904
2905 DWORD
2906 NTAPI
2907 NtUserResolveDesktopForWOW(
2908 DWORD Unknown0);
2909
2910 BOOL
2911 NTAPI
2912 NtUserSBGetParms(
2913 HWND hwnd,
2914 int fnBar,
2915 PSBDATA pSBData,
2916 LPSCROLLINFO lpsi);
2917
2918 BOOL
2919 NTAPI
2920 NtUserScrollDC(
2921 HDC hDC,
2922 int dx,
2923 int dy,
2924 CONST RECT *lprcScroll,
2925 CONST RECT *lprcClip ,
2926 HRGN hrgnUpdate,
2927 LPRECT lprcUpdate);
2928
2929 DWORD
2930 NTAPI
2931 NtUserScrollWindowEx(
2932 HWND hWnd,
2933 INT dx,
2934 INT dy,
2935 const RECT *rect,
2936 const RECT *clipRect,
2937 HRGN hrgnUpdate,
2938 LPRECT rcUpdate,
2939 UINT flags);
2940
2941 UINT
2942 NTAPI
2943 NtUserSendInput(
2944 UINT nInputs,
2945 LPINPUT pInput,
2946 INT cbSize);
2947
2948 HWND
2949 NTAPI
2950 NtUserSetActiveWindow(
2951 HWND Wnd);
2952
2953 DWORD
2954 NTAPI
2955 NtUserSetAppImeLevel(
2956 DWORD dwUnknown1,
2957 DWORD dwUnknown2);
2958
2959 HWND
2960 NTAPI
2961 NtUserSetCapture(
2962 HWND Wnd);
2963
2964 ULONG_PTR
2965 NTAPI
2966 NtUserSetClassLong(
2967 HWND hWnd,
2968 INT Offset,
2969 ULONG_PTR dwNewLong,
2970 BOOL Ansi);
2971
2972 WORD
2973 NTAPI
2974 NtUserSetClassWord(
2975 HWND hWnd,
2976 INT nIndex,
2977 WORD wNewWord);
2978
2979 HANDLE
2980 NTAPI
2981 NtUserSetClipboardData(
2982 UINT fmt,
2983 HANDLE hMem,
2984 PSETCLIPBDATA scd);
2985
2986 HWND
2987 NTAPI
2988 NtUserSetClipboardViewer(
2989 HWND hWndNewViewer);
2990
2991 HPALETTE
2992 NTAPI
2993 NtUserSelectPalette(
2994 HDC hDC,
2995 HPALETTE hpal,
2996 BOOL ForceBackground);
2997
2998 DWORD
2999 NTAPI
3000 NtUserSetConsoleReserveKeys(
3001 DWORD Unknown0,
3002 DWORD Unknown1);
3003
3004 HCURSOR
3005 NTAPI
3006 NtUserSetCursor(
3007 HCURSOR hCursor);
3008
3009 BOOL
3010 NTAPI
3011 NtUserSetCursorContents(
3012 HANDLE Handle,
3013 PICONINFO IconInfo);
3014
3015 BOOL
3016 NTAPI
3017 NtUserSetCursorIconData(
3018 _In_ HCURSOR hCursor,
3019 _In_opt_ PUNICODE_STRING pustrModule,
3020 _In_opt_ PUNICODE_STRING puSrcName,
3021 _In_ const CURSORDATA *pCursorData);
3022
3023 typedef struct _tagFINDEXISTINGCURICONPARAM
3024 {
3025 BOOL bIcon;
3026 LONG cx;
3027 LONG cy;
3028 } FINDEXISTINGCURICONPARAM;
3029
3030 HICON
3031 NTAPI
3032 NtUserFindExistingCursorIcon(
3033 _In_ PUNICODE_STRING pustrModule,
3034 _In_ PUNICODE_STRING pustrRsrc,
3035 _In_ FINDEXISTINGCURICONPARAM *param);
3036
3037 DWORD
3038 NTAPI
3039 NtUserSetDbgTag(
3040 DWORD Unknown0,
3041 DWORD Unknown1);
3042
3043 DWORD
3044 APIENTRY
3045 NtUserSetDbgTagCount(
3046 DWORD Unknown0);
3047
3048 HWND
3049 NTAPI
3050 NtUserSetFocus(
3051 HWND hWnd);
3052
3053 DWORD
3054 NTAPI
3055 NtUserSetImeHotKey(
3056 DWORD Unknown0,
3057 DWORD Unknown1,
3058 DWORD Unknown2,
3059 DWORD Unknown3,
3060 DWORD Unknown4);
3061
3062 DWORD
3063 NTAPI
3064 NtUserSetImeInfoEx(
3065 PIMEINFOEX pImeInfoEx);
3066
3067 DWORD
3068 NTAPI
3069 NtUserSetImeOwnerWindow(
3070 DWORD Unknown0,
3071 DWORD Unknown1);
3072
3073 DWORD
3074 NTAPI
3075 NtUserSetInformationProcess(
3076 DWORD dwUnknown1,
3077 DWORD dwUnknown2,
3078 DWORD dwUnknown3,
3079 DWORD dwUnknown4);
3080
3081 NTSTATUS
3082 NTAPI
3083 NtUserSetInformationThread(
3084 IN HANDLE ThreadHandle,
3085 IN USERTHREADINFOCLASS ThreadInformationClass,
3086 IN PVOID ThreadInformation,
3087 IN ULONG ThreadInformationLength);
3088
3089 DWORD
3090 NTAPI
3091 NtUserSetInternalWindowPos(
3092 HWND hwnd,
3093 UINT showCmd,
3094 LPRECT rect,
3095 LPPOINT pt);
3096
3097 BOOL
3098 NTAPI
3099 NtUserSetKeyboardState(
3100 LPBYTE lpKeyState);
3101
3102 BOOL
3103 NTAPI
3104 NtUserSetLayeredWindowAttributes(
3105 HWND hwnd,
3106 COLORREF crKey,
3107 BYTE bAlpha,
3108 DWORD dwFlags);
3109
3110 BOOL
3111 NTAPI
3112 NtUserSetLogonNotifyWindow(
3113 HWND hWnd);
3114
3115 BOOL
3116 NTAPI
3117 NtUserSetObjectInformation(
3118 HANDLE hObject,
3119 DWORD nIndex,
3120 PVOID pvInformation,
3121 DWORD nLength);
3122
3123 HWND
3124 NTAPI
3125 NtUserSetParent(
3126 HWND hWndChild,
3127 HWND hWndNewParent);
3128
3129 BOOL
3130 NTAPI
3131 NtUserSetProcessWindowStation(
3132 HWINSTA hWindowStation);
3133
3134 BOOL
3135 NTAPI
3136 NtUserSetProp(
3137 HWND hWnd,
3138 ATOM Atom,
3139 HANDLE Data);
3140
3141 DWORD
3142 NTAPI
3143 NtUserSetRipFlags(
3144 DWORD Unknown0);
3145
3146 DWORD
3147 NTAPI
3148 NtUserSetScrollInfo(
3149 HWND hwnd,
3150 int fnBar,
3151 LPCSCROLLINFO lpsi,
3152 BOOL bRedraw);
3153
3154 BOOL
3155 NTAPI
3156 NtUserSetShellWindowEx(
3157 HWND hwndShell,
3158 HWND hwndShellListView);
3159
3160 BOOL
3161 NTAPI
3162 NtUserSetSysColors(
3163 int cElements,
3164 IN CONST INT *lpaElements,
3165 IN CONST COLORREF *lpaRgbValues,
3166 FLONG Flags);
3167
3168 BOOL
3169 NTAPI
3170 NtUserSetSystemCursor(
3171 HCURSOR hcur,
3172 DWORD id);
3173
3174 BOOL
3175 NTAPI
3176 NtUserSetThreadDesktop(
3177 HDESK hDesktop);
3178
3179 DWORD
3180 NTAPI
3181 NtUserSetThreadState(
3182 DWORD Unknown0,
3183 DWORD Unknown1);
3184
3185 UINT_PTR
3186 NTAPI
3187 NtUserSetSystemTimer(
3188 HWND hWnd,
3189 UINT_PTR nIDEvent,
3190 UINT uElapse,
3191 TIMERPROC lpTimerFunc);
3192
3193 DWORD
3194 NTAPI
3195 NtUserSetThreadLayoutHandles(
3196 DWORD dwUnknown1,
3197 DWORD dwUnknown2);
3198
3199 UINT_PTR
3200 NTAPI
3201 NtUserSetTimer(
3202 HWND hWnd,
3203 UINT_PTR nIDEvent,
3204 UINT uElapse,
3205 TIMERPROC lpTimerFunc);
3206
3207 BOOL
3208 NTAPI
3209 NtUserSetWindowFNID(
3210 HWND hWnd,
3211 WORD fnID);
3212
3213 LONG
3214 NTAPI
3215 NtUserSetWindowLong(
3216 HWND hWnd,
3217 DWORD Index,
3218 LONG NewValue,
3219 BOOL Ansi);
3220
3221 BOOL
3222 NTAPI
3223 NtUserSetWindowPlacement(
3224 HWND hWnd,
3225 WINDOWPLACEMENT *lpwndpl);
3226
3227 BOOL
3228 NTAPI
3229 NtUserSetWindowPos(
3230 HWND hWnd,
3231 HWND hWndInsertAfter,
3232 int X,
3233 int Y,
3234 int cx,
3235 int cy,
3236 UINT uFlags);
3237
3238 INT
3239 NTAPI
3240 NtUserSetWindowRgn(
3241 HWND hWnd,
3242 HRGN hRgn,
3243 BOOL bRedraw);
3244
3245 HHOOK
3246 NTAPI
3247 NtUserSetWindowsHookAW(
3248 int idHook,
3249 HOOKPROC lpfn,
3250 BOOL Ansi);
3251
3252 HHOOK
3253 NTAPI
3254 NtUserSetWindowsHookEx(
3255 HINSTANCE Mod,
3256 PUNICODE_STRING ModuleName,
3257 DWORD ThreadId,
3258 int HookId,
3259 HOOKPROC HookProc,
3260 BOOL Ansi);
3261
3262 BOOL
3263 NTAPI
3264 NtUserSetWindowStationUser(
3265 HWINSTA hWindowStation,
3266 PLUID pluid,
3267 PSID psid,
3268 DWORD size);
3269
3270 WORD
3271 NTAPI
3272 NtUserSetWindowWord(
3273 HWND hWnd,
3274 INT Index,
3275 WORD NewVal);
3276
3277 HWINEVENTHOOK
3278 NTAPI
3279 NtUserSetWinEventHook(
3280 UINT eventMin,
3281 UINT eventMax,
3282 HMODULE hmodWinEventProc,
3283 PUNICODE_STRING puString,
3284 WINEVENTPROC lpfnWinEventProc,
3285 DWORD idProcess,
3286 DWORD idThread,
3287 UINT dwflags);
3288
3289 BOOL
3290 NTAPI
3291 NtUserShowCaret(
3292 HWND hWnd);
3293
3294 BOOL
3295 NTAPI
3296 NtUserHideCaret(
3297 HWND hWnd);
3298
3299 DWORD
3300 NTAPI
3301 NtUserShowScrollBar(
3302 HWND hWnd,
3303 int wBar,
3304 DWORD bShow);
3305
3306 BOOL
3307 NTAPI
3308 NtUserShowWindow(
3309 HWND hWnd,
3310 LONG nCmdShow);
3311
3312 BOOL
3313 NTAPI
3314 NtUserShowWindowAsync(
3315 HWND hWnd,
3316 LONG nCmdShow);
3317
3318 BOOL
3319 NTAPI
3320 NtUserSoundSentry(VOID);
3321
3322 BOOL
3323 NTAPI
3324 NtUserSwitchDesktop(
3325 HDESK hDesktop);
3326
3327 BOOL
3328 NTAPI
3329 NtUserSystemParametersInfo(
3330 UINT uiAction,
3331 UINT uiParam,
3332 PVOID pvParam,
3333 UINT fWinIni);
3334
3335 DWORD
3336 NTAPI
3337 NtUserTestForInteractiveUser(
3338 DWORD dwUnknown1);
3339
3340 INT
3341 NTAPI
3342 NtUserToUnicodeEx(
3343 UINT wVirtKey,
3344 UINT wScanCode,
3345 PBYTE lpKeyState,
3346 LPWSTR pwszBuff,
3347 int cchBuff,
3348 UINT wFlags,
3349 HKL dwhkl);
3350
3351 BOOL
3352 NTAPI
3353 NtUserTrackMouseEvent(
3354 LPTRACKMOUSEEVENT lpEventTrack);
3355
3356 int
3357 NTAPI
3358 NtUserTranslateAccelerator(
3359 HWND Window,
3360 HACCEL Table,
3361 LPMSG Message);
3362
3363 BOOL
3364 NTAPI
3365 NtUserTranslateMessage(
3366 LPMSG lpMsg,
3367 UINT flags );
3368
3369 BOOL
3370 NTAPI
3371 NtUserUnhookWindowsHookEx(
3372 HHOOK Hook);
3373
3374 BOOL
3375 NTAPI
3376 NtUserUnhookWinEvent(
3377 HWINEVENTHOOK hWinEventHook);
3378
3379 BOOL
3380 NTAPI
3381 NtUserUnloadKeyboardLayout(
3382 HKL hKl);
3383
3384 BOOL
3385 NTAPI
3386 NtUserUnlockWindowStation(
3387 HWINSTA hWindowStation);
3388
3389 BOOL
3390 NTAPI
3391 NtUserUnregisterClass(
3392 PUNICODE_STRING ClassNameOrAtom,
3393 HINSTANCE hInstance,
3394 PCLSMENUNAME pClassMenuName);
3395
3396 BOOL
3397 NTAPI
3398 NtUserUnregisterHotKey(
3399 HWND hWnd,
3400 int id);
3401
3402 BOOL
3403 NTAPI
3404 NtUserUnregisterUserApiHook(VOID);
3405
3406 DWORD
3407 NTAPI
3408 NtUserUpdateInputContext(
3409 DWORD Unknown0,
3410 DWORD Unknown1,
3411 DWORD Unknown2);
3412
3413 DWORD
3414 NTAPI
3415 NtUserUpdateInstance(
3416 DWORD Unknown0,
3417 DWORD Unknown1,
3418 DWORD Unknown2);
3419
3420 BOOL
3421 NTAPI
3422 NtUserUpdateLayeredWindow(
3423 HWND hwnd,
3424 HDC hdcDst,
3425 POINT *pptDst,
3426 SIZE *psize,
3427 HDC hdcSrc,
3428 POINT *pptSrc,
3429 COLORREF crKey,
3430 BLENDFUNCTION *pblend,
3431 DWORD dwFlags,
3432 RECT *prcDirty);
3433
3434 BOOL
3435 NTAPI
3436 NtUserUpdatePerUserSystemParameters(
3437 DWORD dwReserved,
3438 BOOL bEnable);
3439
3440 BOOL
3441 NTAPI
3442 NtUserUserHandleGrantAccess(
3443 IN HANDLE hUserHandle,
3444 IN HANDLE hJob,
3445 IN BOOL bGrant);
3446
3447 BOOL
3448 NTAPI
3449 NtUserValidateHandleSecure(
3450 HANDLE hHdl);
3451
3452 BOOL
3453 NTAPI
3454 NtUserValidateRect(
3455 HWND hWnd,
3456 CONST RECT *lpRect);
3457
3458 BOOL
3459 APIENTRY
3460 NtUserValidateTimerCallback(
3461 LPARAM lParam);
3462
3463 DWORD
3464 NTAPI
3465 NtUserVkKeyScanEx(
3466 WCHAR wChar,
3467 HKL KeyboardLayout,
3468 BOOL bUsehHK);
3469
3470 DWORD
3471 NTAPI
3472 NtUserWaitForInputIdle(
3473 IN HANDLE hProcess,
3474 IN DWORD dwMilliseconds,
3475 IN BOOL Unknown2); /* Always FALSE */
3476
3477 DWORD
3478 NTAPI
3479 NtUserWaitForMsgAndEvent(
3480 DWORD Unknown0);
3481
3482 BOOL
3483 NTAPI
3484 NtUserWaitMessage(VOID);
3485
3486 DWORD
3487 NTAPI
3488 NtUserWin32PoolAllocationStats(
3489 DWORD Unknown0,
3490 DWORD Unknown1,
3491 DWORD Unknown2,
3492 DWORD Unknown3,
3493 DWORD Unknown4,
3494 DWORD Unknown5);
3495
3496 HWND
3497 NTAPI
3498 NtUserWindowFromPoint(
3499 LONG X,
3500 LONG Y);
3501
3502 DWORD
3503 NTAPI
3504 NtUserYieldTask(VOID);
3505
3506 /* NtUserBad
3507 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3508 */
3509
3510 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3511 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3512 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3513 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3514 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3515 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3516
3517 #define MSQ_STATE_CAPTURE 0x1
3518 #define MSQ_STATE_ACTIVE 0x2
3519 #define MSQ_STATE_FOCUS 0x3
3520 #define MSQ_STATE_MENUOWNER 0x4
3521 #define MSQ_STATE_MOVESIZE 0x5
3522 #define MSQ_STATE_CARET 0x6
3523
3524 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3525 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3526
3527 BOOL
3528 NTAPI
3529 NtUserGetMonitorInfo(
3530 IN HMONITOR hMonitor,
3531 OUT LPMONITORINFO pMonitorInfo);
3532
3533 /* Should be done in usermode */
3534
3535 HMONITOR
3536 NTAPI
3537 NtUserMonitorFromPoint(
3538 IN POINT point,
3539 IN DWORD dwFlags);
3540
3541 HMONITOR
3542 NTAPI
3543 NtUserMonitorFromRect(
3544 IN LPCRECT pRect,
3545 IN DWORD dwFlags);
3546
3547 HMONITOR
3548 NTAPI
3549 NtUserMonitorFromWindow(
3550 IN HWND hWnd,
3551 IN DWORD dwFlags);
3552
3553 typedef struct _SETSCROLLBARINFO
3554 {
3555 int nTrackPos;
3556 int reserved;
3557 DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
3558 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3559
3560 BOOL
3561 NTAPI
3562 NtUserSetScrollBarInfo(
3563 HWND hwnd,
3564 LONG idObject,
3565 SETSCROLLBARINFO *info);
3566
3567 #endif /* __WIN32K_NTUSER_H */
3568
3569 /* EOF */