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