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