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