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