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