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