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