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