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