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