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