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