[WIN32SS] Fix the fix by removing the correct parameter. The NtUserChangeDisplaySetti...
[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 typedef struct _PROPERTY
1033 {
1034 LIST_ENTRY PropListEntry;
1035 HANDLE Data;
1036 ATOM Atom;
1037 WORD fs;
1038 } PROPERTY, *PPROPERTY;
1039
1040 typedef struct _BROADCASTPARM
1041 {
1042 DWORD flags;
1043 DWORD recipients;
1044 HDESK hDesk;
1045 HWND hWnd;
1046 LUID luid;
1047 } BROADCASTPARM, *PBROADCASTPARM;
1048
1049 struct _THREADINFO *GetW32ThreadInfo(VOID);
1050 struct _PROCESSINFO *GetW32ProcessInfo(VOID);
1051
1052 typedef struct _WNDMSG
1053 {
1054 DWORD maxMsgs;
1055 PINT abMsgs;
1056 } WNDMSG, *PWNDMSG;
1057
1058 typedef struct _SHAREDINFO
1059 {
1060 PSERVERINFO psi; /* global Server Info */
1061 PVOID aheList; /* Handle Entry List */
1062 PVOID pDispInfo; /* global PDISPLAYINFO pointer */
1063 ULONG_PTR ulSharedDelta; /* Heap delta */
1064 WNDMSG awmControl[FNID_LAST - FNID_FIRST];
1065 WNDMSG DefWindowMsgs;
1066 WNDMSG DefWindowSpecMsgs;
1067 } SHAREDINFO, *PSHAREDINFO;
1068
1069 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */
1070 typedef struct _USERCONNECT
1071 {
1072 ULONG ulVersion;
1073 ULONG ulCurrentVersion;
1074 DWORD dwDispatchCount;
1075 SHAREDINFO siClient;
1076 } USERCONNECT, *PUSERCONNECT;
1077
1078 /* WinNT 5.0 compatible user32 / win32k */
1079 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1080
1081 #if defined(_M_IX86)
1082 C_ASSERT(sizeof(USERCONNECT) == 0x124);
1083 #endif
1084
1085 typedef struct tagGETCLIPBDATA
1086 {
1087 UINT uFmtRet;
1088 BOOL fGlobalHandle;
1089 union
1090 {
1091 HANDLE hLocale;
1092 HANDLE hPalette;
1093 };
1094 } GETCLIPBDATA, *PGETCLIPBDATA;
1095
1096 typedef struct tagSETCLIPBDATA
1097 {
1098 BOOL fGlobalHandle;
1099 BOOL fIncSerialNumber;
1100 } SETCLIPBDATA, *PSETCLIPBDATA;
1101
1102 /* Used with NtUserSetCursorIconData, last parameter. */
1103 typedef struct tagCURSORDATA
1104 {
1105 LPWSTR lpName;
1106 LPWSTR lpModName;
1107 USHORT rt;
1108 USHORT dummy;
1109 ULONG CURSORF_flags;
1110 SHORT xHotspot;
1111 SHORT yHotspot;
1112 HBITMAP hbmMask;
1113 HBITMAP hbmColor;
1114 HBITMAP hbmAlpha;
1115 RECT rcBounds;
1116 HBITMAP hbmUserAlpha; /* Could be in W7U, not in W2k */
1117 ULONG bpp;
1118 ULONG cx;
1119 ULONG cy;
1120 UINT cpcur;
1121 UINT cicur;
1122 struct tagCURSORDATA *aspcur;
1123 DWORD *aicur;
1124 INT *ajifRate;
1125 UINT iicur;
1126 } CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
1127
1128 /* CURSORF_flags: */
1129 #define CURSORF_FROMRESOURCE 0x0001
1130 #define CURSORF_GLOBAL 0x0002
1131 #define CURSORF_LRSHARED 0x0004
1132 #define CURSORF_ACON 0x0008
1133 #define CURSORF_WOWCLEANUP 0x0010
1134 #define CURSORF_ACONFRAME 0x0040
1135 #define CURSORF_SECRET 0x0080
1136 #define CURSORF_LINKED 0x0100
1137 #define CURSORF_CURRENT 0x0200
1138
1139 typedef struct tagIMEINFOEX
1140 {
1141 HKL hkl;
1142 IMEINFO ImeInfo;
1143 WCHAR wszUIClass[16];
1144 ULONG fdwInitConvMode;
1145 INT fInitOpen;
1146 INT fLoadFlag;
1147 DWORD dwProdVersion;
1148 DWORD dwImeWinVersion;
1149 WCHAR wszImeDescription[50];
1150 WCHAR wszImeFile[80];
1151 struct
1152 {
1153 INT fSysWow64Only:1;
1154 INT fCUASLayer:1;
1155 };
1156 } IMEINFOEX, *PIMEINFOEX;
1157
1158 typedef struct tagIMEUI
1159 {
1160 PWND spwnd;
1161 HIMC hIMC;
1162 HWND hwndIMC;
1163 HKL hKL;
1164 HWND hwndUI;
1165 INT nCntInIMEProc;
1166 struct {
1167 UINT fShowStatus:1;
1168 UINT fActivate:1;
1169 UINT fDestroy:1;
1170 UINT fDefault:1;
1171 UINT fChildThreadDef:1;
1172 UINT fCtrlShowStatus:1;
1173 UINT fFreeActiveEvent:1;
1174 };
1175 } IMEUI, *PIMEUI;
1176
1177 /* Window Extra data container. */
1178 typedef struct _IMEWND
1179 {
1180 WND;
1181 PIMEUI pimeui;
1182 } IMEWND, *PIMEWND;
1183
1184 DWORD
1185 NTAPI
1186 NtUserAssociateInputContext(
1187 DWORD dwUnknown1,
1188 DWORD dwUnknown2,
1189 DWORD dwUnknown3);
1190
1191 DWORD
1192 NTAPI
1193 NtUserBuildHimcList(
1194 DWORD dwUnknown1,
1195 DWORD dwUnknown2,
1196 DWORD dwUnknown3,
1197 DWORD dwUnknown4);
1198
1199 DWORD
1200 NTAPI
1201 NtUserCalcMenuBar(
1202 DWORD dwUnknown1,
1203 DWORD dwUnknown2,
1204 DWORD dwUnknown3,
1205 DWORD dwUnknown4,
1206 DWORD dwUnknown5);
1207
1208 DWORD
1209 NTAPI
1210 NtUserCheckMenuItem(
1211 HMENU hmenu,
1212 UINT uIDCheckItem,
1213 UINT uCheck);
1214
1215 DWORD
1216 NTAPI
1217 NtUserCtxDisplayIOCtl(
1218 DWORD dwUnknown1,
1219 DWORD dwUnknown2,
1220 DWORD dwUnknown3);
1221
1222 DWORD
1223 APIENTRY
1224 NtUserDbgWin32HeapFail(
1225 DWORD Unknown0,
1226 DWORD Unknown1);
1227
1228 DWORD
1229 APIENTRY
1230 NtUserDbgWin32HeapStat(
1231 DWORD Unknown0,
1232 DWORD Unknown1);
1233
1234 BOOL
1235 NTAPI
1236 NtUserDeleteMenu(
1237 HMENU hMenu,
1238 UINT uPosition,
1239 UINT uFlags);
1240
1241 BOOL
1242 NTAPI
1243 NtUserDestroyMenu(
1244 HMENU hMenu);
1245
1246 DWORD
1247 NTAPI
1248 NtUserDrawMenuBarTemp(
1249 HWND hWnd,
1250 HDC hDC,
1251 PRECT hRect,
1252 HMENU hMenu,
1253 HFONT hFont);
1254
1255 UINT
1256 NTAPI
1257 NtUserEnableMenuItem(
1258 HMENU hMenu,
1259 UINT uIDEnableItem,
1260 UINT uEnable);
1261
1262 BOOL
1263 NTAPI
1264 NtUserEndMenu(VOID);
1265
1266 BOOL
1267 NTAPI
1268 NtUserGetMenuBarInfo(
1269 HWND hwnd,
1270 LONG idObject,
1271 LONG idItem,
1272 PMENUBARINFO pmbi);
1273
1274 UINT
1275 NTAPI
1276 NtUserGetMenuIndex(
1277 HMENU hMenu,
1278 HMENU hSubMenu);
1279
1280 BOOL
1281 NTAPI
1282 NtUserGetMenuItemRect(
1283 HWND hWnd,
1284 HMENU hMenu,
1285 UINT uItem,
1286 LPRECT lprcItem);
1287
1288 HMENU
1289 NTAPI
1290 NtUserGetSystemMenu(
1291 HWND hWnd,
1292 BOOL bRevert);
1293
1294 BOOL
1295 NTAPI
1296 NtUserHiliteMenuItem(
1297 HWND hWnd,
1298 HMENU hMenu,
1299 UINT uItemHilite,
1300 UINT uHilite);
1301
1302 int
1303 NTAPI
1304 NtUserMenuItemFromPoint(
1305 HWND hWnd,
1306 HMENU hMenu,
1307 DWORD X,
1308 DWORD Y);
1309
1310 BOOL
1311 NTAPI
1312 NtUserRemoveMenu(
1313 HMENU hMenu,
1314 UINT uPosition,
1315 UINT uFlags);
1316
1317 BOOL
1318 NTAPI
1319 NtUserSetMenu(
1320 HWND hWnd,
1321 HMENU hMenu,
1322 BOOL bRepaint);
1323
1324 BOOL
1325 NTAPI
1326 NtUserSetMenuContextHelpId(
1327 HMENU hmenu,
1328 DWORD dwContextHelpId);
1329
1330 BOOL
1331 NTAPI
1332 NtUserSetMenuDefaultItem(
1333 HMENU hMenu,
1334 UINT uItem,
1335 UINT fByPos);
1336
1337 BOOL
1338 NTAPI
1339 NtUserSetMenuFlagRtoL(
1340 HMENU hMenu);
1341
1342 BOOL
1343 NTAPI
1344 NtUserSetSystemMenu(
1345 HWND hWnd,
1346 HMENU hMenu);
1347
1348 BOOL
1349 NTAPI
1350 NtUserThunkedMenuInfo(
1351 HMENU hMenu,
1352 LPCMENUINFO lpcmi);
1353
1354 BOOL
1355 NTAPI
1356 NtUserThunkedMenuItemInfo(
1357 HMENU hMenu,
1358 UINT uItem,
1359 BOOL fByPosition,
1360 BOOL bInsert,
1361 LPMENUITEMINFOW lpmii,
1362 PUNICODE_STRING lpszCaption);
1363
1364 BOOL
1365 NTAPI
1366 NtUserTrackPopupMenuEx(
1367 HMENU hmenu,
1368 UINT fuFlags,
1369 int x,
1370 int y,
1371 HWND hwnd,
1372 LPTPMPARAMS lptpm);
1373
1374 HKL
1375 NTAPI
1376 NtUserActivateKeyboardLayout(
1377 HKL hKl,
1378 ULONG Flags);
1379
1380 DWORD
1381 NTAPI
1382 NtUserAlterWindowStyle(
1383 HWND hWnd,
1384 DWORD Index,
1385 LONG NewValue);
1386
1387 BOOL
1388 NTAPI
1389 NtUserAttachThreadInput(
1390 IN DWORD idAttach,
1391 IN DWORD idAttachTo,
1392 IN BOOL fAttach);
1393
1394 HDC NTAPI
1395 NtUserBeginPaint(
1396 HWND hWnd,
1397 PAINTSTRUCT *lPs);
1398
1399 BOOL
1400 NTAPI
1401 NtUserBitBltSysBmp(
1402 HDC hdc,
1403 INT nXDest,
1404 INT nYDest,
1405 INT nWidth,
1406 INT nHeight,
1407 INT nXSrc,
1408 INT nYSrc,
1409 DWORD dwRop);
1410
1411 BOOL
1412 NTAPI
1413 NtUserBlockInput(
1414 BOOL BlockIt);
1415
1416 NTSTATUS
1417 NTAPI
1418 NtUserBuildHwndList(
1419 HDESK hDesktop,
1420 HWND hwndParent,
1421 BOOLEAN bChildren,
1422 ULONG dwThreadId,
1423 ULONG lParam,
1424 HWND *pWnd,
1425 ULONG *pBufSize);
1426
1427 NTSTATUS
1428 NTAPI
1429 NtUserBuildNameList(
1430 HWINSTA hWinSta,
1431 ULONG dwSize,
1432 PVOID lpBuffer,
1433 PULONG pRequiredSize);
1434
1435 NTSTATUS
1436 NTAPI
1437 NtUserBuildPropList(
1438 HWND hWnd,
1439 LPVOID Buffer,
1440 DWORD BufferSize,
1441 DWORD *Count);
1442
1443 /* apfnSimpleCall indices from Windows XP SP 2 */
1444 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1445 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
1446
1447 enum SimpleCallRoutines
1448 {
1449 NOPARAM_ROUTINE_CREATEMENU,
1450 NOPARAM_ROUTINE_CREATEMENUPOPUP,
1451 #if (WIN32K_VERSION >= NTDDI_VISTA)
1452 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1453 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1454 NOPARAM_ROUTINE_CREATESYSTEMTHREADS,
1455 NOPARAM_ROUTINE_DESTROY_CARET,
1456 #endif
1457 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,
1458 #if (WIN32K_VERSION < NTDDI_VISTA)
1459 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1460 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1461 NOPARAM_ROUTINE_DESTROY_CARET,
1462 #endif
1463 NOPARAM_ROUTINE_GETDEVICECHANGEINFO,
1464 NOPARAM_ROUTINE_GETIMESHOWSTATUS,
1465 NOPARAM_ROUTINE_GETINPUTDESKTOP,
1466 NOPARAM_ROUTINE_GETMSESSAGEPOS,
1467 #if (WIN32K_VERSION >= NTDDI_VISTA)
1468 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1469 #else
1470 NOPARAM_ROUTINE_GETREMOTEPROCESSID,
1471 #endif
1472 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE,
1473 NOPARAM_ROUTINE_LOADCURSANDICOS,
1474 #if (WIN32K_VERSION >= NTDDI_VISTA)
1475 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1476 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */
1477 #endif
1478 NOPARAM_ROUTINE_RELEASECAPTURE,
1479 NOPARAM_ROUTINE_RESETDBLCLICK,
1480 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS,
1481 NOPARAM_ROUTINE_REMOTECONSHDWSTOP,
1482 NOPARAM_ROUTINE_REMOTEDISCONNECT,
1483 NOPARAM_ROUTINE_REMOTELOGOFF,
1484 NOPARAM_ROUTINE_REMOTENTSECURITY,
1485 NOPARAM_ROUTINE_REMOTESHDWSETUP,
1486 NOPARAM_ROUTINE_REMOTESHDWSTOP,
1487 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE,
1488 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE,
1489 NOPARAM_ROUTINE_REMOTECONNECTSTATE,
1490 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING,
1491 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,
1492 #if (WIN32K_VERSION >= NTDDI_VISTA)
1493 NOPARAM_ROUTINE_WAKERITFORSHTDWN,
1494 #endif
1495 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP,
1496 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,
1497 #if (WIN32K_VERSION < NTDDI_VISTA)
1498 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1499 #endif
1500 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,
1501 #if (WIN32K_VERSION >= NTDDI_VISTA)
1502 ONEPARAM_ROUTINE_GETSENDMSGRECVR,
1503 #endif
1504 ONEPARAM_ROUTINE_WINDOWFROMDC,
1505 ONEPARAM_ROUTINE_ALLOWSETFOREGND,
1506 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,
1507 #if (WIN32K_VERSION < NTDDI_VISTA)
1508 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
1509 #endif
1510 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE,
1511 ONEPARAM_ROUTINE_DIRECTEDYIELD,
1512 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,
1513 #if (WIN32K_VERSION < NTDDI_VISTA)
1514 ONEPARAM_ROUTINE_GETCURSORPOS,
1515 #endif
1516 ONEPARAM_ROUTINE_GETINPUTEVENT,
1517 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT,
1518 ONEPARAM_ROUTINE_GETKEYBOARDTYPE,
1519 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT,
1520 ONEPARAM_ROUTINE_GETQUEUESTATUS,
1521 ONEPARAM_ROUTINE_GETWINSTAINFO,
1522 #if (WIN32K_VERSION < NTDDI_VISTA)
1523 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1524 #endif
1525 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW,
1526 ONEPARAM_ROUTINE_LOADFONTS,
1527 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT,
1528 ONEPARAM_ROUTINE_MESSAGEBEEP,
1529 ONEPARAM_ROUTINE_PLAYEVENTSOUND,
1530 ONEPARAM_ROUTINE_POSTQUITMESSAGE,
1531 #if (WIN32K_VERSION < NTDDI_VISTA)
1532 ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
1533 #endif
1534 ONEPARAM_ROUTINE_REALIZEPALETTE,
1535 ONEPARAM_ROUTINE_REGISTERLPK,
1536 #if (WIN32K_VERSION >= NTDDI_VISTA)
1537 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1538 #endif
1539 ONEPARAM_ROUTINE_REMOTERECONNECT,
1540 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS,
1541 ONEPARAM_ROUTINE_RELEASEDC,
1542 #if (WIN32K_VERSION >= NTDDI_VISTA)
1543 ONEPARAM_ROUTINE_REMOTENOTIFY,
1544 #endif
1545 ONEPARAM_ROUTINE_REPLYMESSAGE,
1546 ONEPARAM_ROUTINE_SETCARETBLINKTIME,
1547 ONEPARAM_ROUTINE_SETDBLCLICKTIME,
1548 #if (WIN32K_VERSION < NTDDI_VISTA)
1549 ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
1550 #endif
1551 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO,
1552 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,
1553 #if (WIN32K_VERSION >= NTDDI_VISTA)
1554 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,
1555 #endif
1556 ONEPARAM_ROUTINE_SHOWCURSOR,
1557 ONEPARAM_ROUTINE_SHOWSTARTGLASS,
1558 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON,
1559 X_ROUTINE_WOWMODULEUNLOAD,
1560 #if (WIN32K_VERSION < NTDDI_VISTA)
1561 X_ROUTINE_REMOTENOTIFY,
1562 #endif
1563 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW,
1564 HWND_ROUTINE_DWP_GETENABLEDPOPUP,
1565 HWND_ROUTINE_GETWNDCONTEXTHLPID,
1566 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
1567 HWND_ROUTINE_SETMSGBOX,
1568 HWNDOPT_ROUTINE_SETPROGMANWINDOW,
1569 HWNDOPT_ROUTINE_SETTASKMANWINDOW,
1570 HWNDPARAM_ROUTINE_GETCLASSICOCUR,
1571 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE,
1572 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER,
1573 HWNDPARAM_ROUTINE_SETDIALOGPOINTER,
1574 HWNDPARAM_ROUTINE_SETVISIBLE,
1575 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID,
1576 HWNDPARAM_ROUTINE_SETWINDOWSTATE,
1577 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
1578 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS,
1579 HWNDLOCK_ROUTINE_DRAWMENUBAR,
1580 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD,
1581 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE,
1582 HWNDLOCK_ROUTINE_REDRAWFRAME,
1583 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK,
1584 HWNDLOCK_ROUTINE_SETDLGSYSMENU,
1585 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW,
1586 HWNDLOCK_ROUTINE_SETSYSMENU,
1587 HWNDLOCK_ROUTINE_UPDATECKIENTRECT,
1588 HWNDLOCK_ROUTINE_UPDATEWINDOW,
1589 X_ROUTINE_IMESHOWSTATUSCHANGE,
1590 TWOPARAM_ROUTINE_ENABLEWINDOW,
1591 TWOPARAM_ROUTINE_REDRAWTITLE,
1592 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS,
1593 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW,
1594 TWOPARAM_ROUTINE_UPDATEWINDOWS,
1595 TWOPARAM_ROUTINE_VALIDATERGN,
1596 #if (WIN32K_VERSION >= NTDDI_VISTA)
1597 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER,
1598 TWOPARAM_ROUTINE_GETCURSORPOS,
1599 #endif
1600 TWOPARAM_ROUTINE_GETHDEVNAME,
1601 TWOPARAM_ROUTINE_INITANSIOEM,
1602 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,
1603 #if (WIN32K_VERSION >= NTDDI_VISTA)
1604 TWOPARAM_ROUTINE_REGISTERGHSTWND,
1605 #endif
1606 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,
1607 #if (WIN32K_VERSION >= NTDDI_VISTA)
1608 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,
1609 #else
1610 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1611 #endif
1612 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS,
1613 TWOPARAM_ROUTINE_SHADOWCLEANUP,
1614 TWOPARAM_ROUTINE_REMOTESHADOWSTART,
1615 TWOPARAM_ROUTINE_SETCARETPOS,
1616 TWOPARAM_ROUTINE_SETCURSORPOS,
1617 #if (WIN32K_VERSION >= NTDDI_VISTA)
1618 TWOPARAM_ROUTINE_SETPHYSCURSORPOS,
1619 #endif
1620 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK,
1621 TWOPARAM_ROUTINE_WOWCLEANUP
1622 };
1623
1624 DWORD
1625 NTAPI
1626 NtUserCallHwnd(
1627 HWND hWnd,
1628 DWORD Routine);
1629
1630 BOOL
1631 NTAPI
1632 NtUserCallHwndLock(
1633 HWND hWnd,
1634 DWORD Routine);
1635
1636 HWND
1637 NTAPI
1638 NtUserCallHwndOpt(
1639 HWND hWnd,
1640 DWORD Routine);
1641
1642 DWORD
1643 NTAPI
1644 NtUserCallHwndParam(
1645 HWND hWnd,
1646 DWORD Param,
1647 DWORD Routine);
1648
1649 DWORD
1650 NTAPI
1651 NtUserCallHwndParamLock(
1652 HWND hWnd,
1653 DWORD Param,
1654 DWORD Routine);
1655
1656 BOOL
1657 NTAPI
1658 NtUserCallMsgFilter(
1659 LPMSG msg,
1660 INT code);
1661
1662 LRESULT
1663 NTAPI
1664 NtUserCallNextHookEx(
1665 int Code,
1666 WPARAM wParam,
1667 LPARAM lParam,
1668 BOOL Ansi);
1669
1670 DWORD_PTR
1671 NTAPI
1672 NtUserCallNoParam(
1673 DWORD Routine);
1674
1675 DWORD_PTR
1676 NTAPI
1677 NtUserCallOneParam(
1678 DWORD_PTR Param,
1679 DWORD Routine);
1680
1681 DWORD_PTR
1682 NTAPI
1683 NtUserCallTwoParam(
1684 DWORD_PTR Param1,
1685 DWORD_PTR Param2,
1686 DWORD Routine);
1687
1688 BOOL
1689 NTAPI
1690 NtUserChangeClipboardChain(
1691 HWND hWndRemove,
1692 HWND hWndNewNext);
1693
1694 LONG
1695 NTAPI
1696 NtUserChangeDisplaySettings(
1697 PUNICODE_STRING lpszDeviceName,
1698 LPDEVMODEW lpDevMode,
1699 DWORD dwflags,
1700 LPVOID lParam);
1701
1702 BOOL
1703 NTAPI
1704 NtUserCheckDesktopByThreadId(
1705 DWORD dwThreadId);
1706
1707 BOOL
1708 NTAPI
1709 NtUserCheckWindowThreadDesktop(
1710 HWND hwnd,
1711 DWORD dwThreadId,
1712 ULONG ReturnValue);
1713
1714 DWORD
1715 NTAPI
1716 NtUserCheckImeHotKey(
1717 DWORD dwUnknown1,
1718 LPARAM dwUnknown2);
1719
1720 HWND NTAPI
1721 NtUserChildWindowFromPointEx(
1722 HWND Parent,
1723 LONG x,
1724 LONG y,
1725 UINT Flags);
1726
1727 BOOL
1728 NTAPI
1729 NtUserClipCursor(
1730 RECT *lpRect);
1731
1732 BOOL
1733 NTAPI
1734 NtUserCloseClipboard(VOID);
1735
1736 BOOL
1737 NTAPI
1738 NtUserCloseDesktop(
1739 HDESK hDesktop);
1740
1741 BOOL
1742 NTAPI
1743 NtUserCloseWindowStation(
1744 HWINSTA hWinSta);
1745
1746 /* Console commands for NtUserConsoleControl */
1747 typedef enum _CONSOLECONTROL
1748 {
1749 ConsoleCtrlDesktopConsoleThread = 0,
1750 GuiConsoleWndClassAtom = 1,
1751 ConsoleMakePalettePublic = 5,
1752 ConsoleAcquireDisplayOwnership,
1753 } CONSOLECONTROL, *PCONSOLECONTROL;
1754
1755 typedef struct _DESKTOP_CONSOLE_THREAD
1756 {
1757 HDESK DesktopHandle;
1758 ULONG_PTR ThreadId;
1759 } DESKTOP_CONSOLE_THREAD, *PDESKTOP_CONSOLE_THREAD;
1760
1761 NTSTATUS
1762 APIENTRY
1763 NtUserConsoleControl(
1764 IN CONSOLECONTROL ConsoleCtrl,
1765 IN PVOID ConsoleCtrlInfo,
1766 IN ULONG ConsoleCtrlInfoLength);
1767
1768 HANDLE
1769 NTAPI
1770 NtUserConvertMemHandle(
1771 PVOID pData,
1772 DWORD cbData);
1773
1774 ULONG
1775 NTAPI
1776 NtUserCopyAcceleratorTable(
1777 HACCEL Table,
1778 LPACCEL Entries,
1779 ULONG EntriesCount);
1780
1781 DWORD
1782 NTAPI
1783 NtUserCountClipboardFormats(VOID);
1784
1785 HACCEL
1786 NTAPI
1787 NtUserCreateAcceleratorTable(
1788 LPACCEL Entries,
1789 ULONG EntriesCount);
1790
1791 BOOL
1792 NTAPI
1793 NtUserCreateCaret(
1794 HWND hWnd,
1795 HBITMAP hBitmap,
1796 int nWidth,
1797 int nHeight);
1798
1799 HDESK
1800 NTAPI
1801 NtUserCreateDesktop(
1802 POBJECT_ATTRIBUTES poa,
1803 PUNICODE_STRING lpszDesktopDevice,
1804 LPDEVMODEW lpdmw,
1805 DWORD dwFlags,
1806 ACCESS_MASK dwDesiredAccess);
1807
1808 DWORD
1809 NTAPI
1810 NtUserCreateInputContext(
1811 DWORD dwUnknown1);
1812
1813 NTSTATUS
1814 NTAPI
1815 NtUserCreateLocalMemHandle(
1816 HANDLE hMem,
1817 PVOID pData,
1818 DWORD cbData,
1819 DWORD *pcbData);
1820
1821 HWND
1822 NTAPI
1823 NtUserCreateWindowEx(
1824 DWORD dwExStyle,
1825 PLARGE_STRING plstrClassName,
1826 PLARGE_STRING plstrClsVersion,
1827 PLARGE_STRING plstrWindowName,
1828 DWORD dwStyle,
1829 int x,
1830 int y,
1831 int nWidth,
1832 int nHeight,
1833 HWND hWndParent,
1834 HMENU hMenu,
1835 HINSTANCE hInstance,
1836 LPVOID lpParam,
1837 DWORD dwFlags,
1838 PVOID acbiBuffer);
1839
1840 HWINSTA
1841 NTAPI
1842 NtUserCreateWindowStation(
1843 POBJECT_ATTRIBUTES ObjectAttributes,
1844 ACCESS_MASK dwDesiredAccess,
1845 DWORD Unknown2,
1846 DWORD Unknown3,
1847 DWORD Unknown4,
1848 DWORD Unknown5,
1849 DWORD Unknown6);
1850
1851 BOOL
1852 NTAPI
1853 NtUserDdeGetQualityOfService(
1854 IN HWND hwndClient,
1855 IN HWND hWndServer,
1856 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1857
1858 DWORD
1859 NTAPI
1860 NtUserDdeInitialize(
1861 DWORD Unknown0,
1862 DWORD Unknown1,
1863 DWORD Unknown2,
1864 DWORD Unknown3,
1865 DWORD Unknown4);
1866
1867 BOOL
1868 NTAPI
1869 NtUserDdeSetQualityOfService(
1870 IN HWND hwndClient,
1871 IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
1872 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1873
1874 HDWP
1875 NTAPI
1876 NtUserDeferWindowPos(
1877 HDWP WinPosInfo,
1878 HWND Wnd,
1879 HWND WndInsertAfter,
1880 int x,
1881 int y,
1882 int cx,
1883 int cy,
1884 UINT Flags);
1885
1886 BOOL
1887 NTAPI
1888 NtUserDefSetText(
1889 HWND WindowHandle,
1890 PLARGE_STRING WindowText);
1891
1892 BOOLEAN
1893 NTAPI
1894 NtUserDestroyAcceleratorTable(
1895 HACCEL Table);
1896
1897 BOOL
1898 NTAPI
1899 NtUserDestroyCursor(
1900 _In_ HANDLE Handle,
1901 _In_ BOOL bForce);
1902
1903 DWORD
1904 NTAPI
1905 NtUserDestroyInputContext(
1906 DWORD dwUnknown1);
1907
1908 BOOLEAN
1909 NTAPI
1910 NtUserDestroyWindow(
1911 HWND Wnd);
1912
1913 DWORD
1914 NTAPI
1915 NtUserDisableThreadIme(
1916 DWORD dwUnknown1);
1917
1918 LRESULT
1919 NTAPI
1920 NtUserDispatchMessage(
1921 PMSG pMsg);
1922
1923 BOOL
1924 NTAPI
1925 NtUserDragDetect(
1926 HWND hWnd,
1927 POINT pt);
1928
1929 DWORD
1930 NTAPI
1931 NtUserDragObject(
1932 HWND hwnd1,
1933 HWND hwnd2,
1934 UINT u1,
1935 DWORD dw1,
1936 HCURSOR hc1);
1937
1938 BOOL
1939 NTAPI
1940 NtUserDrawAnimatedRects(
1941 HWND hwnd,
1942 INT idAni,
1943 RECT *lprcFrom,
1944 RECT *lprcTo);
1945
1946 BOOL
1947 NTAPI
1948 NtUserDrawCaption(
1949 HWND hWnd,
1950 HDC hDc,
1951 LPCRECT lpRc,
1952 UINT uFlags);
1953
1954 BOOL
1955 NTAPI
1956 NtUserDrawCaptionTemp(
1957 HWND hWnd,
1958 HDC hDC,
1959 LPCRECT lpRc,
1960 HFONT hFont,
1961 HICON hIcon,
1962 const PUNICODE_STRING str,
1963 UINT uFlags);
1964
1965 /* Used with NtUserDrawIconEx, last parameter. */
1966 typedef struct _DRAWICONEXDATA
1967 {
1968 HBITMAP hbmMask;
1969 HBITMAP hbmColor;
1970 int cx;
1971 int cy;
1972 } DRAWICONEXDATA, *PDRAWICONEXDATA;
1973
1974 BOOL
1975 NTAPI
1976 NtUserDrawIconEx(
1977 HDC hdc,
1978 int xLeft,
1979 int yTop,
1980 HICON hIcon,
1981 int cxWidth,
1982 int cyWidth,
1983 UINT istepIfAniCur,
1984 HBRUSH hbrFlickerFreeDraw,
1985 UINT diFlags,
1986 BOOL bMetaHDC,
1987 PVOID pDIXData);
1988
1989 BOOL
1990 NTAPI
1991 NtUserEmptyClipboard(VOID);
1992
1993 BOOL
1994 NTAPI
1995 NtUserEnableScrollBar(
1996 HWND hWnd,
1997 UINT wSBflags,
1998 UINT wArrows);
1999
2000 BOOL
2001 NTAPI
2002 NtUserEndDeferWindowPosEx(
2003 HDWP WinPosInfo,
2004 DWORD Unknown1);
2005
2006 BOOL
2007 NTAPI
2008 NtUserEndPaint(
2009 HWND hWnd,
2010 CONST PAINTSTRUCT *lPs);
2011
2012 BOOL
2013 NTAPI
2014 NtUserEnumDisplayDevices(
2015 PUNICODE_STRING lpDevice, /* device name */
2016 DWORD iDevNum, /* display device */
2017 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
2018 DWORD dwFlags); /* reserved */
2019
2020 /*
2021 BOOL
2022 NTAPI
2023 NtUserEnumDisplayMonitors(
2024 HDC hdc,
2025 LPCRECT lprcClip,
2026 MONITORENUMPROC lpfnEnum,
2027 LPARAM dwData);
2028 */
2029 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
2030 INT
2031 NTAPI
2032 NtUserEnumDisplayMonitors(
2033 OPTIONAL IN HDC hDC,
2034 OPTIONAL IN LPCRECT pRect,
2035 OPTIONAL OUT HMONITOR *hMonitorList,
2036 OPTIONAL OUT LPRECT monitorRectList,
2037 OPTIONAL IN DWORD listSize);
2038
2039
2040 NTSTATUS
2041 NTAPI
2042 NtUserEnumDisplaySettings(
2043 PUNICODE_STRING lpszDeviceName,
2044 DWORD iModeNum,
2045 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
2046 DWORD dwFlags);
2047
2048 DWORD
2049 NTAPI
2050 NtUserEvent(
2051 DWORD Unknown0);
2052
2053 DWORD
2054 NTAPI
2055 NtUserExcludeUpdateRgn(
2056 HDC hDC,
2057 HWND hWnd);
2058
2059 BOOL
2060 NTAPI
2061 NtUserFillWindow(
2062 HWND hWndPaint,
2063 HWND hWndPaint1,
2064 HDC hDC,
2065 HBRUSH hBrush);
2066
2067 HWND
2068 NTAPI
2069 NtUserFindWindowEx(
2070 HWND hwndParent,
2071 HWND hwndChildAfter,
2072 PUNICODE_STRING ucClassName,
2073 PUNICODE_STRING ucWindowName,
2074 DWORD dwUnknown);
2075
2076 BOOL
2077 NTAPI
2078 NtUserFlashWindowEx(
2079 IN PFLASHWINFO pfwi);
2080
2081 BOOL
2082 NTAPI
2083 NtUserGetAltTabInfo(
2084 HWND hwnd,
2085 INT iItem,
2086 PALTTABINFO pati,
2087 LPWSTR pszItemText,
2088 UINT cchItemText,
2089 BOOL Ansi);
2090
2091 HWND
2092 NTAPI
2093 NtUserGetAncestor(
2094 HWND hWnd,
2095 UINT Flags);
2096
2097 DWORD
2098 NTAPI
2099 NtUserGetAppImeLevel(
2100 DWORD dwUnknown1);
2101
2102 SHORT
2103 NTAPI
2104 NtUserGetAsyncKeyState(
2105 INT Key);
2106
2107 _Success_(return != 0)
2108 _At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2))
2109 ULONG
2110 APIENTRY
2111 NtUserGetAtomName(
2112 _In_ ATOM atom,
2113 _Inout_ PUNICODE_STRING pustrName);
2114
2115 UINT
2116 NTAPI
2117 NtUserGetCaretBlinkTime(VOID);
2118
2119 BOOL
2120 NTAPI
2121 NtUserGetCaretPos(
2122 LPPOINT lpPoint);
2123
2124 BOOL
2125 NTAPI
2126 NtUserGetClassInfo(
2127 HINSTANCE hInstance,
2128 PUNICODE_STRING ClassName,
2129 LPWNDCLASSEXW wcex,
2130 LPWSTR *ppszMenuName,
2131 BOOL Ansi);
2132
2133 INT
2134 NTAPI
2135 NtUserGetClassName(
2136 HWND hWnd,
2137 BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */
2138 PUNICODE_STRING ClassName);
2139
2140 HANDLE
2141 NTAPI
2142 NtUserGetClipboardData(
2143 UINT fmt,
2144 PGETCLIPBDATA pgcd);
2145
2146 INT
2147 NTAPI
2148 NtUserGetClipboardFormatName(
2149 UINT uFormat,
2150 LPWSTR lpszFormatName,
2151 INT cchMaxCount);
2152
2153 HWND
2154 NTAPI
2155 NtUserGetClipboardOwner(VOID);
2156
2157 DWORD
2158 NTAPI
2159 NtUserGetClipboardSequenceNumber(VOID);
2160
2161 HWND
2162 NTAPI
2163 NtUserGetClipboardViewer(VOID);
2164
2165 BOOL
2166 NTAPI
2167 NtUserGetClipCursor(
2168 RECT *lpRect);
2169
2170 BOOL
2171 NTAPI
2172 NtUserGetComboBoxInfo(
2173 HWND hWnd,
2174 PCOMBOBOXINFO pcbi);
2175
2176 HBRUSH
2177 NTAPI
2178 NtUserGetControlBrush(
2179 HWND hwnd,
2180 HDC hdc,
2181 UINT ctlType);
2182
2183 HBRUSH
2184 NTAPI
2185 NtUserGetControlColor(
2186 HWND hwndParent,
2187 HWND hwnd,
2188 HDC hdc,
2189 UINT CtlMsg);
2190
2191 ULONG_PTR
2192 NTAPI
2193 NtUserGetCPD(
2194 HWND hWnd,
2195 GETCPD Flags,
2196 ULONG_PTR Proc);
2197
2198 HCURSOR
2199 NTAPI
2200 NtUserGetCursorFrameInfo(
2201 HCURSOR hCursor,
2202 DWORD istep,
2203 INT *rate_jiffies,
2204 DWORD *num_steps);
2205
2206 BOOL
2207 NTAPI
2208 NtUserGetCursorInfo(
2209 PCURSORINFO pci);
2210
2211 HDC
2212 NTAPI
2213 NtUserGetDC(
2214 HWND hWnd);
2215
2216 HDC
2217 NTAPI
2218 NtUserGetDCEx(
2219 HWND hWnd,
2220 HANDLE hRegion,
2221 ULONG Flags);
2222
2223 UINT
2224 NTAPI
2225 NtUserGetDoubleClickTime(VOID);
2226
2227 HWND
2228 NTAPI
2229 NtUserGetForegroundWindow(VOID);
2230
2231 DWORD
2232 NTAPI
2233 NtUserGetGuiResources(
2234 HANDLE hProcess,
2235 DWORD uiFlags);
2236
2237 BOOL
2238 NTAPI
2239 NtUserGetGUIThreadInfo(
2240 DWORD idThread,
2241 LPGUITHREADINFO lpgui);
2242
2243 _Success_(return != FALSE)
2244 BOOL
2245 NTAPI
2246 NtUserGetIconInfo(
2247 _In_ HANDLE hCurIcon,
2248 _Out_opt_ PICONINFO IconInfo,
2249 _Inout_opt_ PUNICODE_STRING lpInstName,
2250 _Inout_opt_ PUNICODE_STRING lpResName,
2251 _Out_opt_ LPDWORD pbpp,
2252 _In_ BOOL bInternal);
2253
2254 BOOL
2255 NTAPI
2256 NtUserGetIconSize(
2257 HANDLE Handle,
2258 UINT istepIfAniCur,
2259 LONG *plcx,
2260 LONG *plcy);
2261
2262 DWORD
2263 NTAPI
2264 NtUserGetImeHotKey(
2265 DWORD Unknown0,
2266 DWORD Unknown1,
2267 DWORD Unknown2,
2268 DWORD Unknown3);
2269
2270 DWORD
2271 NTAPI
2272 NtUserGetImeInfoEx(
2273 PIMEINFOEX pImeInfoEx,
2274 DWORD dwUnknown2);
2275
2276 DWORD
2277 NTAPI
2278 NtUserGetInternalWindowPos(
2279 HWND hwnd,
2280 LPRECT rectWnd,
2281 LPPOINT ptIcon);
2282
2283 HKL
2284 NTAPI
2285 NtUserGetKeyboardLayout(
2286 DWORD dwThreadid);
2287
2288 UINT
2289 NTAPI
2290 NtUserGetKeyboardLayoutList(
2291 ULONG nItems,
2292 HKL *pHklBuff);
2293
2294 BOOL
2295 NTAPI
2296 NtUserGetKeyboardLayoutName(
2297 LPWSTR lpszName);
2298
2299 DWORD
2300 NTAPI
2301 NtUserGetKeyboardState(
2302 LPBYTE Unknown0);
2303
2304 DWORD
2305 NTAPI
2306 NtUserGetKeyboardType(
2307 DWORD TypeFlag);
2308
2309 DWORD
2310 NTAPI
2311 NtUserGetKeyNameText(
2312 LONG lParam,
2313 LPWSTR lpString,
2314 int nSize);
2315
2316 SHORT
2317 NTAPI
2318 NtUserGetKeyState(
2319 INT VirtKey);
2320
2321 BOOL
2322 NTAPI
2323 NtUserGetLayeredWindowAttributes(
2324 HWND hwnd,
2325 COLORREF *pcrKey,
2326 BYTE *pbAlpha,
2327 DWORD *pdwFlags);
2328
2329 DWORD
2330 NTAPI
2331 NtUserGetListBoxInfo(
2332 HWND hWnd);
2333
2334 BOOL
2335 APIENTRY
2336 NtUserGetMessage(
2337 PMSG pMsg,
2338 HWND hWnd,
2339 UINT MsgFilterMin,
2340 UINT MsgFilterMax);
2341
2342 DWORD
2343 NTAPI
2344 NtUserGetMouseMovePointsEx(
2345 UINT cbSize,
2346 LPMOUSEMOVEPOINT lppt,
2347 LPMOUSEMOVEPOINT lpptBuf,
2348 int nBufPoints,
2349 DWORD resolution);
2350
2351 BOOL
2352 NTAPI
2353 NtUserGetObjectInformation(
2354 HANDLE hObject,
2355 DWORD nIndex,
2356 PVOID pvInformation,
2357 DWORD nLength,
2358 PDWORD nLengthNeeded);
2359
2360 HWND
2361 NTAPI
2362 NtUserGetOpenClipboardWindow(VOID);
2363
2364 INT
2365 NTAPI
2366 NtUserGetPriorityClipboardFormat(
2367 UINT *paFormatPriorityList,
2368 INT cFormats);
2369
2370 HWINSTA
2371 NTAPI
2372 NtUserGetProcessWindowStation(VOID);
2373
2374 DWORD
2375 NTAPI
2376 NtUserGetRawInputBuffer(
2377 PRAWINPUT pData,
2378 PUINT pcbSize,
2379 UINT cbSizeHeader);
2380
2381 DWORD
2382 NTAPI
2383 NtUserGetRawInputData(
2384 HRAWINPUT hRawInput,
2385 UINT uiCommand,
2386 LPVOID pData,
2387 PUINT pcbSize,
2388 UINT cbSizeHeader);
2389
2390 DWORD
2391 NTAPI
2392 NtUserGetRawInputDeviceInfo(
2393 HANDLE hDevice,
2394 UINT uiCommand,
2395 LPVOID pData,
2396 PUINT pcbSize);
2397
2398 DWORD
2399 NTAPI
2400 NtUserGetRawInputDeviceList(
2401 PRAWINPUTDEVICELIST pRawInputDeviceList,
2402 PUINT puiNumDevices,
2403 UINT cbSize);
2404
2405 DWORD
2406 NTAPI
2407 NtUserGetRegisteredRawInputDevices(
2408 PRAWINPUTDEVICE pRawInputDevices,
2409 PUINT puiNumDevices,
2410 UINT cbSize);
2411
2412 BOOL
2413 NTAPI
2414 NtUserGetScrollBarInfo(
2415 HWND hWnd,
2416 LONG idObject,
2417 PSCROLLBARINFO psbi);
2418
2419 HDESK
2420 NTAPI
2421 NtUserGetThreadDesktop(
2422 DWORD dwThreadId,
2423 DWORD Unknown1);
2424
2425 enum ThreadStateRoutines
2426 {
2427 THREADSTATE_GETTHREADINFO,
2428 THREADSTATE_INSENDMESSAGE,
2429 THREADSTATE_FOCUSWINDOW,
2430 THREADSTATE_ACTIVEWINDOW,
2431 THREADSTATE_CAPTUREWINDOW,
2432 THREADSTATE_PROGMANWINDOW,
2433 THREADSTATE_TASKMANWINDOW,
2434 THREADSTATE_GETMESSAGETIME,
2435 THREADSTATE_GETINPUTSTATE,
2436 THREADSTATE_UPTIMELASTREAD,
2437 THREADSTATE_FOREGROUNDTHREAD,
2438 THREADSTATE_GETCURSOR,
2439 THREADSTATE_GETMESSAGEEXTRAINFO
2440 };
2441
2442 DWORD_PTR
2443 NTAPI
2444 NtUserGetThreadState(
2445 DWORD Routine);
2446
2447 BOOLEAN
2448 NTAPI
2449 NtUserGetTitleBarInfo(
2450 HWND hwnd,
2451 PTITLEBARINFO pti);
2452
2453 BOOL
2454 NTAPI
2455 NtUserGetUpdateRect(
2456 HWND hWnd,
2457 LPRECT lpRect,
2458 BOOL fErase);
2459
2460 int
2461 NTAPI
2462 NtUserGetUpdateRgn(
2463 HWND hWnd,
2464 HRGN hRgn,
2465 BOOL bErase);
2466
2467 HDC
2468 NTAPI
2469 NtUserGetWindowDC(
2470 HWND hWnd);
2471
2472 BOOL
2473 NTAPI
2474 NtUserGetWindowPlacement(
2475 HWND hWnd,
2476 WINDOWPLACEMENT *lpwndpl);
2477
2478 PCLS
2479 NTAPI
2480 NtUserGetWOWClass(
2481 HINSTANCE hInstance,
2482 PUNICODE_STRING ClassName);
2483
2484 DWORD
2485 NTAPI
2486 NtUserHardErrorControl(
2487 DWORD dwUnknown1,
2488 DWORD dwUnknown2,
2489 DWORD dwUnknown3);
2490
2491 BOOL
2492 NTAPI
2493 NtUserImpersonateDdeClientWindow(
2494 HWND hWndClient,
2495 HWND hWndServer);
2496
2497 NTSTATUS
2498 NTAPI
2499 NtUserInitialize(
2500 DWORD dwWinVersion,
2501 HANDLE hPowerRequestEvent,
2502 HANDLE hMediaRequestEvent);
2503
2504 NTSTATUS
2505 NTAPI
2506 NtUserInitializeClientPfnArrays(
2507 PPFNCLIENT pfnClientA,
2508 PPFNCLIENT pfnClientW,
2509 PPFNCLIENTWORKER pfnClientWorker,
2510 HINSTANCE hmodUser);
2511
2512 DWORD
2513 NTAPI
2514 NtUserInitTask(
2515 DWORD Unknown0,
2516 DWORD Unknown1,
2517 DWORD Unknown2,
2518 DWORD Unknown3,
2519 DWORD Unknown4,
2520 DWORD Unknown5,
2521 DWORD Unknown6,
2522 DWORD Unknown7,
2523 DWORD Unknown8,
2524 DWORD Unknown9,
2525 DWORD Unknown10,
2526 DWORD Unknown11);
2527
2528 INT
2529 NTAPI
2530 NtUserInternalGetWindowText(
2531 HWND hWnd,
2532 LPWSTR lpString,
2533 INT nMaxCount);
2534
2535 BOOL
2536 NTAPI
2537 NtUserInvalidateRect(
2538 HWND hWnd,
2539 CONST RECT *lpRect,
2540 BOOL bErase);
2541
2542 BOOL
2543 NTAPI
2544 NtUserInvalidateRgn(
2545 HWND hWnd,
2546 HRGN hRgn,
2547 BOOL bErase);
2548
2549 BOOL
2550 NTAPI
2551 NtUserIsClipboardFormatAvailable(
2552 UINT format);
2553
2554 BOOL
2555 NTAPI
2556 NtUserKillTimer(
2557 HWND hWnd,
2558 UINT_PTR uIDEvent);
2559
2560 HKL
2561 NTAPI
2562 NtUserLoadKeyboardLayoutEx(
2563 IN HANDLE Handle,
2564 IN DWORD offTable,
2565 IN PUNICODE_STRING puszKeyboardName,
2566 IN HKL hKL,
2567 IN PUNICODE_STRING puszKLID,
2568 IN DWORD dwKLID,
2569 IN UINT Flags);
2570
2571 BOOL
2572 NTAPI
2573 NtUserLockWindowStation(
2574 HWINSTA hWindowStation);
2575
2576 BOOL
2577 NTAPI
2578 NtUserLockWindowUpdate(
2579 HWND hWnd);
2580
2581 BOOL
2582 NTAPI
2583 NtUserLockWorkStation(VOID);
2584
2585 UINT
2586 NTAPI
2587 NtUserMapVirtualKeyEx(
2588 UINT keyCode,
2589 UINT transType,
2590 DWORD keyboardId,
2591 HKL dwhkl);
2592
2593 typedef struct tagDOSENDMESSAGE
2594 {
2595 UINT uFlags;
2596 UINT uTimeout;
2597 ULONG_PTR Result;
2598 }
2599 DOSENDMESSAGE, *PDOSENDMESSAGE;
2600
2601 BOOL
2602 NTAPI
2603 NtUserMessageCall(
2604 HWND hWnd,
2605 UINT Msg,
2606 WPARAM wParam,
2607 LPARAM lParam,
2608 ULONG_PTR ResultInfo,
2609 DWORD dwType, /* FNID_XX types */
2610 BOOL Ansi);
2611
2612 DWORD
2613 NTAPI
2614 NtUserMinMaximize(
2615 HWND hWnd,
2616 UINT cmd, /* Wine SW_ commands */
2617 BOOL Hide);
2618
2619 DWORD
2620 NTAPI
2621 NtUserMNDragLeave(VOID);
2622
2623 DWORD
2624 NTAPI
2625 NtUserMNDragOver(
2626 DWORD Unknown0,
2627 DWORD Unknown1);
2628
2629 DWORD
2630 NTAPI
2631 NtUserModifyUserStartupInfoFlags(
2632 DWORD Unknown0,
2633 DWORD Unknown1);
2634
2635 BOOL
2636 NTAPI
2637 NtUserMoveWindow(
2638 HWND hWnd,
2639 int X,
2640 int Y,
2641 int nWidth,
2642 int nHeight,
2643 BOOL bRepaint
2644 );
2645
2646 DWORD
2647 NTAPI
2648 NtUserNotifyIMEStatus(
2649 DWORD Unknown0,
2650 DWORD Unknown1,
2651 DWORD Unknown2);
2652
2653 BOOL
2654 NTAPI
2655 NtUserNotifyProcessCreate(
2656 HANDLE NewProcessId,
2657 HANDLE ParentThreadId,
2658 ULONG dwUnknown,
2659 ULONG CreateFlags);
2660
2661 VOID
2662 NTAPI
2663 NtUserNotifyWinEvent(
2664 DWORD Event,
2665 HWND hWnd,
2666 LONG idObject,
2667 LONG idChild);
2668
2669 BOOL
2670 NTAPI
2671 NtUserOpenClipboard(
2672 HWND hWnd,
2673 DWORD Unknown1);
2674
2675 HDESK
2676 NTAPI
2677 NtUserOpenDesktop(
2678 POBJECT_ATTRIBUTES ObjectAttributes,
2679 DWORD dwFlags,
2680 ACCESS_MASK dwDesiredAccess);
2681
2682 HDESK
2683 NTAPI
2684 NtUserOpenInputDesktop(
2685 DWORD dwFlags,
2686 BOOL fInherit,
2687 ACCESS_MASK dwDesiredAccess);
2688
2689 HWINSTA
2690 NTAPI
2691 NtUserOpenWindowStation(
2692 POBJECT_ATTRIBUTES ObjectAttributes,
2693 ACCESS_MASK dwDesiredAccess);
2694
2695 BOOL
2696 NTAPI
2697 NtUserPaintDesktop(
2698 HDC hDC);
2699
2700 DWORD
2701 NTAPI
2702 NtUserPaintMenuBar(
2703 DWORD dwUnknown1,
2704 DWORD dwUnknown2,
2705 DWORD dwUnknown3,
2706 DWORD dwUnknown4,
2707 DWORD dwUnknown5,
2708 DWORD dwUnknown6);
2709
2710 BOOL
2711 APIENTRY
2712 NtUserPeekMessage(
2713 PMSG pMsg,
2714 HWND hWnd,
2715 UINT MsgFilterMin,
2716 UINT MsgFilterMax,
2717 UINT RemoveMsg);
2718
2719 BOOL
2720 NTAPI
2721 NtUserPostMessage(
2722 HWND hWnd,
2723 UINT Msg,
2724 WPARAM wParam,
2725 LPARAM lParam);
2726
2727 BOOL
2728 NTAPI
2729 NtUserPostThreadMessage(
2730 DWORD idThread,
2731 UINT Msg,
2732 WPARAM wParam,
2733 LPARAM lParam);
2734
2735 BOOL
2736 NTAPI
2737 NtUserPrintWindow(
2738 HWND hwnd,
2739 HDC hdcBlt,
2740 UINT nFlags);
2741
2742 NTSTATUS
2743 NTAPI
2744 NtUserProcessConnect(
2745 IN HANDLE ProcessHandle,
2746 OUT PUSERCONNECT pUserConnect,
2747 IN ULONG Size); /* sizeof(USERCONNECT) */
2748
2749 NTSTATUS
2750 NTAPI
2751 NtUserQueryInformationThread(
2752 IN HANDLE ThreadHandle,
2753 IN USERTHREADINFOCLASS ThreadInformationClass,
2754 OUT PVOID ThreadInformation,
2755 IN ULONG ThreadInformationLength);
2756
2757 DWORD
2758 NTAPI
2759 NtUserQueryInputContext(
2760 DWORD dwUnknown1,
2761 DWORD dwUnknown2);
2762
2763 DWORD
2764 NTAPI
2765 NtUserQuerySendMessage(
2766 DWORD Unknown0);
2767
2768 DWORD
2769 NTAPI
2770 NtUserQueryUserCounters(
2771 DWORD Unknown0,
2772 DWORD Unknown1,
2773 DWORD Unknown2,
2774 DWORD Unknown3,
2775 DWORD Unknown4);
2776
2777 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2778 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2779 #define QUERY_WINDOW_ACTIVE 0x02
2780 #define QUERY_WINDOW_FOCUS 0x03
2781 #define QUERY_WINDOW_ISHUNG 0x04
2782 #define QUERY_WINDOW_REAL_ID 0x05
2783 #define QUERY_WINDOW_FOREGROUND 0x06
2784
2785 DWORD
2786 NTAPI
2787 NtUserQueryWindow(
2788 HWND hWnd,
2789 DWORD Index);
2790
2791 BOOL
2792 NTAPI
2793 NtUserRealInternalGetMessage(
2794 LPMSG lpMsg,
2795 HWND hWnd,
2796 UINT wMsgFilterMin,
2797 UINT wMsgFilterMax,
2798 UINT wRemoveMsg,
2799 BOOL bGMSG);
2800
2801 HWND
2802 NTAPI
2803 NtUserRealChildWindowFromPoint(
2804 HWND Parent,
2805 LONG x,
2806 LONG y);
2807
2808 BOOL
2809 NTAPI
2810 NtUserRealWaitMessageEx(
2811 DWORD dwWakeMask,
2812 UINT uTimeout);
2813
2814 BOOL
2815 NTAPI
2816 NtUserRedrawWindow(
2817 HWND hWnd,
2818 CONST RECT *lprcUpdate,
2819 HRGN hrgnUpdate,
2820 UINT flags);
2821
2822 RTL_ATOM
2823 NTAPI
2824 NtUserRegisterClassExWOW(
2825 WNDCLASSEXW* lpwcx,
2826 PUNICODE_STRING pustrClassName,
2827 PUNICODE_STRING pustrCNVersion,
2828 PCLSMENUNAME pClassMenuName,
2829 DWORD fnID,
2830 DWORD Flags,
2831 LPDWORD pWow);
2832
2833 BOOL
2834 NTAPI
2835 NtUserRegisterRawInputDevices(
2836 IN PCRAWINPUTDEVICE pRawInputDevices,
2837 IN UINT uiNumDevices,
2838 IN UINT cbSize);
2839
2840 BOOL
2841 NTAPI
2842 NtUserRegisterUserApiHook(
2843 PUNICODE_STRING m_dllname1,
2844 PUNICODE_STRING m_funname1,
2845 DWORD dwUnknown3,
2846 DWORD dwUnknown4);
2847
2848 BOOL
2849 NTAPI
2850 NtUserRegisterHotKey(
2851 HWND hWnd,
2852 int id,
2853 UINT fsModifiers,
2854 UINT vk);
2855
2856 DWORD
2857 NTAPI
2858 NtUserRegisterTasklist(
2859 DWORD Unknown0);
2860
2861 UINT
2862 NTAPI
2863 NtUserRegisterWindowMessage(
2864 PUNICODE_STRING MessageName);
2865
2866 DWORD
2867 NTAPI
2868 NtUserRemoteConnect(
2869 DWORD dwUnknown1,
2870 DWORD dwUnknown2,
2871 DWORD dwUnknown3);
2872
2873 DWORD
2874 NTAPI
2875 NtUserRemoteRedrawRectangle(
2876 DWORD dwUnknown1,
2877 DWORD dwUnknown2,
2878 DWORD dwUnknown3,
2879 DWORD dwUnknown4);
2880
2881 DWORD
2882 NTAPI
2883 NtUserRemoteRedrawScreen(VOID);
2884
2885 DWORD
2886 NTAPI
2887 NtUserRemoteStopScreenUpdates(VOID);
2888
2889 HANDLE
2890 NTAPI
2891 NtUserRemoveProp(
2892 HWND hWnd,
2893 ATOM Atom);
2894
2895 HDESK
2896 APIENTRY
2897 NtUserResolveDesktop(
2898 IN HANDLE ProcessHandle,
2899 IN PUNICODE_STRING DesktopPath,
2900 DWORD dwUnknown,
2901 OUT HWINSTA* phWinSta);
2902
2903 DWORD
2904 NTAPI
2905 NtUserResolveDesktopForWOW(
2906 DWORD Unknown0);
2907
2908 BOOL
2909 NTAPI
2910 NtUserSBGetParms(
2911 HWND hwnd,
2912 int fnBar,
2913 PSBDATA pSBData,
2914 LPSCROLLINFO lpsi);
2915
2916 BOOL
2917 NTAPI
2918 NtUserScrollDC(
2919 HDC hDC,
2920 int dx,
2921 int dy,
2922 CONST RECT *lprcScroll,
2923 CONST RECT *lprcClip ,
2924 HRGN hrgnUpdate,
2925 LPRECT lprcUpdate);
2926
2927 DWORD
2928 NTAPI
2929 NtUserScrollWindowEx(
2930 HWND hWnd,
2931 INT dx,
2932 INT dy,
2933 const RECT *rect,
2934 const RECT *clipRect,
2935 HRGN hrgnUpdate,
2936 LPRECT rcUpdate,
2937 UINT flags);
2938
2939 UINT
2940 NTAPI
2941 NtUserSendInput(
2942 UINT nInputs,
2943 LPINPUT pInput,
2944 INT cbSize);
2945
2946 HWND
2947 NTAPI
2948 NtUserSetActiveWindow(
2949 HWND Wnd);
2950
2951 DWORD
2952 NTAPI
2953 NtUserSetAppImeLevel(
2954 DWORD dwUnknown1,
2955 DWORD dwUnknown2);
2956
2957 HWND
2958 NTAPI
2959 NtUserSetCapture(
2960 HWND Wnd);
2961
2962 ULONG_PTR
2963 NTAPI
2964 NtUserSetClassLong(
2965 HWND hWnd,
2966 INT Offset,
2967 ULONG_PTR dwNewLong,
2968 BOOL Ansi);
2969
2970 WORD
2971 NTAPI
2972 NtUserSetClassWord(
2973 HWND hWnd,
2974 INT nIndex,
2975 WORD wNewWord);
2976
2977 HANDLE
2978 NTAPI
2979 NtUserSetClipboardData(
2980 UINT fmt,
2981 HANDLE hMem,
2982 PSETCLIPBDATA scd);
2983
2984 HWND
2985 NTAPI
2986 NtUserSetClipboardViewer(
2987 HWND hWndNewViewer);
2988
2989 HPALETTE
2990 NTAPI
2991 NtUserSelectPalette(
2992 HDC hDC,
2993 HPALETTE hpal,
2994 BOOL ForceBackground);
2995
2996 DWORD
2997 NTAPI
2998 NtUserSetConsoleReserveKeys(
2999 DWORD Unknown0,
3000 DWORD Unknown1);
3001
3002 HCURSOR
3003 NTAPI
3004 NtUserSetCursor(
3005 HCURSOR hCursor);
3006
3007 BOOL
3008 NTAPI
3009 NtUserSetCursorContents(
3010 HANDLE Handle,
3011 PICONINFO IconInfo);
3012
3013 BOOL
3014 NTAPI
3015 NtUserSetCursorIconData(
3016 _In_ HCURSOR hCursor,
3017 _In_opt_ PUNICODE_STRING pustrModule,
3018 _In_opt_ PUNICODE_STRING puSrcName,
3019 _In_ const CURSORDATA *pCursorData);
3020
3021 typedef struct _tagFINDEXISTINGCURICONPARAM
3022 {
3023 BOOL bIcon;
3024 LONG cx;
3025 LONG cy;
3026 } FINDEXISTINGCURICONPARAM;
3027
3028 HICON
3029 NTAPI
3030 NtUserFindExistingCursorIcon(
3031 _In_ PUNICODE_STRING pustrModule,
3032 _In_ PUNICODE_STRING pustrRsrc,
3033 _In_ FINDEXISTINGCURICONPARAM *param);
3034
3035 DWORD
3036 NTAPI
3037 NtUserSetDbgTag(
3038 DWORD Unknown0,
3039 DWORD Unknown1);
3040
3041 DWORD
3042 APIENTRY
3043 NtUserSetDbgTagCount(
3044 DWORD Unknown0);
3045
3046 HWND
3047 NTAPI
3048 NtUserSetFocus(
3049 HWND hWnd);
3050
3051 DWORD
3052 NTAPI
3053 NtUserSetImeHotKey(
3054 DWORD Unknown0,
3055 DWORD Unknown1,
3056 DWORD Unknown2,
3057 DWORD Unknown3,
3058 DWORD Unknown4);
3059
3060 DWORD
3061 NTAPI
3062 NtUserSetImeInfoEx(
3063 PIMEINFOEX pImeInfoEx);
3064
3065 DWORD
3066 NTAPI
3067 NtUserSetImeOwnerWindow(
3068 DWORD Unknown0,
3069 DWORD Unknown1);
3070
3071 DWORD
3072 NTAPI
3073 NtUserSetInformationProcess(
3074 DWORD dwUnknown1,
3075 DWORD dwUnknown2,
3076 DWORD dwUnknown3,
3077 DWORD dwUnknown4);
3078
3079 NTSTATUS
3080 NTAPI
3081 NtUserSetInformationThread(
3082 IN HANDLE ThreadHandle,
3083 IN USERTHREADINFOCLASS ThreadInformationClass,
3084 IN PVOID ThreadInformation,
3085 IN ULONG ThreadInformationLength);
3086
3087 DWORD
3088 NTAPI
3089 NtUserSetInternalWindowPos(
3090 HWND hwnd,
3091 UINT showCmd,
3092 LPRECT rect,
3093 LPPOINT pt);
3094
3095 BOOL
3096 NTAPI
3097 NtUserSetKeyboardState(
3098 LPBYTE lpKeyState);
3099
3100 BOOL
3101 NTAPI
3102 NtUserSetLayeredWindowAttributes(
3103 HWND hwnd,
3104 COLORREF crKey,
3105 BYTE bAlpha,
3106 DWORD dwFlags);
3107
3108 BOOL
3109 NTAPI
3110 NtUserSetLogonNotifyWindow(
3111 HWND hWnd);
3112
3113 BOOL
3114 NTAPI
3115 NtUserSetObjectInformation(
3116 HANDLE hObject,
3117 DWORD nIndex,
3118 PVOID pvInformation,
3119 DWORD nLength);
3120
3121 HWND
3122 NTAPI
3123 NtUserSetParent(
3124 HWND hWndChild,
3125 HWND hWndNewParent);
3126
3127 BOOL
3128 NTAPI
3129 NtUserSetProcessWindowStation(
3130 HWINSTA hWindowStation);
3131
3132 BOOL
3133 NTAPI
3134 NtUserSetProp(
3135 HWND hWnd,
3136 ATOM Atom,
3137 HANDLE Data);
3138
3139 DWORD
3140 NTAPI
3141 NtUserSetRipFlags(
3142 DWORD Unknown0);
3143
3144 DWORD
3145 NTAPI
3146 NtUserSetScrollInfo(
3147 HWND hwnd,
3148 int fnBar,
3149 LPCSCROLLINFO lpsi,
3150 BOOL bRedraw);
3151
3152 BOOL
3153 NTAPI
3154 NtUserSetShellWindowEx(
3155 HWND hwndShell,
3156 HWND hwndShellListView);
3157
3158 BOOL
3159 NTAPI
3160 NtUserSetSysColors(
3161 int cElements,
3162 IN CONST INT *lpaElements,
3163 IN CONST COLORREF *lpaRgbValues,
3164 FLONG Flags);
3165
3166 BOOL
3167 NTAPI
3168 NtUserSetSystemCursor(
3169 HCURSOR hcur,
3170 DWORD id);
3171
3172 BOOL
3173 NTAPI
3174 NtUserSetThreadDesktop(
3175 HDESK hDesktop);
3176
3177 DWORD
3178 NTAPI
3179 NtUserSetThreadState(
3180 DWORD Unknown0,
3181 DWORD Unknown1);
3182
3183 UINT_PTR
3184 NTAPI
3185 NtUserSetSystemTimer(
3186 HWND hWnd,
3187 UINT_PTR nIDEvent,
3188 UINT uElapse,
3189 TIMERPROC lpTimerFunc);
3190
3191 DWORD
3192 NTAPI
3193 NtUserSetThreadLayoutHandles(
3194 DWORD dwUnknown1,
3195 DWORD dwUnknown2);
3196
3197 UINT_PTR
3198 NTAPI
3199 NtUserSetTimer(
3200 HWND hWnd,
3201 UINT_PTR nIDEvent,
3202 UINT uElapse,
3203 TIMERPROC lpTimerFunc);
3204
3205 BOOL
3206 NTAPI
3207 NtUserSetWindowFNID(
3208 HWND hWnd,
3209 WORD fnID);
3210
3211 LONG
3212 NTAPI
3213 NtUserSetWindowLong(
3214 HWND hWnd,
3215 DWORD Index,
3216 LONG NewValue,
3217 BOOL Ansi);
3218
3219 BOOL
3220 NTAPI
3221 NtUserSetWindowPlacement(
3222 HWND hWnd,
3223 WINDOWPLACEMENT *lpwndpl);
3224
3225 BOOL
3226 NTAPI
3227 NtUserSetWindowPos(
3228 HWND hWnd,
3229 HWND hWndInsertAfter,
3230 int X,
3231 int Y,
3232 int cx,
3233 int cy,
3234 UINT uFlags);
3235
3236 INT
3237 NTAPI
3238 NtUserSetWindowRgn(
3239 HWND hWnd,
3240 HRGN hRgn,
3241 BOOL bRedraw);
3242
3243 HHOOK
3244 NTAPI
3245 NtUserSetWindowsHookAW(
3246 int idHook,
3247 HOOKPROC lpfn,
3248 BOOL Ansi);
3249
3250 HHOOK
3251 NTAPI
3252 NtUserSetWindowsHookEx(
3253 HINSTANCE Mod,
3254 PUNICODE_STRING ModuleName,
3255 DWORD ThreadId,
3256 int HookId,
3257 HOOKPROC HookProc,
3258 BOOL Ansi);
3259
3260 BOOL
3261 NTAPI
3262 NtUserSetWindowStationUser(
3263 HWINSTA hWindowStation,
3264 PLUID pluid,
3265 PSID psid,
3266 DWORD size);
3267
3268 WORD
3269 NTAPI
3270 NtUserSetWindowWord(
3271 HWND hWnd,
3272 INT Index,
3273 WORD NewVal);
3274
3275 HWINEVENTHOOK
3276 NTAPI
3277 NtUserSetWinEventHook(
3278 UINT eventMin,
3279 UINT eventMax,
3280 HMODULE hmodWinEventProc,
3281 PUNICODE_STRING puString,
3282 WINEVENTPROC lpfnWinEventProc,
3283 DWORD idProcess,
3284 DWORD idThread,
3285 UINT dwflags);
3286
3287 BOOL
3288 NTAPI
3289 NtUserShowCaret(
3290 HWND hWnd);
3291
3292 BOOL
3293 NTAPI
3294 NtUserHideCaret(
3295 HWND hWnd);
3296
3297 DWORD
3298 NTAPI
3299 NtUserShowScrollBar(
3300 HWND hWnd,
3301 int wBar,
3302 DWORD bShow);
3303
3304 BOOL
3305 NTAPI
3306 NtUserShowWindow(
3307 HWND hWnd,
3308 LONG nCmdShow);
3309
3310 BOOL
3311 NTAPI
3312 NtUserShowWindowAsync(
3313 HWND hWnd,
3314 LONG nCmdShow);
3315
3316 BOOL
3317 NTAPI
3318 NtUserSoundSentry(VOID);
3319
3320 BOOL
3321 NTAPI
3322 NtUserSwitchDesktop(
3323 HDESK hDesktop);
3324
3325 BOOL
3326 NTAPI
3327 NtUserSystemParametersInfo(
3328 UINT uiAction,
3329 UINT uiParam,
3330 PVOID pvParam,
3331 UINT fWinIni);
3332
3333 DWORD
3334 NTAPI
3335 NtUserTestForInteractiveUser(
3336 DWORD dwUnknown1);
3337
3338 INT
3339 NTAPI
3340 NtUserToUnicodeEx(
3341 UINT wVirtKey,
3342 UINT wScanCode,
3343 PBYTE lpKeyState,
3344 LPWSTR pwszBuff,
3345 int cchBuff,
3346 UINT wFlags,
3347 HKL dwhkl);
3348
3349 BOOL
3350 NTAPI
3351 NtUserTrackMouseEvent(
3352 LPTRACKMOUSEEVENT lpEventTrack);
3353
3354 int
3355 NTAPI
3356 NtUserTranslateAccelerator(
3357 HWND Window,
3358 HACCEL Table,
3359 LPMSG Message);
3360
3361 BOOL
3362 NTAPI
3363 NtUserTranslateMessage(
3364 LPMSG lpMsg,
3365 UINT flags );
3366
3367 BOOL
3368 NTAPI
3369 NtUserUnhookWindowsHookEx(
3370 HHOOK Hook);
3371
3372 BOOL
3373 NTAPI
3374 NtUserUnhookWinEvent(
3375 HWINEVENTHOOK hWinEventHook);
3376
3377 BOOL
3378 NTAPI
3379 NtUserUnloadKeyboardLayout(
3380 HKL hKl);
3381
3382 BOOL
3383 NTAPI
3384 NtUserUnlockWindowStation(
3385 HWINSTA hWindowStation);
3386
3387 BOOL
3388 NTAPI
3389 NtUserUnregisterClass(
3390 PUNICODE_STRING ClassNameOrAtom,
3391 HINSTANCE hInstance,
3392 PCLSMENUNAME pClassMenuName);
3393
3394 BOOL
3395 NTAPI
3396 NtUserUnregisterHotKey(
3397 HWND hWnd,
3398 int id);
3399
3400 BOOL
3401 NTAPI
3402 NtUserUnregisterUserApiHook(VOID);
3403
3404 DWORD
3405 NTAPI
3406 NtUserUpdateInputContext(
3407 DWORD Unknown0,
3408 DWORD Unknown1,
3409 DWORD Unknown2);
3410
3411 DWORD
3412 NTAPI
3413 NtUserUpdateInstance(
3414 DWORD Unknown0,
3415 DWORD Unknown1,
3416 DWORD Unknown2);
3417
3418 BOOL
3419 NTAPI
3420 NtUserUpdateLayeredWindow(
3421 HWND hwnd,
3422 HDC hdcDst,
3423 POINT *pptDst,
3424 SIZE *psize,
3425 HDC hdcSrc,
3426 POINT *pptSrc,
3427 COLORREF crKey,
3428 BLENDFUNCTION *pblend,
3429 DWORD dwFlags,
3430 RECT *prcDirty);
3431
3432 BOOL
3433 NTAPI
3434 NtUserUpdatePerUserSystemParameters(
3435 DWORD dwReserved,
3436 BOOL bEnable);
3437
3438 BOOL
3439 NTAPI
3440 NtUserUserHandleGrantAccess(
3441 IN HANDLE hUserHandle,
3442 IN HANDLE hJob,
3443 IN BOOL bGrant);
3444
3445 BOOL
3446 NTAPI
3447 NtUserValidateHandleSecure(
3448 HANDLE hHdl);
3449
3450 BOOL
3451 NTAPI
3452 NtUserValidateRect(
3453 HWND hWnd,
3454 CONST RECT *lpRect);
3455
3456 BOOL
3457 APIENTRY
3458 NtUserValidateTimerCallback(
3459 LPARAM lParam);
3460
3461 DWORD
3462 NTAPI
3463 NtUserVkKeyScanEx(
3464 WCHAR wChar,
3465 HKL KeyboardLayout,
3466 BOOL bUsehHK);
3467
3468 DWORD
3469 NTAPI
3470 NtUserWaitForInputIdle(
3471 IN HANDLE hProcess,
3472 IN DWORD dwMilliseconds,
3473 IN BOOL Unknown2); /* Always FALSE */
3474
3475 DWORD
3476 NTAPI
3477 NtUserWaitForMsgAndEvent(
3478 DWORD Unknown0);
3479
3480 BOOL
3481 NTAPI
3482 NtUserWaitMessage(VOID);
3483
3484 DWORD
3485 NTAPI
3486 NtUserWin32PoolAllocationStats(
3487 DWORD Unknown0,
3488 DWORD Unknown1,
3489 DWORD Unknown2,
3490 DWORD Unknown3,
3491 DWORD Unknown4,
3492 DWORD Unknown5);
3493
3494 HWND
3495 NTAPI
3496 NtUserWindowFromPoint(
3497 LONG X,
3498 LONG Y);
3499
3500 DWORD
3501 NTAPI
3502 NtUserYieldTask(VOID);
3503
3504 /* NtUserBad
3505 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3506 */
3507
3508 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3509 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3510 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3511 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3512 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051
3513 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
3514
3515 #define MSQ_STATE_CAPTURE 0x1
3516 #define MSQ_STATE_ACTIVE 0x2
3517 #define MSQ_STATE_FOCUS 0x3
3518 #define MSQ_STATE_MENUOWNER 0x4
3519 #define MSQ_STATE_MOVESIZE 0x5
3520 #define MSQ_STATE_CARET 0x6
3521
3522 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3523 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3524
3525 BOOL
3526 NTAPI
3527 NtUserGetMonitorInfo(
3528 IN HMONITOR hMonitor,
3529 OUT LPMONITORINFO pMonitorInfo);
3530
3531 /* Should be done in usermode */
3532
3533 HMONITOR
3534 NTAPI
3535 NtUserMonitorFromPoint(
3536 IN POINT point,
3537 IN DWORD dwFlags);
3538
3539 HMONITOR
3540 NTAPI
3541 NtUserMonitorFromRect(
3542 IN LPCRECT pRect,
3543 IN DWORD dwFlags);
3544
3545 HMONITOR
3546 NTAPI
3547 NtUserMonitorFromWindow(
3548 IN HWND hWnd,
3549 IN DWORD dwFlags);
3550
3551 typedef struct _SETSCROLLBARINFO
3552 {
3553 int nTrackPos;
3554 int reserved;
3555 DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
3556 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3557
3558 BOOL
3559 NTAPI
3560 NtUserSetScrollBarInfo(
3561 HWND hwnd,
3562 LONG idObject,
3563 SETSCROLLBARINFO *info);
3564
3565 #endif /* __WIN32K_NTUSER_H */
3566
3567 /* EOF */