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