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