[WIN32K]
[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 typedef struct _USERCONNECT
1026 {
1027 ULONG ulVersion;
1028 ULONG ulCurrentVersion;
1029 DWORD dwDispatchCount;
1030 SHAREDINFO siClient;
1031 } USERCONNECT, *PUSERCONNECT;
1032
1033 // WinNT 5.0 compatible user32 / win32k
1034 #define USER_VERSION MAKELONG(0x0000, 0x0005)
1035
1036 typedef struct tagGETCLIPBDATA
1037 {
1038 UINT uFmtRet;
1039 BOOL fGlobalHandle;
1040 union
1041 {
1042 HANDLE hLocale;
1043 HANDLE hPalette;
1044 };
1045 } GETCLIPBDATA, *PGETCLIPBDATA;
1046
1047 typedef struct tagSETCLIPBDATA
1048 {
1049 BOOL fGlobalHandle;
1050 BOOL fIncSerialNumber;
1051 } SETCLIPBDATA, *PSETCLIPBDATA;
1052
1053 // Used with NtUserSetCursorIconData, last parameter.
1054 typedef struct tagCURSORDATA
1055 {
1056 LPWSTR lpName;
1057 LPWSTR lpModName;
1058 USHORT rt;
1059 USHORT dummy;
1060 ULONG CURSORF_flags;
1061 SHORT xHotspot;
1062 SHORT yHotspot;
1063 HBITMAP hbmMask;
1064 HBITMAP hbmColor;
1065 HBITMAP hbmAlpha;
1066 RECT rcBounds;
1067 HBITMAP hbmUserAlpha; // Could be in W7U, not in W2k
1068 ULONG bpp;
1069 ULONG cx;
1070 ULONG cy;
1071 INT cpcur;
1072 INT cicur;
1073 struct tagCURSORDATA * aspcur;
1074 DWORD * aicur;
1075 INT * ajifRate;
1076 INT iicur;
1077 } CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
1078
1079 // CURSORF_flags:
1080 #define CURSORF_FROMRESOURCE 0x0001
1081 #define CURSORF_GLOBAL 0x0002
1082 #define CURSORF_LRSHARED 0x0004
1083 #define CURSORF_ACON 0x0008
1084 #define CURSORF_WOWCLEANUP 0x0010
1085 #define CURSORF_ACONFRAME 0x0040
1086 #define CURSORF_SECRET 0x0080
1087 #define CURSORF_LINKED 0x0100
1088 #define CURSORF_CURRENT 0x0200
1089
1090 DWORD
1091 NTAPI
1092 NtUserAssociateInputContext(
1093 DWORD dwUnknown1,
1094 DWORD dwUnknown2,
1095 DWORD dwUnknown3);
1096
1097 DWORD
1098 NTAPI
1099 NtUserBuildHimcList(
1100 DWORD dwUnknown1,
1101 DWORD dwUnknown2,
1102 DWORD dwUnknown3,
1103 DWORD dwUnknown4);
1104
1105 DWORD
1106 NTAPI
1107 NtUserCalcMenuBar(
1108 DWORD dwUnknown1,
1109 DWORD dwUnknown2,
1110 DWORD dwUnknown3,
1111 DWORD dwUnknown4,
1112 DWORD dwUnknown5);
1113
1114 DWORD
1115 NTAPI
1116 NtUserCheckMenuItem(
1117 HMENU hmenu,
1118 UINT uIDCheckItem,
1119 UINT uCheck);
1120
1121 DWORD
1122 NTAPI
1123 NtUserCtxDisplayIOCtl(
1124 DWORD dwUnknown1,
1125 DWORD dwUnknown2,
1126 DWORD dwUnknown3);
1127
1128 BOOL
1129 NTAPI
1130 NtUserDeleteMenu(
1131 HMENU hMenu,
1132 UINT uPosition,
1133 UINT uFlags);
1134
1135 BOOL
1136 NTAPI
1137 NtUserDestroyMenu(
1138 HMENU hMenu);
1139
1140 DWORD
1141 NTAPI
1142 NtUserDrawMenuBarTemp(
1143 HWND hWnd,
1144 HDC hDC,
1145 PRECT hRect,
1146 HMENU hMenu,
1147 HFONT hFont);
1148
1149 UINT
1150 NTAPI
1151 NtUserEnableMenuItem(
1152 HMENU hMenu,
1153 UINT uIDEnableItem,
1154 UINT uEnable);
1155
1156 BOOL
1157 NTAPI
1158 NtUserEndMenu(VOID);
1159
1160 BOOL
1161 NTAPI
1162 NtUserGetMenuBarInfo(
1163 HWND hwnd,
1164 LONG idObject,
1165 LONG idItem,
1166 PMENUBARINFO pmbi);
1167
1168 UINT
1169 NTAPI
1170 NtUserGetMenuIndex(
1171 HMENU hMenu,
1172 HMENU hSubMenu);
1173
1174 BOOL
1175 NTAPI
1176 NtUserGetMenuItemRect(
1177 HWND hWnd,
1178 HMENU hMenu,
1179 UINT uItem,
1180 LPRECT lprcItem);
1181
1182 HMENU
1183 NTAPI
1184 NtUserGetSystemMenu(
1185 HWND hWnd,
1186 BOOL bRevert);
1187
1188 BOOL
1189 NTAPI
1190 NtUserHiliteMenuItem(
1191 HWND hWnd,
1192 HMENU hMenu,
1193 UINT uItemHilite,
1194 UINT uHilite);
1195
1196 int
1197 NTAPI
1198 NtUserMenuItemFromPoint(
1199 HWND hWnd,
1200 HMENU hMenu,
1201 DWORD X,
1202 DWORD Y);
1203
1204 BOOL
1205 NTAPI
1206 NtUserRemoveMenu(
1207 HMENU hMenu,
1208 UINT uPosition,
1209 UINT uFlags);
1210
1211 BOOL
1212 NTAPI
1213 NtUserSetMenu(
1214 HWND hWnd,
1215 HMENU hMenu,
1216 BOOL bRepaint);
1217
1218 BOOL
1219 NTAPI
1220 NtUserSetMenuContextHelpId(
1221 HMENU hmenu,
1222 DWORD dwContextHelpId);
1223
1224 BOOL
1225 NTAPI
1226 NtUserSetMenuDefaultItem(
1227 HMENU hMenu,
1228 UINT uItem,
1229 UINT fByPos);
1230
1231 BOOL
1232 NTAPI
1233 NtUserSetMenuFlagRtoL(
1234 HMENU hMenu);
1235
1236 BOOL
1237 NTAPI
1238 NtUserSetSystemMenu(
1239 HWND hWnd,
1240 HMENU hMenu);
1241
1242 BOOL
1243 NTAPI
1244 NtUserThunkedMenuInfo(
1245 HMENU hMenu,
1246 LPCMENUINFO lpcmi);
1247
1248 BOOL
1249 NTAPI
1250 NtUserThunkedMenuItemInfo(
1251 HMENU hMenu,
1252 UINT uItem,
1253 BOOL fByPosition,
1254 BOOL bInsert,
1255 LPMENUITEMINFOW lpmii,
1256 PUNICODE_STRING lpszCaption);
1257
1258 BOOL
1259 NTAPI
1260 NtUserTrackPopupMenuEx(
1261 HMENU hmenu,
1262 UINT fuFlags,
1263 int x,
1264 int y,
1265 HWND hwnd,
1266 LPTPMPARAMS lptpm);
1267
1268 HKL
1269 NTAPI
1270 NtUserActivateKeyboardLayout(
1271 HKL hKl,
1272 ULONG Flags);
1273
1274 DWORD
1275 NTAPI
1276 NtUserAlterWindowStyle(
1277 DWORD Unknown0,
1278 DWORD Unknown1,
1279 DWORD Unknown2);
1280
1281 BOOL
1282 NTAPI
1283 NtUserAttachThreadInput(
1284 IN DWORD idAttach,
1285 IN DWORD idAttachTo,
1286 IN BOOL fAttach);
1287
1288 HDC NTAPI
1289 NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs);
1290
1291 BOOL
1292 NTAPI
1293 NtUserBitBltSysBmp(
1294 HDC hdc,
1295 INT nXDest,
1296 INT nYDest,
1297 INT nWidth,
1298 INT nHeight,
1299 INT nXSrc,
1300 INT nYSrc,
1301 DWORD dwRop );
1302
1303 BOOL
1304 NTAPI
1305 NtUserBlockInput(
1306 BOOL BlockIt);
1307
1308 NTSTATUS
1309 NTAPI
1310 NtUserBuildHwndList(
1311 HDESK hDesktop,
1312 HWND hwndParent,
1313 BOOLEAN bChildren,
1314 ULONG dwThreadId,
1315 ULONG lParam,
1316 HWND* pWnd,
1317 ULONG* pBufSize);
1318
1319 NTSTATUS NTAPI
1320 NtUserBuildNameList(
1321 HWINSTA hWinSta,
1322 ULONG dwSize,
1323 PVOID lpBuffer,
1324 PULONG pRequiredSize);
1325
1326 NTSTATUS
1327 NTAPI
1328 NtUserBuildPropList(
1329 HWND hWnd,
1330 LPVOID Buffer,
1331 DWORD BufferSize,
1332 DWORD *Count);
1333
1334 /* apfnSimpleCall indices from Windows XP SP 2 */
1335 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1336 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
1337
1338 enum SimpleCallRoutines
1339 {
1340 NOPARAM_ROUTINE_CREATEMENU,
1341 NOPARAM_ROUTINE_CREATEMENUPOPUP,
1342 #if (WIN32K_VERSION >= NTDDI_VISTA)
1343 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1344 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1345 NOPARAM_ROUTINE_CREATESYSTEMTHREADS,
1346 NOPARAM_ROUTINE_DESTROY_CARET,
1347 #endif
1348 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,
1349 #if (WIN32K_VERSION < NTDDI_VISTA)
1350 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1351 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1352 NOPARAM_ROUTINE_DESTROY_CARET,
1353 #endif
1354 NOPARAM_ROUTINE_GETDEVICECHANGEINFO,
1355 NOPARAM_ROUTINE_GETIMESHOWSTATUS,
1356 NOPARAM_ROUTINE_GETINPUTDESKTOP,
1357 NOPARAM_ROUTINE_GETMSESSAGEPOS,
1358 #if (WIN32K_VERSION >= NTDDI_VISTA)
1359 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1360 #else
1361 NOPARAM_ROUTINE_GETREMOTEPROCID,
1362 #endif
1363 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE,
1364 NOPARAM_ROUTINE_LOADCURSANDICOS,
1365 #if (WIN32K_VERSION >= NTDDI_VISTA)
1366 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1367 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */
1368 #endif
1369 NOPARAM_ROUTINE_RELEASECAPTURE,
1370 NOPARAM_ROUTINE_RESETDBLCLICK,
1371 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS,
1372 NOPARAM_ROUTINE_REMOTECONSHDWSTOP,
1373 NOPARAM_ROUTINE_REMOTEDISCONNECT,
1374 NOPARAM_ROUTINE_REMOTELOGOFF,
1375 NOPARAM_ROUTINE_REMOTENTSECURITY,
1376 NOPARAM_ROUTINE_REMOTESHDWSETUP,
1377 NOPARAM_ROUTINE_REMOTESHDWSTOP,
1378 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE,
1379 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE,
1380 NOPARAM_ROUTINE_REMOTECONNECTSTATE,
1381 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING,
1382 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,
1383 #if (WIN32K_VERSION >= NTDDI_VISTA)
1384 NOPARAM_ROUTINE_WAKERITFORSHTDWN,
1385 #endif
1386 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP,
1387 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,
1388 #if (WIN32K_VERSION < NTDDI_VISTA)
1389 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1390 #endif
1391 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,
1392 #if (WIN32K_VERSION >= NTDDI_VISTA)
1393 ONEPARAM_ROUTINE_GETSENDMSGRECVR,
1394 #endif
1395 ONEPARAM_ROUTINE_WINDOWFROMDC,
1396 ONEPARAM_ROUTINE_ALLOWSETFOREGND,
1397 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,
1398 #if (WIN32K_VERSION < NTDDI_VISTA)
1399 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
1400 #endif
1401 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE,
1402 ONEPARAM_ROUTINE_DIRECTEDYIELD,
1403 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,
1404 #if (WIN32K_VERSION < NTDDI_VISTA)
1405 ONEPARAM_ROUTINE_GETCURSORPOS,
1406 #endif
1407 ONEPARAM_ROUTINE_GETINPUTEVENT,
1408 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT,
1409 ONEPARAM_ROUTINE_GETKEYBOARDTYPE,
1410 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT,
1411 ONEPARAM_ROUTINE_GETQUEUESTATUS,
1412 ONEPARAM_ROUTINE_GETWINSTAINFO,
1413 #if (WIN32K_VERSION < NTDDI_VISTA)
1414 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1415 #endif
1416 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW,
1417 ONEPARAM_ROUTINE_LOADFONTS,
1418 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT,
1419 ONEPARAM_ROUTINE_MESSAGEBEEP,
1420 ONEPARAM_ROUTINE_PLAYEVENTSOUND,
1421 ONEPARAM_ROUTINE_POSTQUITMESSAGE,
1422 #if (WIN32K_VERSION < NTDDI_VISTA)
1423 ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
1424 #endif
1425 ONEPARAM_ROUTINE_REALIZEPALETTE,
1426 ONEPARAM_ROUTINE_REGISTERLPK,
1427 #if (WIN32K_VERSION >= NTDDI_VISTA)
1428 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1429 #endif
1430 ONEPARAM_ROUTINE_REMOTERECONNECT,
1431 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS,
1432 ONEPARAM_ROUTINE_RELEASEDC,
1433 #if (WIN32K_VERSION >= NTDDI_VISTA)
1434 ONEPARAM_ROUTINE_REMOTENOTIFY,
1435 #endif
1436 ONEPARAM_ROUTINE_REPLYMESSAGE,
1437 ONEPARAM_ROUTINE_SETCARETBLINKTIME,
1438 ONEPARAM_ROUTINE_SETDBLCLICKTIME,
1439 #if (WIN32K_VERSION < NTDDI_VISTA)
1440 ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
1441 #endif
1442 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO,
1443 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,
1444 #if (WIN32K_VERSION >= NTDDI_VISTA)
1445 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,
1446 #endif
1447 ONEPARAM_ROUTINE_SHOWCURSOR,
1448 ONEPARAM_ROUTINE_SHOWSTARTGLASS,
1449 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON,
1450 X_ROUTINE_WOWMODULEUNLOAD,
1451 #if (WIN32K_VERSION < NTDDI_VISTA)
1452 X_ROUTINE_REMOTENOTIFY,
1453 #endif
1454 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW,
1455 HWND_ROUTINE_DWP_GETENABLEDPOPUP,
1456 HWND_ROUTINE_GETWNDCONTEXTHLPID,
1457 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
1458 HWND_ROUTINE_SETMSGBOX,
1459 HWNDOPT_ROUTINE_SETPROGMANWINDOW,
1460 HWNDOPT_ROUTINE_SETTASKMANWINDOW,
1461 HWNDPARAM_ROUTINE_GETCLASSICOCUR,
1462 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE,
1463 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER,
1464 HWNDPARAM_ROUTINE_SETDIALOGPOINTER,
1465 HWNDPARAM_ROUTINE_SETVISIBLE,
1466 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID,
1467 HWNDPARAM_ROUTINE_SETWINDOWSTATE,
1468 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
1469 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS,
1470 HWNDLOCK_ROUTINE_DRAWMENUBAR,
1471 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD,
1472 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE,
1473 HWNDLOCK_ROUTINE_REDRAWFRAME,
1474 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK,
1475 HWNDLOCK_ROUTINE_SETDLGSYSMENU,
1476 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW,
1477 HWNDLOCK_ROUTINE_SETSYSMENU,
1478 HWNDLOCK_ROUTINE_UPDATECKIENTRECT,
1479 HWNDLOCK_ROUTINE_UPDATEWINDOW,
1480 X_ROUTINE_IMESHOWSTATUSCHANGE,
1481 TWOPARAM_ROUTINE_ENABLEWINDOW,
1482 TWOPARAM_ROUTINE_REDRAWTITLE,
1483 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS,
1484 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW,
1485 TWOPARAM_ROUTINE_UPDATEWINDOWS,
1486 TWOPARAM_ROUTINE_VALIDATERGN,
1487 #if (WIN32K_VERSION >= NTDDI_VISTA)
1488 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER,
1489 TWOPARAM_ROUTINE_GETCURSORPOS,
1490 #endif
1491 TWOPARAM_ROUTINE_GETHDEVNAME,
1492 TWOPARAM_ROUTINE_INITANSIOEM,
1493 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,
1494 #if (WIN32K_VERSION >= NTDDI_VISTA)
1495 TWOPARAM_ROUTINE_REGISTERGHSTWND,
1496 #endif
1497 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,
1498 #if (WIN32K_VERSION >= NTDDI_VISTA)
1499 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,
1500 #else
1501 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1502 #endif
1503 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS,
1504 TWOPARAM_ROUTINE_SHADOWCLEANUP,
1505 TWOPARAM_ROUTINE_REMOTESHADOWSTART,
1506 TWOPARAM_ROUTINE_SETCARETPOS,
1507 TWOPARAM_ROUTINE_SETCURSORPOS,
1508 #if (WIN32K_VERSION >= NTDDI_VISTA)
1509 TWOPARAM_ROUTINE_SETPHYSCURSORPOS,
1510 #endif
1511 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK,
1512 TWOPARAM_ROUTINE_WOWCLEANUP
1513 };
1514
1515 DWORD
1516 NTAPI
1517 NtUserCallHwnd(
1518 HWND hWnd,
1519 DWORD Routine);
1520
1521 BOOL
1522 NTAPI
1523 NtUserCallHwndLock(
1524 HWND hWnd,
1525 DWORD Routine);
1526
1527 HWND
1528 NTAPI
1529 NtUserCallHwndOpt(
1530 HWND hWnd,
1531 DWORD Routine);
1532
1533 DWORD
1534 NTAPI
1535 NtUserCallHwndParam(
1536 HWND hWnd,
1537 DWORD Param,
1538 DWORD Routine);
1539
1540 DWORD
1541 NTAPI
1542 NtUserCallHwndParamLock(
1543 HWND hWnd,
1544 DWORD Param,
1545 DWORD Routine);
1546
1547 BOOL
1548 NTAPI
1549 NtUserCallMsgFilter(
1550 LPMSG msg,
1551 INT code);
1552
1553 LRESULT
1554 NTAPI
1555 NtUserCallNextHookEx(
1556 int Code,
1557 WPARAM wParam,
1558 LPARAM lParam,
1559 BOOL Ansi);
1560
1561 DWORD_PTR
1562 NTAPI
1563 NtUserCallNoParam(
1564 DWORD Routine);
1565
1566 DWORD_PTR
1567 NTAPI
1568 NtUserCallOneParam(
1569 DWORD_PTR Param,
1570 DWORD Routine);
1571
1572 DWORD_PTR
1573 NTAPI
1574 NtUserCallTwoParam(
1575 DWORD_PTR Param1,
1576 DWORD_PTR Param2,
1577 DWORD Routine);
1578
1579 BOOL
1580 NTAPI
1581 NtUserChangeClipboardChain(
1582 HWND hWndRemove,
1583 HWND hWndNewNext);
1584
1585 LONG
1586 NTAPI
1587 NtUserChangeDisplaySettings(
1588 PUNICODE_STRING lpszDeviceName,
1589 LPDEVMODEW lpDevMode,
1590 HWND hwnd,
1591 DWORD dwflags,
1592 LPVOID lParam);
1593
1594 BOOL
1595 NTAPI
1596 NtUserCheckDesktopByThreadId(
1597 DWORD dwThreadId);
1598
1599 BOOL
1600 NTAPI
1601 NtUserCheckWindowThreadDesktop(
1602 HWND hwnd,
1603 DWORD dwThreadId,
1604 ULONG ReturnValue);
1605
1606 DWORD
1607 NTAPI
1608 NtUserCheckImeHotKey(
1609 DWORD dwUnknown1,
1610 DWORD dwUnknown2);
1611
1612 HWND NTAPI
1613 NtUserChildWindowFromPointEx(
1614 HWND Parent,
1615 LONG x,
1616 LONG y,
1617 UINT Flags);
1618
1619 BOOL
1620 NTAPI
1621 NtUserClipCursor(
1622 RECT *lpRect);
1623
1624 BOOL
1625 NTAPI
1626 NtUserCloseClipboard(VOID);
1627
1628 BOOL
1629 NTAPI
1630 NtUserCloseDesktop(
1631 HDESK hDesktop);
1632
1633 BOOL
1634 NTAPI
1635 NtUserCloseWindowStation(
1636 HWINSTA hWinSta);
1637
1638 /* Console commands for NtUserConsoleControl */
1639 typedef enum _CONSOLECONTROL
1640 {
1641 GuiConsoleWndClassAtom,
1642 ConsoleMakePalettePublic = 5,
1643 ConsoleAcquireDisplayOwnership,
1644 } CONSOLECONTROL, *PCONSOLECONTROL;
1645
1646 NTSTATUS
1647 APIENTRY
1648 NtUserConsoleControl(
1649 IN CONSOLECONTROL ConsoleCtrl,
1650 IN PVOID ConsoleCtrlInfo,
1651 IN ULONG ConsoleCtrlInfoLength);
1652
1653 HANDLE
1654 NTAPI
1655 NtUserConvertMemHandle(
1656 PVOID pData,
1657 DWORD cbData);
1658
1659 ULONG
1660 NTAPI
1661 NtUserCopyAcceleratorTable(
1662 HACCEL Table,
1663 LPACCEL Entries,
1664 ULONG EntriesCount);
1665
1666 DWORD
1667 NTAPI
1668 NtUserCountClipboardFormats(VOID);
1669
1670 HACCEL
1671 NTAPI
1672 NtUserCreateAcceleratorTable(
1673 LPACCEL Entries,
1674 ULONG EntriesCount);
1675
1676 BOOL
1677 NTAPI
1678 NtUserCreateCaret(
1679 HWND hWnd,
1680 HBITMAP hBitmap,
1681 int nWidth,
1682 int nHeight);
1683
1684 HDESK
1685 NTAPI
1686 NtUserCreateDesktop(
1687 POBJECT_ATTRIBUTES poa,
1688 PUNICODE_STRING lpszDesktopDevice,
1689 LPDEVMODEW lpdmw,
1690 DWORD dwFlags,
1691 ACCESS_MASK dwDesiredAccess);
1692
1693 DWORD
1694 NTAPI
1695 NtUserCreateInputContext(
1696 DWORD dwUnknown1);
1697
1698 NTSTATUS
1699 NTAPI
1700 NtUserCreateLocalMemHandle(
1701 HANDLE hMem,
1702 PVOID pData,
1703 DWORD cbData,
1704 DWORD *pcbData);
1705
1706 HWND
1707 NTAPI
1708 NtUserCreateWindowEx(
1709 DWORD dwExStyle,
1710 PLARGE_STRING plstrClassName,
1711 PLARGE_STRING plstrClsVersion,
1712 PLARGE_STRING plstrWindowName,
1713 DWORD dwStyle,
1714 int x,
1715 int y,
1716 int nWidth,
1717 int nHeight,
1718 HWND hWndParent,
1719 HMENU hMenu,
1720 HINSTANCE hInstance,
1721 LPVOID lpParam,
1722 DWORD dwFlags,
1723 PVOID acbiBuffer);
1724
1725 HWINSTA
1726 NTAPI
1727 NtUserCreateWindowStation(
1728 POBJECT_ATTRIBUTES ObjectAttributes,
1729 ACCESS_MASK dwDesiredAccess,
1730 DWORD Unknown2,
1731 DWORD Unknown3,
1732 DWORD Unknown4,
1733 DWORD Unknown5,
1734 DWORD Unknown6);
1735
1736 BOOL
1737 NTAPI
1738 NtUserDdeGetQualityOfService(
1739 IN HWND hwndClient,
1740 IN HWND hWndServer,
1741 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1742
1743 DWORD
1744 NTAPI
1745 NtUserDdeInitialize(
1746 DWORD Unknown0,
1747 DWORD Unknown1,
1748 DWORD Unknown2,
1749 DWORD Unknown3,
1750 DWORD Unknown4);
1751
1752 BOOL
1753 NTAPI
1754 NtUserDdeSetQualityOfService(
1755 IN HWND hwndClient,
1756 IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
1757 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1758
1759 HDWP NTAPI
1760 NtUserDeferWindowPos(
1761 HDWP WinPosInfo,
1762 HWND Wnd,
1763 HWND WndInsertAfter,
1764 int x,
1765 int y,
1766 int cx,
1767 int cy,
1768 UINT Flags);
1769
1770 BOOL NTAPI
1771 NtUserDefSetText(HWND WindowHandle, PLARGE_STRING WindowText);
1772
1773 BOOLEAN
1774 NTAPI
1775 NtUserDestroyAcceleratorTable(
1776 HACCEL Table);
1777
1778 BOOL
1779 NTAPI
1780 NtUserDestroyCursor(
1781 _In_ HANDLE Handle,
1782 _In_ BOOL bForce);
1783
1784 DWORD
1785 NTAPI
1786 NtUserDestroyInputContext(
1787 DWORD dwUnknown1);
1788
1789 BOOLEAN NTAPI
1790 NtUserDestroyWindow(HWND Wnd);
1791
1792 DWORD
1793 NTAPI
1794 NtUserDisableThreadIme(
1795 DWORD dwUnknown1);
1796
1797 LRESULT
1798 NTAPI
1799 NtUserDispatchMessage(PMSG pMsg);
1800
1801 BOOL
1802 NTAPI
1803 NtUserDragDetect(
1804 HWND hWnd,
1805 POINT pt);
1806
1807 DWORD
1808 NTAPI
1809 NtUserDragObject(
1810 HWND hwnd1,
1811 HWND hwnd2,
1812 UINT u1,
1813 DWORD dw1,
1814 HCURSOR hc1);
1815
1816 BOOL
1817 NTAPI
1818 NtUserDrawAnimatedRects(
1819 HWND hwnd,
1820 INT idAni,
1821 RECT *lprcFrom,
1822 RECT *lprcTo);
1823
1824 BOOL
1825 NTAPI
1826 NtUserDrawCaption(
1827 HWND hWnd,
1828 HDC hDc,
1829 LPCRECT lpRc,
1830 UINT uFlags);
1831
1832 BOOL
1833 NTAPI
1834 NtUserDrawCaptionTemp(
1835 HWND hWnd,
1836 HDC hDC,
1837 LPCRECT lpRc,
1838 HFONT hFont,
1839 HICON hIcon,
1840 const PUNICODE_STRING str,
1841 UINT uFlags);
1842
1843 // Used with NtUserDrawIconEx, last parameter.
1844 typedef struct _DRAWICONEXDATA
1845 {
1846 HBITMAP hbmMask;
1847 HBITMAP hbmColor;
1848 int cx;
1849 int cy;
1850 } DRAWICONEXDATA, *PDRAWICONEXDATA;
1851
1852 BOOL
1853 NTAPI
1854 NtUserDrawIconEx(
1855 HDC hdc,
1856 int xLeft,
1857 int yTop,
1858 HICON hIcon,
1859 int cxWidth,
1860 int cyWidth,
1861 UINT istepIfAniCur,
1862 HBRUSH hbrFlickerFreeDraw,
1863 UINT diFlags,
1864 BOOL bMetaHDC,
1865 PVOID pDIXData);
1866
1867 BOOL
1868 NTAPI
1869 NtUserEmptyClipboard(VOID);
1870
1871 BOOL
1872 NTAPI
1873 NtUserEnableScrollBar(
1874 HWND hWnd,
1875 UINT wSBflags,
1876 UINT wArrows);
1877
1878 BOOL
1879 NTAPI
1880 NtUserEndDeferWindowPosEx(
1881 HDWP WinPosInfo,
1882 DWORD Unknown1);
1883
1884 BOOL NTAPI
1885 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
1886
1887 BOOL
1888 NTAPI
1889 NtUserEnumDisplayDevices (
1890 PUNICODE_STRING lpDevice, /* device name */
1891 DWORD iDevNum, /* display device */
1892 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
1893 DWORD dwFlags ); /* reserved */
1894
1895 /*BOOL
1896 NTAPI
1897 NtUserEnumDisplayMonitors (
1898 HDC hdc,
1899 LPCRECT lprcClip,
1900 MONITORENUMPROC lpfnEnum,
1901 LPARAM dwData );*/
1902 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1903 INT
1904 NTAPI
1905 NtUserEnumDisplayMonitors(
1906 OPTIONAL IN HDC hDC,
1907 OPTIONAL IN LPCRECT pRect,
1908 OPTIONAL OUT HMONITOR *hMonitorList,
1909 OPTIONAL OUT LPRECT monitorRectList,
1910 OPTIONAL IN DWORD listSize );
1911
1912
1913 NTSTATUS
1914 NTAPI
1915 NtUserEnumDisplaySettings(
1916 PUNICODE_STRING lpszDeviceName,
1917 DWORD iModeNum,
1918 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
1919 DWORD dwFlags );
1920
1921 DWORD
1922 NTAPI
1923 NtUserEvent(
1924 DWORD Unknown0);
1925
1926 DWORD
1927 NTAPI
1928 NtUserExcludeUpdateRgn(
1929 HDC hDC,
1930 HWND hWnd);
1931
1932 BOOL
1933 NTAPI
1934 NtUserFillWindow(
1935 HWND hWndPaint,
1936 HWND hWndPaint1,
1937 HDC hDC,
1938 HBRUSH hBrush);
1939
1940 HWND
1941 NTAPI
1942 NtUserFindWindowEx(
1943 HWND hwndParent,
1944 HWND hwndChildAfter,
1945 PUNICODE_STRING ucClassName,
1946 PUNICODE_STRING ucWindowName,
1947 DWORD dwUnknown
1948 );
1949
1950 BOOL
1951 NTAPI
1952 NtUserFlashWindowEx(
1953 IN PFLASHWINFO pfwi);
1954
1955 BOOL
1956 NTAPI
1957 NtUserGetAltTabInfo(
1958 HWND hwnd,
1959 INT iItem,
1960 PALTTABINFO pati,
1961 LPWSTR pszItemText,
1962 UINT cchItemText,
1963 BOOL Ansi);
1964
1965 HWND NTAPI
1966 NtUserGetAncestor(HWND hWnd, UINT Flags);
1967
1968 DWORD
1969 NTAPI
1970 NtUserGetAppImeLevel(
1971 DWORD dwUnknown1);
1972
1973 SHORT
1974 NTAPI
1975 NtUserGetAsyncKeyState(
1976 INT Key);
1977
1978 _Success_(return!=0)
1979 _At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return*2+2))
1980 ULONG
1981 APIENTRY
1982 NtUserGetAtomName(
1983 _In_ ATOM atom,
1984 _Inout_ PUNICODE_STRING pustrName);
1985
1986 UINT
1987 NTAPI
1988 NtUserGetCaretBlinkTime(VOID);
1989
1990 BOOL
1991 NTAPI
1992 NtUserGetCaretPos(
1993 LPPOINT lpPoint);
1994
1995 BOOL NTAPI
1996 NtUserGetClassInfo(HINSTANCE hInstance,
1997 PUNICODE_STRING ClassName,
1998 LPWNDCLASSEXW wcex,
1999 LPWSTR *ppszMenuName,
2000 BOOL Ansi);
2001
2002 INT
2003 NTAPI
2004 NtUserGetClassName(HWND hWnd,
2005 BOOL Real, // 0 GetClassNameW, 1 RealGetWindowClassA/W
2006 PUNICODE_STRING ClassName);
2007
2008 HANDLE
2009 NTAPI
2010 NtUserGetClipboardData(
2011 UINT fmt,
2012 PGETCLIPBDATA pgcd);
2013
2014 INT
2015 NTAPI
2016 NtUserGetClipboardFormatName(
2017 UINT uFormat,
2018 LPWSTR lpszFormatName,
2019 INT cchMaxCount);
2020
2021 HWND
2022 NTAPI
2023 NtUserGetClipboardOwner(VOID);
2024
2025 DWORD
2026 NTAPI
2027 NtUserGetClipboardSequenceNumber(VOID);
2028
2029 HWND
2030 NTAPI
2031 NtUserGetClipboardViewer(VOID);
2032
2033 BOOL
2034 NTAPI
2035 NtUserGetClipCursor(
2036 RECT *lpRect);
2037
2038 BOOL
2039 NTAPI
2040 NtUserGetComboBoxInfo(
2041 HWND hWnd,
2042 PCOMBOBOXINFO pcbi);
2043
2044 HBRUSH
2045 NTAPI
2046 NtUserGetControlBrush(
2047 HWND hwnd,
2048 HDC hdc,
2049 UINT ctlType);
2050
2051 HBRUSH
2052 NTAPI
2053 NtUserGetControlColor(
2054 HWND hwndParent,
2055 HWND hwnd,
2056 HDC hdc,
2057 UINT CtlMsg);
2058
2059 ULONG_PTR
2060 NTAPI
2061 NtUserGetCPD(
2062 HWND hWnd,
2063 GETCPD Flags,
2064 ULONG_PTR Proc);
2065
2066 HCURSOR
2067 NTAPI
2068 NtUserGetCursorFrameInfo(
2069 HCURSOR hCursor,
2070 DWORD istep,
2071 INT* rate_jiffies,
2072 DWORD* num_steps);
2073
2074 BOOL
2075 NTAPI
2076 NtUserGetCursorInfo(
2077 PCURSORINFO pci);
2078
2079 HDC
2080 NTAPI
2081 NtUserGetDC(
2082 HWND hWnd);
2083
2084 HDC
2085 NTAPI
2086 NtUserGetDCEx(
2087 HWND hWnd,
2088 HANDLE hRegion,
2089 ULONG Flags);
2090
2091 UINT
2092 NTAPI
2093 NtUserGetDoubleClickTime(VOID);
2094
2095 HWND
2096 NTAPI
2097 NtUserGetForegroundWindow(VOID);
2098
2099 DWORD
2100 NTAPI
2101 NtUserGetGuiResources(
2102 HANDLE hProcess,
2103 DWORD uiFlags);
2104
2105 BOOL
2106 NTAPI
2107 NtUserGetGUIThreadInfo(
2108 DWORD idThread,
2109 LPGUITHREADINFO lpgui);
2110
2111 _Success_(return!=FALSE)
2112 BOOL
2113 NTAPI
2114 NtUserGetIconInfo(
2115 _In_ HANDLE hCurIcon,
2116 _Out_opt_ PICONINFO IconInfo,
2117 _Inout_opt_ PUNICODE_STRING lpInstName,
2118 _Inout_opt_ PUNICODE_STRING lpResName,
2119 _Out_opt_ LPDWORD pbpp,
2120 _In_ BOOL bInternal);
2121
2122 BOOL
2123 NTAPI
2124 NtUserGetIconSize(
2125 HANDLE Handle,
2126 UINT istepIfAniCur,
2127 LONG *plcx,
2128 LONG *plcy);
2129
2130 DWORD
2131 NTAPI
2132 NtUserGetImeHotKey(
2133 DWORD Unknown0,
2134 DWORD Unknown1,
2135 DWORD Unknown2,
2136 DWORD Unknown3);
2137
2138 DWORD
2139 NTAPI
2140 NtUserGetImeInfoEx(
2141 DWORD dwUnknown1,
2142 DWORD dwUnknown2);
2143
2144 DWORD
2145 NTAPI
2146 NtUserGetInternalWindowPos(
2147 HWND hwnd,
2148 LPRECT rectWnd,
2149 LPPOINT ptIcon);
2150
2151 HKL
2152 NTAPI
2153 NtUserGetKeyboardLayout(
2154 DWORD dwThreadid);
2155
2156 UINT
2157 NTAPI
2158 NtUserGetKeyboardLayoutList(
2159 ULONG nItems,
2160 HKL *pHklBuff);
2161
2162 BOOL
2163 NTAPI
2164 NtUserGetKeyboardLayoutName(
2165 LPWSTR lpszName);
2166
2167 DWORD
2168 NTAPI
2169 NtUserGetKeyboardState(
2170 LPBYTE Unknown0);
2171
2172 DWORD
2173 NTAPI
2174 NtUserGetKeyboardType(
2175 DWORD TypeFlag);
2176
2177 DWORD
2178 NTAPI
2179 NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
2180
2181 SHORT
2182 NTAPI
2183 NtUserGetKeyState(
2184 INT VirtKey);
2185
2186 BOOL
2187 NTAPI
2188 NtUserGetLayeredWindowAttributes(
2189 HWND hwnd,
2190 COLORREF *pcrKey,
2191 BYTE *pbAlpha,
2192 DWORD *pdwFlags);
2193
2194 DWORD
2195 NTAPI
2196 NtUserGetListBoxInfo(
2197 HWND hWnd);
2198
2199 BOOL APIENTRY
2200 NtUserGetMessage(PMSG pMsg,
2201 HWND hWnd,
2202 UINT MsgFilterMin,
2203 UINT MsgFilterMax);
2204
2205 DWORD
2206 NTAPI
2207 NtUserGetMouseMovePointsEx(
2208 UINT cbSize,
2209 LPMOUSEMOVEPOINT lppt,
2210 LPMOUSEMOVEPOINT lpptBuf,
2211 int nBufPoints,
2212 DWORD resolution);
2213
2214 BOOL
2215 NTAPI
2216 NtUserGetObjectInformation(
2217 HANDLE hObject,
2218 DWORD nIndex,
2219 PVOID pvInformation,
2220 DWORD nLength,
2221 PDWORD nLengthNeeded);
2222
2223 HWND
2224 NTAPI
2225 NtUserGetOpenClipboardWindow(VOID);
2226
2227 INT
2228 NTAPI
2229 NtUserGetPriorityClipboardFormat(
2230 UINT *paFormatPriorityList,
2231 INT cFormats);
2232
2233 HWINSTA
2234 NTAPI
2235 NtUserGetProcessWindowStation(VOID);
2236
2237 DWORD
2238 NTAPI
2239 NtUserGetRawInputBuffer(
2240 PRAWINPUT pData,
2241 PUINT pcbSize,
2242 UINT cbSizeHeader);
2243
2244 DWORD
2245 NTAPI
2246 NtUserGetRawInputData(
2247 HRAWINPUT hRawInput,
2248 UINT uiCommand,
2249 LPVOID pData,
2250 PUINT pcbSize,
2251 UINT cbSizeHeader);
2252
2253 DWORD
2254 NTAPI
2255 NtUserGetRawInputDeviceInfo(
2256 HANDLE hDevice,
2257 UINT uiCommand,
2258 LPVOID pData,
2259 PUINT pcbSize);
2260
2261 DWORD
2262 NTAPI
2263 NtUserGetRawInputDeviceList(
2264 PRAWINPUTDEVICELIST pRawInputDeviceList,
2265 PUINT puiNumDevices,
2266 UINT cbSize);
2267
2268 DWORD
2269 NTAPI
2270 NtUserGetRegisteredRawInputDevices(
2271 PRAWINPUTDEVICE pRawInputDevices,
2272 PUINT puiNumDevices,
2273 UINT cbSize);
2274
2275 BOOL
2276 NTAPI
2277 NtUserGetScrollBarInfo(
2278 HWND hWnd,
2279 LONG idObject,
2280 PSCROLLBARINFO psbi);
2281
2282 HDESK
2283 NTAPI
2284 NtUserGetThreadDesktop(
2285 DWORD dwThreadId,
2286 DWORD Unknown1);
2287
2288
2289 enum ThreadStateRoutines
2290 {
2291 THREADSTATE_GETTHREADINFO,
2292 THREADSTATE_INSENDMESSAGE,
2293 THREADSTATE_FOCUSWINDOW,
2294 THREADSTATE_ACTIVEWINDOW,
2295 THREADSTATE_CAPTUREWINDOW,
2296 THREADSTATE_PROGMANWINDOW,
2297 THREADSTATE_TASKMANWINDOW,
2298 THREADSTATE_GETMESSAGETIME,
2299 THREADSTATE_GETINPUTSTATE,
2300 THREADSTATE_UPTIMELASTREAD,
2301 THREADSTATE_FOREGROUNDTHREAD,
2302 THREADSTATE_GETCURSOR,
2303 THREADSTATE_GETMESSAGEEXTRAINFO
2304 };
2305
2306 DWORD_PTR
2307 NTAPI
2308 NtUserGetThreadState(
2309 DWORD Routine);
2310
2311 BOOLEAN
2312 NTAPI
2313 NtUserGetTitleBarInfo(
2314 HWND hwnd,
2315 PTITLEBARINFO pti);
2316
2317 BOOL NTAPI
2318 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
2319
2320 int
2321 NTAPI
2322 NtUserGetUpdateRgn(
2323 HWND hWnd,
2324 HRGN hRgn,
2325 BOOL bErase);
2326
2327 HDC
2328 NTAPI
2329 NtUserGetWindowDC(
2330 HWND hWnd);
2331
2332 BOOL
2333 NTAPI
2334 NtUserGetWindowPlacement(
2335 HWND hWnd,
2336 WINDOWPLACEMENT *lpwndpl);
2337
2338 PCLS
2339 NTAPI
2340 NtUserGetWOWClass(
2341 HINSTANCE hInstance,
2342 PUNICODE_STRING ClassName);
2343
2344 DWORD
2345 NTAPI
2346 NtUserHardErrorControl(
2347 DWORD dwUnknown1,
2348 DWORD dwUnknown2,
2349 DWORD dwUnknown3);
2350
2351 BOOL
2352 NTAPI
2353 NtUserImpersonateDdeClientWindow(
2354 HWND hWndClient,
2355 HWND hWndServer);
2356
2357 NTSTATUS
2358 NTAPI
2359 NtUserInitialize(
2360 DWORD dwWinVersion,
2361 HANDLE hPowerRequestEvent,
2362 HANDLE hMediaRequestEvent);
2363
2364 NTSTATUS
2365 NTAPI
2366 NtUserInitializeClientPfnArrays(
2367 PPFNCLIENT pfnClientA,
2368 PPFNCLIENT pfnClientW,
2369 PPFNCLIENTWORKER pfnClientWorker,
2370 HINSTANCE hmodUser);
2371
2372 DWORD
2373 NTAPI
2374 NtUserInitTask(
2375 DWORD Unknown0,
2376 DWORD Unknown1,
2377 DWORD Unknown2,
2378 DWORD Unknown3,
2379 DWORD Unknown4,
2380 DWORD Unknown5,
2381 DWORD Unknown6,
2382 DWORD Unknown7,
2383 DWORD Unknown8,
2384 DWORD Unknown9,
2385 DWORD Unknown10,
2386 DWORD Unknown11);
2387
2388 INT
2389 NTAPI
2390 NtUserInternalGetWindowText(
2391 HWND hWnd,
2392 LPWSTR lpString,
2393 INT nMaxCount);
2394
2395 BOOL
2396 NTAPI
2397 NtUserInvalidateRect(
2398 HWND hWnd,
2399 CONST RECT *lpRect,
2400 BOOL bErase);
2401
2402 BOOL
2403 NTAPI
2404 NtUserInvalidateRgn(
2405 HWND hWnd,
2406 HRGN hRgn,
2407 BOOL bErase);
2408
2409 BOOL
2410 NTAPI
2411 NtUserIsClipboardFormatAvailable(
2412 UINT format);
2413
2414 BOOL
2415 NTAPI
2416 NtUserKillTimer
2417 (
2418 HWND hWnd,
2419 UINT_PTR uIDEvent
2420 );
2421
2422 HKL
2423 NTAPI
2424 NtUserLoadKeyboardLayoutEx(
2425 IN HANDLE Handle,
2426 IN DWORD offTable,
2427 IN PUNICODE_STRING puszKeyboardName,
2428 IN HKL hKL,
2429 IN PUNICODE_STRING puszKLID,
2430 IN DWORD dwKLID,
2431 IN UINT Flags);
2432
2433 BOOL
2434 NTAPI
2435 NtUserLockWindowStation(
2436 HWINSTA hWindowStation);
2437
2438 BOOL
2439 NTAPI
2440 NtUserLockWindowUpdate(
2441 HWND hWnd);
2442
2443 BOOL
2444 NTAPI
2445 NtUserLockWorkStation(VOID);
2446
2447 UINT
2448 NTAPI
2449 NtUserMapVirtualKeyEx( UINT keyCode,
2450 UINT transType,
2451 DWORD keyboardId,
2452 HKL dwhkl );
2453
2454 typedef struct tagDOSENDMESSAGE
2455 {
2456 UINT uFlags;
2457 UINT uTimeout;
2458 ULONG_PTR Result;
2459 }
2460 DOSENDMESSAGE, *PDOSENDMESSAGE;
2461
2462 BOOL
2463 NTAPI
2464 NtUserMessageCall(
2465 HWND hWnd,
2466 UINT Msg,
2467 WPARAM wParam,
2468 LPARAM lParam,
2469 ULONG_PTR ResultInfo,
2470 DWORD dwType, // FNID_XX types
2471 BOOL Ansi);
2472
2473 DWORD
2474 NTAPI
2475 NtUserMinMaximize(
2476 HWND hWnd,
2477 UINT cmd, // Wine SW_ commands
2478 BOOL Hide);
2479
2480 DWORD
2481 NTAPI
2482 NtUserMNDragLeave(VOID);
2483
2484 DWORD
2485 NTAPI
2486 NtUserMNDragOver(
2487 DWORD Unknown0,
2488 DWORD Unknown1);
2489
2490 DWORD
2491 NTAPI
2492 NtUserModifyUserStartupInfoFlags(
2493 DWORD Unknown0,
2494 DWORD Unknown1);
2495
2496 BOOL
2497 NTAPI
2498 NtUserMoveWindow(
2499 HWND hWnd,
2500 int X,
2501 int Y,
2502 int nWidth,
2503 int nHeight,
2504 BOOL bRepaint
2505 );
2506
2507 DWORD
2508 NTAPI
2509 NtUserNotifyIMEStatus(
2510 DWORD Unknown0,
2511 DWORD Unknown1,
2512 DWORD Unknown2);
2513
2514 BOOL
2515 NTAPI
2516 NtUserNotifyProcessCreate(
2517 HANDLE NewProcessId,
2518 HANDLE SourceThreadId,
2519 DWORD dwUnknown,
2520 ULONG CreateFlags);
2521
2522 VOID
2523 NTAPI
2524 NtUserNotifyWinEvent(
2525 DWORD Event,
2526 HWND hWnd,
2527 LONG idObject,
2528 LONG idChild);
2529
2530 BOOL
2531 NTAPI
2532 NtUserOpenClipboard(
2533 HWND hWnd,
2534 DWORD Unknown1);
2535
2536 HDESK
2537 NTAPI
2538 NtUserOpenDesktop(
2539 POBJECT_ATTRIBUTES ObjectAttributes,
2540 DWORD dwFlags,
2541 ACCESS_MASK dwDesiredAccess);
2542
2543 HDESK
2544 NTAPI
2545 NtUserOpenInputDesktop(
2546 DWORD dwFlags,
2547 BOOL fInherit,
2548 ACCESS_MASK dwDesiredAccess);
2549
2550 HWINSTA
2551 NTAPI
2552 NtUserOpenWindowStation(
2553 POBJECT_ATTRIBUTES ObjectAttributes,
2554 ACCESS_MASK dwDesiredAccess);
2555
2556 BOOL
2557 NTAPI
2558 NtUserPaintDesktop(
2559 HDC hDC);
2560
2561 DWORD
2562 NTAPI
2563 NtUserPaintMenuBar(
2564 DWORD dwUnknown1,
2565 DWORD dwUnknown2,
2566 DWORD dwUnknown3,
2567 DWORD dwUnknown4,
2568 DWORD dwUnknown5,
2569 DWORD dwUnknown6);
2570
2571 BOOL APIENTRY
2572 NtUserPeekMessage( PMSG pMsg,
2573 HWND hWnd,
2574 UINT MsgFilterMin,
2575 UINT MsgFilterMax,
2576 UINT RemoveMsg);
2577
2578 BOOL
2579 NTAPI
2580 NtUserPostMessage(
2581 HWND hWnd,
2582 UINT Msg,
2583 WPARAM wParam,
2584 LPARAM lParam);
2585
2586 BOOL
2587 NTAPI
2588 NtUserPostThreadMessage(
2589 DWORD idThread,
2590 UINT Msg,
2591 WPARAM wParam,
2592 LPARAM lParam);
2593
2594 BOOL
2595 NTAPI
2596 NtUserPrintWindow(
2597 HWND hwnd,
2598 HDC hdcBlt,
2599 UINT nFlags);
2600
2601 NTSTATUS
2602 NTAPI
2603 NtUserProcessConnect(
2604 IN HANDLE Process,
2605 OUT PUSERCONNECT pUserConnect,
2606 IN DWORD dwSize); // sizeof(USERCONNECT)
2607
2608 NTSTATUS
2609 NTAPI
2610 NtUserQueryInformationThread(
2611 IN HANDLE ThreadHandle,
2612 IN USERTHREADINFOCLASS ThreadInformationClass,
2613 OUT PVOID ThreadInformation,
2614 IN ULONG ThreadInformationLength
2615 );
2616
2617 DWORD
2618 NTAPI
2619 NtUserQueryInputContext(
2620 DWORD dwUnknown1,
2621 DWORD dwUnknown2);
2622
2623 DWORD
2624 NTAPI
2625 NtUserQuerySendMessage(
2626 DWORD Unknown0);
2627
2628 DWORD
2629 NTAPI
2630 NtUserQueryUserCounters(
2631 DWORD Unknown0,
2632 DWORD Unknown1,
2633 DWORD Unknown2,
2634 DWORD Unknown3,
2635 DWORD Unknown4);
2636
2637 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2638 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2639 #define QUERY_WINDOW_ACTIVE 0x02
2640 #define QUERY_WINDOW_FOCUS 0x03
2641 #define QUERY_WINDOW_ISHUNG 0x04
2642 #define QUERY_WINDOW_REAL_ID 0x05
2643 #define QUERY_WINDOW_FOREGROUND 0x06
2644 DWORD
2645 NTAPI
2646 NtUserQueryWindow(
2647 HWND hWnd,
2648 DWORD Index);
2649
2650 BOOL
2651 NTAPI
2652 NtUserRealInternalGetMessage(
2653 LPMSG lpMsg,
2654 HWND hWnd,
2655 UINT wMsgFilterMin,
2656 UINT wMsgFilterMax,
2657 UINT wRemoveMsg,
2658 BOOL bGMSG);
2659
2660 HWND
2661 NTAPI
2662 NtUserRealChildWindowFromPoint(
2663 HWND Parent,
2664 LONG x,
2665 LONG y);
2666
2667 BOOL
2668 NTAPI
2669 NtUserRealWaitMessageEx(
2670 DWORD dwWakeMask,
2671 UINT uTimeout);
2672
2673 BOOL
2674 NTAPI
2675 NtUserRedrawWindow
2676 (
2677 HWND hWnd,
2678 CONST RECT *lprcUpdate,
2679 HRGN hrgnUpdate,
2680 UINT flags
2681 );
2682
2683 RTL_ATOM
2684 NTAPI
2685 NtUserRegisterClassExWOW(
2686 WNDCLASSEXW* lpwcx,
2687 PUNICODE_STRING pustrClassName,
2688 PUNICODE_STRING pustrCNVersion,
2689 PCLSMENUNAME pClassMenuName,
2690 DWORD fnID,
2691 DWORD Flags,
2692 LPDWORD pWow);
2693
2694 BOOL
2695 NTAPI
2696 NtUserRegisterRawInputDevices(
2697 IN PCRAWINPUTDEVICE pRawInputDevices,
2698 IN UINT uiNumDevices,
2699 IN UINT cbSize);
2700
2701 BOOL
2702 NTAPI
2703 NtUserRegisterUserApiHook(
2704 PUNICODE_STRING m_dllname1,
2705 PUNICODE_STRING m_funname1,
2706 DWORD dwUnknown3,
2707 DWORD dwUnknown4);
2708
2709 BOOL
2710 NTAPI
2711 NtUserRegisterHotKey(HWND hWnd,
2712 int id,
2713 UINT fsModifiers,
2714 UINT vk);
2715
2716 DWORD
2717 NTAPI
2718 NtUserRegisterTasklist(
2719 DWORD Unknown0);
2720
2721 UINT NTAPI
2722 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
2723
2724 DWORD
2725 NTAPI
2726 NtUserRemoteConnect(
2727 DWORD dwUnknown1,
2728 DWORD dwUnknown2,
2729 DWORD dwUnknown3);
2730
2731 DWORD
2732 NTAPI
2733 NtUserRemoteRedrawRectangle(
2734 DWORD dwUnknown1,
2735 DWORD dwUnknown2,
2736 DWORD dwUnknown3,
2737 DWORD dwUnknown4);
2738
2739 DWORD
2740 NTAPI
2741 NtUserRemoteRedrawScreen(VOID);
2742
2743 DWORD
2744 NTAPI
2745 NtUserRemoteStopScreenUpdates(VOID);
2746
2747 HANDLE NTAPI
2748 NtUserRemoveProp(HWND hWnd, ATOM Atom);
2749
2750 DWORD
2751 NTAPI
2752 NtUserResolveDesktop(
2753 DWORD dwUnknown1,
2754 DWORD dwUnknown2,
2755 DWORD dwUnknown3,
2756 DWORD dwUnknown4);
2757
2758 DWORD
2759 NTAPI
2760 NtUserResolveDesktopForWOW(
2761 DWORD Unknown0);
2762
2763 BOOL
2764 NTAPI
2765 NtUserSBGetParms(
2766 HWND hwnd,
2767 int fnBar,
2768 PSBDATA pSBData,
2769 LPSCROLLINFO lpsi);
2770
2771 BOOL
2772 NTAPI
2773 NtUserScrollDC(
2774 HDC hDC,
2775 int dx,
2776 int dy,
2777 CONST RECT *lprcScroll,
2778 CONST RECT *lprcClip ,
2779 HRGN hrgnUpdate,
2780 LPRECT lprcUpdate);
2781
2782 DWORD NTAPI
2783 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
2784 const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
2785
2786 UINT
2787 NTAPI
2788 NtUserSendInput(
2789 UINT nInputs,
2790 LPINPUT pInput,
2791 INT cbSize);
2792
2793 HWND NTAPI
2794 NtUserSetActiveWindow(HWND Wnd);
2795
2796 DWORD
2797 NTAPI
2798 NtUserSetAppImeLevel(
2799 DWORD dwUnknown1,
2800 DWORD dwUnknown2);
2801
2802 HWND NTAPI
2803 NtUserSetCapture(HWND Wnd);
2804
2805 ULONG_PTR NTAPI
2806 NtUserSetClassLong(
2807 HWND hWnd,
2808 INT Offset,
2809 ULONG_PTR dwNewLong,
2810 BOOL Ansi );
2811
2812 WORD
2813 NTAPI
2814 NtUserSetClassWord(
2815 HWND hWnd,
2816 INT nIndex,
2817 WORD wNewWord);
2818
2819 HANDLE
2820 NTAPI
2821 NtUserSetClipboardData(
2822 UINT fmt,
2823 HANDLE hMem,
2824 PSETCLIPBDATA scd);
2825
2826 HWND
2827 NTAPI
2828 NtUserSetClipboardViewer(
2829 HWND hWndNewViewer);
2830
2831 HPALETTE
2832 NTAPI
2833 NtUserSelectPalette(
2834 HDC hDC,
2835 HPALETTE hpal,
2836 BOOL ForceBackground
2837 );
2838
2839 DWORD
2840 NTAPI
2841 NtUserSetConsoleReserveKeys(
2842 DWORD Unknown0,
2843 DWORD Unknown1);
2844
2845 HCURSOR
2846 NTAPI
2847 NtUserSetCursor(
2848 HCURSOR hCursor);
2849
2850 BOOL
2851 NTAPI
2852 NtUserSetCursorContents(
2853 HANDLE Handle,
2854 PICONINFO IconInfo);
2855
2856 #ifdef NEW_CURSORICON
2857 BOOL
2858 NTAPI
2859 NtUserSetCursorIconData(
2860 _In_ HCURSOR hCursor,
2861 _In_ PUNICODE_STRING pustrModule,
2862 _In_ PUNICODE_STRING puSrcName,
2863 _In_ const CURSORDATA* pCursorData);
2864
2865 typedef struct _tagFINDEXISTINGCURICONPARAM
2866 {
2867 BOOL bIcon;
2868 LONG cx;
2869 LONG cy;
2870 } FINDEXISTINGCURICONPARAM;
2871
2872 HICON
2873 NTAPI
2874 NtUserFindExistingCursorIcon(
2875 _In_ PUNICODE_STRING pustrModule,
2876 _In_ PUNICODE_STRING pustrRsrc,
2877 _In_ FINDEXISTINGCURICONPARAM* param);
2878 #else
2879 BOOL
2880 NTAPI
2881 NtUserSetCursorIconData(
2882 HANDLE Handle,
2883 PBOOL fIcon,
2884 POINT *Hotspot,
2885 HMODULE hModule,
2886 HRSRC hRsrc,
2887 HRSRC hGroupRsrc);
2888
2889 HICON
2890 NTAPI
2891 NtUserFindExistingCursorIcon(
2892 HMODULE hModule,
2893 HRSRC hRsrc,
2894 LONG cx,
2895 LONG cy);
2896 #endif
2897
2898 DWORD
2899 NTAPI
2900 NtUserSetDbgTag(
2901 DWORD Unknown0,
2902 DWORD Unknown1);
2903
2904 HWND
2905 NTAPI
2906 NtUserSetFocus(
2907 HWND hWnd);
2908
2909 DWORD
2910 NTAPI
2911 NtUserSetImeHotKey(
2912 DWORD Unknown0,
2913 DWORD Unknown1,
2914 DWORD Unknown2,
2915 DWORD Unknown3,
2916 DWORD Unknown4);
2917
2918 DWORD
2919 NTAPI
2920 NtUserSetImeInfoEx(
2921 DWORD dwUnknown1);
2922
2923 DWORD
2924 NTAPI
2925 NtUserSetImeOwnerWindow(
2926 DWORD Unknown0,
2927 DWORD Unknown1);
2928
2929 DWORD
2930 NTAPI
2931 NtUserSetInformationProcess(
2932 DWORD dwUnknown1,
2933 DWORD dwUnknown2,
2934 DWORD dwUnknown3,
2935 DWORD dwUnknown4);
2936
2937 NTSTATUS
2938 NTAPI
2939 NtUserSetInformationThread(
2940 IN HANDLE ThreadHandle,
2941 IN USERTHREADINFOCLASS ThreadInformationClass,
2942 IN PVOID ThreadInformation,
2943 IN ULONG ThreadInformationLength
2944 );
2945
2946 DWORD
2947 NTAPI
2948 NtUserSetInternalWindowPos(
2949 HWND hwnd,
2950 UINT showCmd,
2951 LPRECT rect,
2952 LPPOINT pt);
2953
2954 BOOL
2955 NTAPI
2956 NtUserSetKeyboardState(
2957 LPBYTE lpKeyState);
2958
2959 BOOL
2960 NTAPI
2961 NtUserSetLayeredWindowAttributes(
2962 HWND hwnd,
2963 COLORREF crKey,
2964 BYTE bAlpha,
2965 DWORD dwFlags);
2966
2967 BOOL
2968 NTAPI
2969 NtUserSetLogonNotifyWindow(
2970 HWND hWnd);
2971
2972 BOOL
2973 NTAPI
2974 NtUserSetObjectInformation(
2975 HANDLE hObject,
2976 DWORD nIndex,
2977 PVOID pvInformation,
2978 DWORD nLength);
2979
2980 HWND
2981 NTAPI
2982 NtUserSetParent(
2983 HWND hWndChild,
2984 HWND hWndNewParent);
2985
2986 BOOL
2987 NTAPI
2988 NtUserSetProcessWindowStation(
2989 HWINSTA hWindowStation);
2990
2991 BOOL NTAPI
2992 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2993
2994 DWORD
2995 NTAPI
2996 NtUserSetRipFlags(
2997 DWORD Unknown0,
2998 DWORD Unknown1);
2999
3000 DWORD
3001 NTAPI
3002 NtUserSetScrollInfo(
3003 HWND hwnd,
3004 int fnBar,
3005 LPCSCROLLINFO lpsi,
3006 BOOL bRedraw);
3007
3008 BOOL
3009 NTAPI
3010 NtUserSetShellWindowEx(
3011 HWND hwndShell,
3012 HWND hwndShellListView);
3013
3014 BOOL
3015 NTAPI
3016 NtUserSetSysColors(
3017 int cElements,
3018 IN CONST INT *lpaElements,
3019 IN CONST COLORREF *lpaRgbValues,
3020 FLONG Flags);
3021
3022 BOOL
3023 NTAPI
3024 NtUserSetSystemCursor(
3025 HCURSOR hcur,
3026 DWORD id);
3027
3028 BOOL
3029 NTAPI
3030 NtUserSetThreadDesktop(
3031 HDESK hDesktop);
3032
3033 DWORD
3034 NTAPI
3035 NtUserSetThreadState(
3036 DWORD Unknown0,
3037 DWORD Unknown1);
3038
3039 UINT_PTR
3040 NTAPI
3041 NtUserSetSystemTimer
3042 (
3043 HWND hWnd,
3044 UINT_PTR nIDEvent,
3045 UINT uElapse,
3046 TIMERPROC lpTimerFunc
3047 );
3048
3049 DWORD
3050 NTAPI
3051 NtUserSetThreadLayoutHandles(
3052 DWORD dwUnknown1,
3053 DWORD dwUnknown2);
3054
3055 UINT_PTR
3056 NTAPI
3057 NtUserSetTimer
3058 (
3059 HWND hWnd,
3060 UINT_PTR nIDEvent,
3061 UINT uElapse,
3062 TIMERPROC lpTimerFunc
3063 );
3064
3065 BOOL
3066 NTAPI
3067 NtUserSetWindowFNID(
3068 HWND hWnd,
3069 WORD fnID);
3070
3071 LONG
3072 NTAPI
3073 NtUserSetWindowLong(
3074 HWND hWnd,
3075 DWORD Index,
3076 LONG NewValue,
3077 BOOL Ansi);
3078
3079 BOOL
3080 NTAPI
3081 NtUserSetWindowPlacement(
3082 HWND hWnd,
3083 WINDOWPLACEMENT *lpwndpl);
3084
3085 BOOL
3086 NTAPI NtUserSetWindowPos(
3087 HWND hWnd,
3088 HWND hWndInsertAfter,
3089 int X,
3090 int Y,
3091 int cx,
3092 int cy,
3093 UINT uFlags
3094 );
3095
3096 INT
3097 NTAPI
3098 NtUserSetWindowRgn(
3099 HWND hWnd,
3100 HRGN hRgn,
3101 BOOL bRedraw);
3102
3103 HHOOK
3104 NTAPI
3105 NtUserSetWindowsHookAW(
3106 int idHook,
3107 HOOKPROC lpfn,
3108 BOOL Ansi);
3109
3110 HHOOK
3111 NTAPI
3112 NtUserSetWindowsHookEx(
3113 HINSTANCE Mod,
3114 PUNICODE_STRING ModuleName,
3115 DWORD ThreadId,
3116 int HookId,
3117 HOOKPROC HookProc,
3118 BOOL Ansi);
3119
3120 DWORD
3121 NTAPI
3122 NtUserSetWindowStationUser(
3123 DWORD Unknown0,
3124 DWORD Unknown1,
3125 DWORD Unknown2,
3126 DWORD Unknown3);
3127
3128 WORD NTAPI
3129 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
3130
3131 HWINEVENTHOOK
3132 NTAPI
3133 NtUserSetWinEventHook(
3134 UINT eventMin,
3135 UINT eventMax,
3136 HMODULE hmodWinEventProc,
3137 PUNICODE_STRING puString,
3138 WINEVENTPROC lpfnWinEventProc,
3139 DWORD idProcess,
3140 DWORD idThread,
3141 UINT dwflags);
3142
3143 BOOL
3144 NTAPI
3145 NtUserShowCaret(
3146 HWND hWnd);
3147
3148 BOOL
3149 NTAPI
3150 NtUserHideCaret(
3151 HWND hWnd);
3152
3153 DWORD
3154 NTAPI
3155 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
3156
3157 BOOL
3158 NTAPI
3159 NtUserShowWindow(
3160 HWND hWnd,
3161 LONG nCmdShow);
3162
3163 BOOL
3164 NTAPI
3165 NtUserShowWindowAsync(
3166 HWND hWnd,
3167 LONG nCmdShow);
3168
3169 BOOL
3170 NTAPI
3171 NtUserSoundSentry(VOID);
3172
3173 BOOL
3174 NTAPI
3175 NtUserSwitchDesktop(
3176 HDESK hDesktop);
3177
3178 BOOL
3179 NTAPI
3180 NtUserSystemParametersInfo(
3181 UINT uiAction,
3182 UINT uiParam,
3183 PVOID pvParam,
3184 UINT fWinIni);
3185
3186 DWORD
3187 NTAPI
3188 NtUserTestForInteractiveUser(
3189 DWORD dwUnknown1);
3190
3191 INT
3192 NTAPI
3193 NtUserToUnicodeEx(
3194 UINT wVirtKey,
3195 UINT wScanCode,
3196 PBYTE lpKeyState,
3197 LPWSTR pwszBuff,
3198 int cchBuff,
3199 UINT wFlags,
3200 HKL dwhkl );
3201
3202 BOOL
3203 NTAPI
3204 NtUserTrackMouseEvent(
3205 LPTRACKMOUSEEVENT lpEventTrack);
3206
3207 int
3208 NTAPI
3209 NtUserTranslateAccelerator(
3210 HWND Window,
3211 HACCEL Table,
3212 LPMSG Message);
3213
3214 BOOL
3215 NTAPI
3216 NtUserTranslateMessage(
3217 LPMSG lpMsg,
3218 UINT flags );
3219
3220 BOOL
3221 NTAPI
3222 NtUserUnhookWindowsHookEx(
3223 HHOOK Hook);
3224
3225 BOOL
3226 NTAPI
3227 NtUserUnhookWinEvent(
3228 HWINEVENTHOOK hWinEventHook);
3229
3230 BOOL
3231 NTAPI
3232 NtUserUnloadKeyboardLayout(
3233 HKL hKl);
3234
3235 BOOL
3236 NTAPI
3237 NtUserUnlockWindowStation(
3238 HWINSTA hWindowStation);
3239
3240 BOOL
3241 NTAPI
3242 NtUserUnregisterClass(
3243 PUNICODE_STRING ClassNameOrAtom,
3244 HINSTANCE hInstance,
3245 PCLSMENUNAME pClassMenuName);
3246
3247 BOOL
3248 NTAPI
3249 NtUserUnregisterHotKey(HWND hWnd,
3250 int id);
3251
3252 BOOL
3253 NTAPI
3254 NtUserUnregisterUserApiHook(VOID);
3255
3256 DWORD
3257 NTAPI
3258 NtUserUpdateInputContext(
3259 DWORD Unknown0,
3260 DWORD Unknown1,
3261 DWORD Unknown2);
3262
3263 DWORD
3264 NTAPI
3265 NtUserUpdateInstance(
3266 DWORD Unknown0,
3267 DWORD Unknown1,
3268 DWORD Unknown2);
3269
3270 BOOL
3271 NTAPI
3272 NtUserUpdateLayeredWindow(
3273 HWND hwnd,
3274 HDC hdcDst,
3275 POINT *pptDst,
3276 SIZE *psize,
3277 HDC hdcSrc,
3278 POINT *pptSrc,
3279 COLORREF crKey,
3280 BLENDFUNCTION *pblend,
3281 DWORD dwFlags,
3282 RECT *prcDirty);
3283
3284 BOOL
3285 NTAPI
3286 NtUserUpdatePerUserSystemParameters(
3287 DWORD dwReserved,
3288 BOOL bEnable);
3289
3290 BOOL
3291 NTAPI
3292 NtUserUserHandleGrantAccess(
3293 IN HANDLE hUserHandle,
3294 IN HANDLE hJob,
3295 IN BOOL bGrant);
3296
3297 BOOL
3298 NTAPI
3299 NtUserValidateHandleSecure(
3300 HANDLE hHdl,
3301 BOOL Restricted);
3302
3303 BOOL
3304 NTAPI
3305 NtUserValidateRect(
3306 HWND hWnd,
3307 CONST RECT *lpRect);
3308
3309 BOOL
3310 APIENTRY
3311 NtUserValidateTimerCallback(
3312 HWND hWnd,
3313 WPARAM wParam,
3314 LPARAM lParam);
3315
3316 DWORD
3317 NTAPI
3318 NtUserVkKeyScanEx(
3319 WCHAR wChar,
3320 HKL KeyboardLayout,
3321 BOOL bUsehHK);
3322
3323 DWORD
3324 NTAPI
3325 NtUserWaitForInputIdle(
3326 IN HANDLE hProcess,
3327 IN DWORD dwMilliseconds,
3328 IN BOOL Unknown2); // Always FALSE
3329
3330 DWORD
3331 NTAPI
3332 NtUserWaitForMsgAndEvent(
3333 DWORD Unknown0);
3334
3335 BOOL
3336 NTAPI
3337 NtUserWaitMessage(VOID);
3338
3339 DWORD
3340 NTAPI
3341 NtUserWin32PoolAllocationStats(
3342 DWORD Unknown0,
3343 DWORD Unknown1,
3344 DWORD Unknown2,
3345 DWORD Unknown3,
3346 DWORD Unknown4,
3347 DWORD Unknown5);
3348
3349 HWND
3350 NTAPI
3351 NtUserWindowFromPoint(
3352 LONG X,
3353 LONG Y);
3354
3355 DWORD
3356 NTAPI
3357 NtUserYieldTask(VOID);
3358
3359 /* lParam of DDE messages */
3360 typedef struct tagKMDDEEXECUTEDATA
3361 {
3362 HWND Sender;
3363 HGLOBAL ClientMem;
3364 /* BYTE Data[DataSize] */
3365 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
3366
3367 typedef struct tagKMDDELPARAM
3368 {
3369 UINT_PTR uiLo;
3370 UINT_PTR uiHi;
3371 } KMDDELPARAM, *PKMDDELPARAM;
3372
3373
3374
3375
3376
3377 /* NtUserBad
3378 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3379 */
3380
3381 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001
3382 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3383 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3384 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3385 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3386 #define TWOPARAM_ROUTINE_EXITREACTOS 0xfffd0051
3387 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3388 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0053
3389 #define MSQ_STATE_CAPTURE 0x1
3390 #define MSQ_STATE_ACTIVE 0x2
3391 #define MSQ_STATE_FOCUS 0x3
3392 #define MSQ_STATE_MENUOWNER 0x4
3393 #define MSQ_STATE_MOVESIZE 0x5
3394 #define MSQ_STATE_CARET 0x6
3395 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3396 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3397
3398 BOOL
3399 NTAPI
3400 NtUserGetMonitorInfo(
3401 IN HMONITOR hMonitor,
3402 OUT LPMONITORINFO pMonitorInfo);
3403
3404 /* Should be done in usermode */
3405
3406 /* (other FocusedItem values give the position of the focused item) */
3407 #define NO_SELECTED_ITEM 0xffff
3408
3409 typedef struct tagROSMENUINFO
3410 {
3411 /* ----------- MENUINFO ----------- */
3412 DWORD cbSize;
3413 DWORD fMask;
3414 DWORD dwStyle;
3415 UINT cyMax;
3416 HBRUSH hbrBack;
3417 DWORD dwContextHelpID;
3418 ULONG_PTR dwMenuData;
3419 /* ----------- Extra ----------- */
3420 ULONG fFlags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3421 UINT iItem; /* Currently focused item */
3422 UINT cItems; /* Number of items in the menu */
3423 WORD cxMenu; /* Width of the whole menu */
3424 WORD cyMenu; /* Height of the whole menu */
3425 ULONG cxTextAlign;
3426 PWND spwndNotify; /* window receiving the messages for ownerdraw */
3427 INT iTop;
3428 INT iMaxTop;
3429 DWORD dwArrowsOn:2;
3430
3431 HMENU Self; /* Handle of this menu */
3432 HWND Wnd; /* Window containing the menu */
3433 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
3434 } ROSMENUINFO, *PROSMENUINFO;
3435
3436 typedef struct tagROSMENUITEMINFO
3437 {
3438 /* ----------- MENUITEMINFOW ----------- */
3439 UINT cbSize;
3440 UINT fMask;
3441 UINT fType;
3442 UINT fState;
3443 UINT wID;
3444 HMENU hSubMenu;
3445 HBITMAP hbmpChecked;
3446 HBITMAP hbmpUnchecked;
3447 DWORD dwItemData;
3448 LPWSTR dwTypeData;
3449 UINT cch;
3450 HBITMAP hbmpItem;
3451 /* ----------- Extra ----------- */
3452 RECT Rect; /* Item area (relative to menu window) */
3453 UINT dxTab; /* X position of text after Tab */
3454 LPWSTR lpstr; /* Copy of the text pointer in MenuItem->Text */
3455 SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3456 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
3457
3458 HMONITOR
3459 NTAPI
3460 NtUserMonitorFromPoint(
3461 IN POINT point,
3462 IN DWORD dwFlags);
3463
3464 HMONITOR
3465 NTAPI
3466 NtUserMonitorFromRect(
3467 IN LPCRECT pRect,
3468 IN DWORD dwFlags);
3469
3470 HMONITOR
3471 NTAPI
3472 NtUserMonitorFromWindow(
3473 IN HWND hWnd,
3474 IN DWORD dwFlags);
3475
3476 typedef struct _SETSCROLLBARINFO
3477 {
3478 int nTrackPos;
3479 int reserved;
3480 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
3481 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3482
3483 BOOL
3484 NTAPI
3485 NtUserSetScrollBarInfo(
3486 HWND hwnd,
3487 LONG idObject,
3488 SETSCROLLBARINFO *info);
3489
3490
3491
3492 #endif /* __WIN32K_NTUSER_H */
3493
3494 /* EOF */