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