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