[Win32SS]
[reactos.git] / reactos / win32ss / include / ntuser.h
1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
3
4 typedef struct _PROCESSINFO *PPROCESSINFO;
5 typedef struct _THREADINFO *PTHREADINFO;
6 struct _DESKTOP;
7 struct _WND;
8
9 #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
10 #define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
11
12 #define HANDLEENTRY_INDESTROY 1
13
14 typedef struct _USER_HANDLE_ENTRY
15 {
16 void *ptr; /* pointer to object */
17 union
18 {
19 PVOID pi;
20 PTHREADINFO pti; // pointer to Win32ThreadInfo
21 PPROCESSINFO ppi; // pointer to W32ProcessInfo
22 };
23 unsigned char type; /* object type (0 if free) */
24 unsigned char flags;
25 unsigned short generation; /* generation counter */
26 } USER_HANDLE_ENTRY, * PUSER_HANDLE_ENTRY;
27
28 typedef struct _USER_HANDLE_TABLE
29 {
30 PUSER_HANDLE_ENTRY handles;
31 PUSER_HANDLE_ENTRY freelist;
32 int nb_handles;
33 int allocated_handles;
34 } USER_HANDLE_TABLE, * PUSER_HANDLE_TABLE;
35
36 typedef enum _USER_OBJECT_TYPE
37 {
38 otFree = 0,
39 otWindow,
40 otMenu,
41 otCursorIcon,
42 otSMWP,
43 otHook,
44 otClipBoardData,
45 otCallProc,
46 otAccel,
47 otDDEaccess,
48 otDDEconv,
49 otDDExact,
50 otMonitor,
51 otKBDlayout,
52 otKBDfile,
53 otEvent,
54 otTimer,
55 otInputContext,
56 otHidData,
57 otDeviceInfo,
58 otTouchInput,
59 otGestureInfo
60 } USER_OBJECT_TYPE;
61
62 typedef enum _USERTHREADINFOCLASS
63 {
64 UserThreadShutdownInformation,
65 UserThreadFlags,
66 UserThreadTaskName,
67 UserThreadWOWInformation,
68 UserThreadHungStatus,
69 UserThreadInitiateShutdown,
70 UserThreadEndShutdown,
71 UserThreadUseActiveDesktop,
72 UserThreadUseDesktop,
73 UserThreadRestoreDesktop,
74 UserThreadCsrApiPort,
75 } USERTHREADINFOCLASS;
76
77 typedef struct _LARGE_UNICODE_STRING
78 {
79 ULONG Length;
80 ULONG MaximumLength:31;
81 ULONG bAnsi:1;
82 PWSTR Buffer;
83 } LARGE_UNICODE_STRING, *PLARGE_UNICODE_STRING;
84
85 typedef struct _LARGE_STRING
86 {
87 ULONG Length;
88 ULONG MaximumLength:31;
89 ULONG bAnsi:1;
90 PVOID Buffer;
91 } LARGE_STRING, *PLARGE_STRING;
92 //
93 // Based on ANSI_STRING
94 //
95 typedef struct _LARGE_ANSI_STRING
96 {
97 ULONG Length;
98 ULONG MaximumLength:31;
99 ULONG bAnsi:1;
100 PCHAR Buffer;
101 } LARGE_ANSI_STRING, *PLARGE_ANSI_STRING;
102
103 VOID NTAPI RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING,IN PCSZ,IN INT);
104 VOID NTAPI RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING,IN PCWSTR,IN INT);
105 BOOL NTAPI RtlLargeStringToUnicodeString( PUNICODE_STRING, PLARGE_STRING);
106
107 #define NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1)
108
109 typedef struct _DESKTOPINFO
110 {
111 PVOID pvDesktopBase;
112 PVOID pvDesktopLimit;
113 struct _WND *spwnd;
114 DWORD fsHooks;
115 LIST_ENTRY aphkStart[NB_HOOKS];
116
117 HWND hTaskManWindow;
118 HWND hProgmanWindow;
119 HWND hShellWindow;
120
121 PPROCESSINFO ppiShellProcess;
122
123 union
124 {
125 UINT Dummy;
126 struct
127 {
128 UINT LastInputWasKbd : 1;
129 };
130 };
131
132 WCHAR szDesktopName[1];
133 } DESKTOPINFO, *PDESKTOPINFO;
134
135 #define CTI_THREADSYSLOCK 0x0001
136 #define CTI_INSENDMESSAGE 0x0002
137
138 typedef struct _CLIENTTHREADINFO
139 {
140 DWORD CTI_flags;
141 WORD fsChangeBits;
142 WORD fsWakeBits;
143 WORD fsWakeBitsJournal;
144 WORD fsWakeMask;
145 ULONG tickLastMsgChecked;
146 DWORD dwcPumpHook;
147 } CLIENTTHREADINFO, *PCLIENTTHREADINFO;
148
149 typedef struct _HEAD
150 {
151 HANDLE h;
152 DWORD cLockObj;
153 } HEAD, *PHEAD;
154
155 typedef struct _THROBJHEAD
156 {
157 HEAD;
158 PTHREADINFO pti;
159 } THROBJHEAD, *PTHROBJHEAD;
160
161 typedef struct _THRDESKHEAD
162 {
163 THROBJHEAD;
164 struct _DESKTOP *rpdesk;
165 PVOID pSelf;
166 } THRDESKHEAD, *PTHRDESKHEAD;
167
168 typedef struct _PROCDESKHEAD
169 {
170 HEAD;
171 DWORD hTaskWow;
172 struct _DESKTOP *rpdesk;
173 PVOID pSelf;
174 } PROCDESKHEAD, *PPROCDESKHEAD;
175
176 typedef struct _PROCMARKHEAD
177 {
178 HEAD;
179 ULONG hTaskWow;
180 PPROCESSINFO ppi;
181 } PROCMARKHEAD, *PPROCMARKHEAD;
182
183 #define UserHMGetHandle(obj) ((obj)->head.h)
184
185 /* Window Client Information structure */
186 struct _ETHREAD;
187
188 #define WEF_SETBYWNDPTI 0x0001
189
190 typedef struct tagHOOK
191 {
192 THRDESKHEAD head;
193 struct tagHOOK *phkNext; /* This is for user space. */
194 int HookId; /* Hook table index */
195 ULONG_PTR offPfn;
196 ULONG flags; /* Some internal flags */
197 INT ihmod;
198 PTHREADINFO ptiHooked;
199 struct _DESKTOP *rpdesk;
200 /* ReactOS */
201 LIST_ENTRY Chain; /* Hook chain entry */
202 struct _ETHREAD* Thread; /* Thread owning the hook */
203 HOOKPROC Proc; /* Hook function */
204 BOOLEAN Ansi; /* Is it an Ansi hook? */
205 UNICODE_STRING ModuleName; /* Module name for global hooks */
206 } HOOK, *PHOOK;
207
208 typedef struct tagCLIPBOARDDATA
209 {
210 HEAD head;
211 DWORD cbData;
212 BYTE Data[0];
213 } CLIPBOARDDATA, *PCLIPBOARDDATA;
214
215 /* THREADINFO Flags */
216 #define TIF_INCLEANUP 0x00000001
217 #define TIF_16BIT 0x00000002
218 #define TIF_SYSTEMTHREAD 0x00000004
219 #define TIF_CSRSSTHREAD 0x00000008
220 #define TIF_TRACKRECTVISIBLE 0x00000010
221 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020
222 #define TIF_DONTATTACHQUEUE 0x00000040
223 #define TIF_DONTJOURNALATTACH 0x00000080
224 #define TIF_WOW64 0x00000100
225 #define TIF_INACTIVATEAPPMSG 0x00000200
226 #define TIF_SPINNING 0x00000400
227 #define TIF_PALETTEAWARE 0x00000800
228 #define TIF_SHAREDWOW 0x00001000
229 #define TIF_FIRSTIDLE 0x00002000
230 #define TIF_WAITFORINPUTIDLE 0x00004000
231 #define TIF_MOVESIZETRACKING 0x00008000
232 #define TIF_VDMAPP 0x00010000
233 #define TIF_DOSEMULATOR 0x00020000
234 #define TIF_GLOBALHOOKER 0x00040000
235 #define TIF_DELAYEDEVENT 0x00080000
236 #define TIF_MSGPOSCHANGED 0x00100000
237 #define TIF_SHUTDOWNCOMPLETE 0x00200000
238 #define TIF_IGNOREPLAYBACKDELAY 0x00400000
239 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000
240 #define TIF_GUITHREADINITIALIZED 0x02000000
241 #define TIF_DISABLEIME 0x04000000
242 #define TIF_INGETTEXTLENGTH 0x08000000
243 #define TIF_ANSILENGTH 0x10000000
244 #define TIF_DISABLEHOOKS 0x20000000
245
246 typedef struct _CALLBACKWND
247 {
248 HWND hWnd;
249 struct _WND *pWnd;
250 PVOID pActCtx;
251 } CALLBACKWND, *PCALLBACKWND;
252
253 #define CI_TRANSACTION 0x00000001
254 #define CI_QUEUEMSG 0x00000002
255 #define CI_WOW 0x00000004
256 #define CI_INITTHREAD 0x00000008
257 #define CI_CURTHPRHOOK 0x00000010
258 #define CI_CLASSESREGISTERED 0x00000020
259 #define CI_IMMACTIVATE 0x00000040
260
261 typedef struct _CLIENTINFO
262 {
263 ULONG_PTR CI_flags;
264 ULONG_PTR cSpins;
265 DWORD dwExpWinVer;
266 DWORD dwCompatFlags;
267 DWORD dwCompatFlags2;
268 DWORD dwTIFlags; // ThreadInfo TIF_Xxx flags for User space.
269 PDESKTOPINFO pDeskInfo;
270 ULONG_PTR ulClientDelta;
271 PHOOK phkCurrent;
272 ULONG fsHooks;
273 CALLBACKWND CallbackWnd;
274 DWORD dwHookCurrent;
275 INT cInDDEMLCallback;
276 PCLIENTTHREADINFO pClientThreadInfo;
277 ULONG_PTR dwHookData;
278 DWORD dwKeyCache;
279 BYTE afKeyState[8];
280 DWORD dwAsyncKeyCache;
281 BYTE afAsyncKeyState[8];
282 BYTE afAsyncKeyStateRecentDow[8];
283 HKL hKL;
284 USHORT CodePage;
285 UCHAR achDbcsCF[2];
286 MSG msgDbcsCB;
287 LPDWORD lpdwRegisteredClasses;
288 ULONG Win32ClientInfo3[26];
289 /* It's just a pointer reference not to be used w the structure in user space. */
290 PPROCESSINFO ppi;
291 } CLIENTINFO, *PCLIENTINFO;
292
293 /* Make sure it fits into the TEB */
294 C_ASSERT(sizeof(CLIENTINFO) <= sizeof(((PTEB)0)->Win32ClientInfo));
295
296 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
297
298 #define HRGN_NULL ( (HRGN) 0) // NULL empty region
299 #define HRGN_WINDOW ( (HRGN) 1) // region from window rcWindow
300 #define HRGN_MONITOR ( (HRGN) 2) // region from monitor region.
301
302 /* Menu Item fType. */
303 #define MFT_RTOL 0x6000
304
305 typedef struct tagITEM
306 {
307 UINT fType;
308 UINT fState;
309 UINT wID;
310 struct tagMENU* spSubMenu; /* Pop-up menu. */
311 HANDLE hbmpChecked;
312 HANDLE hbmpUnchecked;
313 USHORT* lpstr; /* Item text pointer. */
314 ULONG cch;
315 DWORD_PTR dwItemData;
316 ULONG xItem; /* Item position. left */
317 ULONG yItem; /* " top */
318 ULONG cxItem; /* Item Size Width */
319 ULONG cyItem; /* " Height */
320 ULONG dxTab; /* X position of text after Tab */
321 ULONG ulX; /* underline.. start position */
322 ULONG ulWidth; /* underline.. width */
323 HBITMAP hbmp; /* bitmap */
324 INT cxBmp; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */
325 INT cyBmp; /* Height " */
326 } ITEM, *PITEM;
327
328 typedef struct tagMENULIST
329 {
330 struct tagMENULIST* pNext;
331 struct tagMENU* pMenu;
332 } MENULIST, *PMENULIST;
333
334 /* Menu fFlags, upper byte is MNS_X style flags. */
335 #define MNF_POPUP 0x0001
336 #define MNF_UNDERLINE 0x0004
337 #define MNF_INACTIVE 0x0010
338 #define MNF_RTOL 0x0020
339 #define MNF_DESKTOPMN 0x0040
340 #define MNF_SYSDESKMN 0x0080
341 #define MNF_SYSSUBMENU 0x0100
342
343 typedef struct tagMENU
344 {
345 PROCDESKHEAD head;
346 ULONG fFlags; /* [Style flags | Menu flags] */
347 INT iItem; /* nPos of selected item, if -1 not selected. */
348 UINT cAlloced; /* Number of allocated items. Inc's of 8 */
349 UINT cItems; /* Number of items in the menu */
350 ULONG cxMenu; /* Width of the whole menu */
351 ULONG cyMenu; /* Height of the whole menu */
352 ULONG cxTextAlign; /* Offset of text when items have both bitmaps and text */
353 struct _WND *spwndNotify; /* window receiving the messages for ownerdraw */
354 PITEM rgItems; /* Array of menu items */
355 struct tagMENULIST* pParentMenus; /* If this is SubMenu, list of parents. */
356 DWORD dwContextHelpId;
357 ULONG cyMax; /* max height of the whole menu, 0 is screen height */
358 DWORD_PTR dwMenuData; /* application defined value */
359 HBRUSH hbrBack; /* brush for menu background */
360 INT iTop; /* Current scroll position Top */
361 INT iMaxTop; /* Current scroll position Max Top */
362 DWORD dwArrowsOn:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */
363 } MENU, *PMENU;
364
365 typedef struct _REGISTER_SYSCLASS
366 {
367 /* This is a reactos specific class used to initialize the
368 system window classes during user32 initialization */
369 PWSTR ClassName;
370 UINT Style;
371 WNDPROC ProcW;
372 UINT ExtraBytes;
373 HICON hCursor;
374 HBRUSH hBrush;
375 WORD fiId;
376 WORD iCls;
377 } REGISTER_SYSCLASS, *PREGISTER_SYSCLASS;
378
379 typedef struct _CLSMENUNAME
380 {
381 LPSTR pszClientAnsiMenuName;
382 LPWSTR pwszClientUnicodeMenuName;
383 PUNICODE_STRING pusMenuName;
384 } CLSMENUNAME, *PCLSMENUNAME;
385
386 typedef struct tagSBDATA
387 {
388 INT posMin;
389 INT posMax;
390 INT page;
391 INT pos;
392 } SBDATA, *PSBDATA;
393
394 typedef struct tagSBINFO
395 {
396 INT WSBflags;
397 SBDATA Horz;
398 SBDATA Vert;
399 } SBINFO, *PSBINFO;
400
401 typedef struct tagSBCALC
402 {
403 INT posMin;
404 INT posMax;
405 INT page;
406 INT pos;
407 INT pxTop;
408 INT pxBottom;
409 INT pxLeft;
410 INT pxRight;
411 INT cpxThumb;
412 INT pxUpArrow;
413 INT pxDownArrow;
414 INT pxStart;
415 INT pxThumbBottom;
416 INT pxThumbTop;
417 INT cpx;
418 INT pxMin;
419 } SBCALC, *PSBCALC;
420
421 typedef enum _GETCPD
422 {
423 UserGetCPDA2U = 0x01, // " Unicode "
424 UserGetCPDU2A = 0X02, // " Ansi "
425 UserGetCPDClass = 0X10,
426 UserGetCPDWindow = 0X20,
427 UserGetCPDDialog = 0X40,
428 UserGetCPDWndtoCls = 0X80
429 } GETCPD, *PGETCPD;
430
431 typedef struct _CALLPROCDATA
432 {
433 PROCDESKHEAD head;
434 struct _CALLPROCDATA *spcpdNext;
435 WNDPROC pfnClientPrevious;
436 GETCPD wType;
437 } CALLPROCDATA, *PCALLPROCDATA;
438
439 #define CSF_SERVERSIDEPROC 0x0001
440 #define CSF_ANSIPROC 0x0002
441 #define CSF_WOWDEFERDESTROY 0x0004
442 #define CSF_SYSTEMCLASS 0x0008
443 #define CSF_WOWCLASS 0x0010
444 #define CSF_WOWEXTRA 0x0020
445 #define CSF_CACHEDSMICON 0x0040
446 #define CSF_WIN40COMPAT 0x0080
447
448 typedef struct _CLS
449 {
450 struct _CLS *pclsNext;
451 RTL_ATOM atomClassName;
452 ATOM atomNVClassName;
453 DWORD fnid;
454 struct _DESKTOP *rpdeskParent;
455 PVOID pdce;
456 DWORD CSF_flags;
457 PSTR lpszClientAnsiMenuName; // For client use
458 PWSTR lpszClientUnicodeMenuName; // " " "
459 PCALLPROCDATA spcpdFirst;
460 struct _CLS *pclsBase;
461 struct _CLS *pclsClone;
462 ULONG cWndReferenceCount;
463 UINT style;
464 WNDPROC lpfnWndProc;
465 INT cbclsExtra;
466 INT cbwndExtra;
467 HINSTANCE hModule;
468 HANDLE hIcon; /* FIXME - Use pointer! */
469 //PCURSOR spicn;
470 HANDLE hCursor; /* FIXME - Use pointer! */
471 //PCURSOR spcur;
472 HBRUSH hbrBackground;
473 PWSTR lpszMenuName; // kernel use
474 PSTR lpszAnsiClassName; // "
475 HANDLE hIconSm; /* FIXME - Use pointer! */
476 //PCURSOR spicnSm;
477
478 UINT Unicode : 1; // !CSF_ANSIPROC
479 UINT Global : 1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
480 UINT MenuNameIsString : 1;
481 UINT NotUsed : 29;
482 } CLS, *PCLS;
483
484
485 typedef struct _SBINFOEX
486 {
487 SCROLLBARINFO ScrollBarInfo;
488 SCROLLINFO ScrollInfo;
489 } SBINFOEX, *PSBINFOEX;
490
491 // State Flags !Not Implemented!
492 #define WNDS_HASMENU 0X00000001
493 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002
494 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004
495 #define WNDS_HASCAPTION 0X00000008
496 #define WNDS_SENDSIZEMOVEMSGS 0X00000010
497 #define WNDS_MSGBOX 0X00000020
498 #define WNDS_ACTIVEFRAME 0X00000040
499 #define WNDS_HASSPB 0X00000080
500 #define WNDS_NONCPAINT 0X00000100
501 #define WNDS_SENDERASEBACKGROUND 0X00000200
502 #define WNDS_ERASEBACKGROUND 0X00000400
503 #define WNDS_SENDNCPAINT 0X00000800
504 #define WNDS_INTERNALPAINT 0X00001000
505 #define WNDS_UPDATEDIRTY 0X00002000
506 #define WNDS_HIDDENPOPUP 0X00004000
507 #define WNDS_FORCEMENUDRAW 0X00008000
508 #define WNDS_DIALOGWINDOW 0X00010000
509 #define WNDS_HASCREATESTRUCTNAME 0X00020000
510 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k.
511 #define WNDS_ANSIWINDOWPROC 0x00080000
512 #define WNDS_BEINGACTIVATED 0x00100000
513 #define WNDS_HASPALETTE 0x00200000
514 #define WNDS_PAINTNOTPROCESSED 0x00400000
515 #define WNDS_SYNCPAINTPENDING 0x00800000
516 #define WNDS_RECIEVEDQUERYSUSPENDMSG 0x01000000
517 #define WNDS_RECIEVEDSUSPENDMSG 0x02000000
518 #define WNDS_TOGGLETOPMOST 0x04000000
519 #define WNDS_REDRAWIFHUNG 0x08000000
520 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000
521 #define WNDS_ANSICREATOR 0x20000000
522 #define WNDS_MAXIMIZESTOMONITOR 0x40000000
523 #define WNDS_DESTROYED 0x80000000
524
525 #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 };
2189
2190 DWORD_PTR
2191 NTAPI
2192 NtUserGetThreadState(
2193 DWORD Routine);
2194
2195 BOOLEAN
2196 NTAPI
2197 NtUserGetTitleBarInfo(
2198 HWND hwnd,
2199 PTITLEBARINFO pti);
2200
2201 BOOL NTAPI
2202 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
2203
2204 int
2205 NTAPI
2206 NtUserGetUpdateRgn(
2207 HWND hWnd,
2208 HRGN hRgn,
2209 BOOL bErase);
2210
2211 HDC
2212 NTAPI
2213 NtUserGetWindowDC(
2214 HWND hWnd);
2215
2216 BOOL
2217 NTAPI
2218 NtUserGetWindowPlacement(
2219 HWND hWnd,
2220 WINDOWPLACEMENT *lpwndpl);
2221
2222 PCLS
2223 NTAPI
2224 NtUserGetWOWClass(
2225 HINSTANCE hInstance,
2226 PUNICODE_STRING ClassName);
2227
2228 DWORD
2229 NTAPI
2230 NtUserHardErrorControl(
2231 DWORD dwUnknown1,
2232 DWORD dwUnknown2,
2233 DWORD dwUnknown3);
2234
2235 BOOL
2236 NTAPI
2237 NtUserImpersonateDdeClientWindow(
2238 HWND hWndClient,
2239 HWND hWndServer);
2240
2241 NTSTATUS
2242 NTAPI
2243 NtUserInitialize(
2244 DWORD dwWinVersion,
2245 HANDLE hPowerRequestEvent,
2246 HANDLE hMediaRequestEvent);
2247
2248 NTSTATUS
2249 NTAPI
2250 NtUserInitializeClientPfnArrays(
2251 PPFNCLIENT pfnClientA,
2252 PPFNCLIENT pfnClientW,
2253 PPFNCLIENTWORKER pfnClientWorker,
2254 HINSTANCE hmodUser);
2255
2256 DWORD
2257 NTAPI
2258 NtUserInitTask(
2259 DWORD Unknown0,
2260 DWORD Unknown1,
2261 DWORD Unknown2,
2262 DWORD Unknown3,
2263 DWORD Unknown4,
2264 DWORD Unknown5,
2265 DWORD Unknown6,
2266 DWORD Unknown7,
2267 DWORD Unknown8,
2268 DWORD Unknown9,
2269 DWORD Unknown10,
2270 DWORD Unknown11);
2271
2272 INT
2273 NTAPI
2274 NtUserInternalGetWindowText(
2275 HWND hWnd,
2276 LPWSTR lpString,
2277 INT nMaxCount);
2278
2279 BOOL
2280 NTAPI
2281 NtUserInvalidateRect(
2282 HWND hWnd,
2283 CONST RECT *lpRect,
2284 BOOL bErase);
2285
2286 BOOL
2287 NTAPI
2288 NtUserInvalidateRgn(
2289 HWND hWnd,
2290 HRGN hRgn,
2291 BOOL bErase);
2292
2293 BOOL
2294 NTAPI
2295 NtUserIsClipboardFormatAvailable(
2296 UINT format);
2297
2298 BOOL
2299 NTAPI
2300 NtUserKillTimer
2301 (
2302 HWND hWnd,
2303 UINT_PTR uIDEvent
2304 );
2305
2306 HKL
2307 NTAPI
2308 NtUserLoadKeyboardLayoutEx(
2309 IN HANDLE Handle,
2310 IN DWORD offTable,
2311 IN PUNICODE_STRING puszKeyboardName,
2312 IN HKL hKL,
2313 IN PUNICODE_STRING puszKLID,
2314 IN DWORD dwKLID,
2315 IN UINT Flags);
2316
2317 BOOL
2318 NTAPI
2319 NtUserLockWindowStation(
2320 HWINSTA hWindowStation);
2321
2322 BOOL
2323 NTAPI
2324 NtUserLockWindowUpdate(
2325 HWND hWnd);
2326
2327 BOOL
2328 NTAPI
2329 NtUserLockWorkStation(VOID);
2330
2331 UINT
2332 NTAPI
2333 NtUserMapVirtualKeyEx( UINT keyCode,
2334 UINT transType,
2335 DWORD keyboardId,
2336 HKL dwhkl );
2337
2338 typedef struct tagDOSENDMESSAGE
2339 {
2340 UINT uFlags;
2341 UINT uTimeout;
2342 ULONG_PTR Result;
2343 }
2344 DOSENDMESSAGE, *PDOSENDMESSAGE;
2345
2346 BOOL
2347 NTAPI
2348 NtUserMessageCall(
2349 HWND hWnd,
2350 UINT Msg,
2351 WPARAM wParam,
2352 LPARAM lParam,
2353 ULONG_PTR ResultInfo,
2354 DWORD dwType, // FNID_XX types
2355 BOOL Ansi);
2356
2357 DWORD
2358 NTAPI
2359 NtUserMinMaximize(
2360 HWND hWnd,
2361 UINT cmd, // Wine SW_ commands
2362 BOOL Hide);
2363
2364 DWORD
2365 NTAPI
2366 NtUserMNDragLeave(VOID);
2367
2368 DWORD
2369 NTAPI
2370 NtUserMNDragOver(
2371 DWORD Unknown0,
2372 DWORD Unknown1);
2373
2374 DWORD
2375 NTAPI
2376 NtUserModifyUserStartupInfoFlags(
2377 DWORD Unknown0,
2378 DWORD Unknown1);
2379
2380 BOOL
2381 NTAPI
2382 NtUserMoveWindow(
2383 HWND hWnd,
2384 int X,
2385 int Y,
2386 int nWidth,
2387 int nHeight,
2388 BOOL bRepaint
2389 );
2390
2391 DWORD
2392 NTAPI
2393 NtUserNotifyIMEStatus(
2394 DWORD Unknown0,
2395 DWORD Unknown1,
2396 DWORD Unknown2);
2397
2398 DWORD
2399 NTAPI
2400 NtUserNotifyProcessCreate(
2401 DWORD dwUnknown1,
2402 DWORD dwUnknown2,
2403 DWORD dwUnknown3,
2404 DWORD dwUnknown4);
2405
2406 VOID
2407 NTAPI
2408 NtUserNotifyWinEvent(
2409 DWORD Event,
2410 HWND hWnd,
2411 LONG idObject,
2412 LONG idChild);
2413
2414 BOOL
2415 NTAPI
2416 NtUserOpenClipboard(
2417 HWND hWnd,
2418 DWORD Unknown1);
2419
2420 HDESK
2421 NTAPI
2422 NtUserOpenDesktop(
2423 POBJECT_ATTRIBUTES ObjectAttributes,
2424 DWORD dwFlags,
2425 ACCESS_MASK dwDesiredAccess);
2426
2427 HDESK
2428 NTAPI
2429 NtUserOpenInputDesktop(
2430 DWORD dwFlags,
2431 BOOL fInherit,
2432 ACCESS_MASK dwDesiredAccess);
2433
2434 HWINSTA
2435 NTAPI
2436 NtUserOpenWindowStation(
2437 POBJECT_ATTRIBUTES ObjectAttributes,
2438 ACCESS_MASK dwDesiredAccess);
2439
2440 BOOL
2441 NTAPI
2442 NtUserPaintDesktop(
2443 HDC hDC);
2444
2445 DWORD
2446 NTAPI
2447 NtUserPaintMenuBar(
2448 DWORD dwUnknown1,
2449 DWORD dwUnknown2,
2450 DWORD dwUnknown3,
2451 DWORD dwUnknown4,
2452 DWORD dwUnknown5,
2453 DWORD dwUnknown6);
2454
2455 BOOL APIENTRY
2456 NtUserPeekMessage( PMSG pMsg,
2457 HWND hWnd,
2458 UINT MsgFilterMin,
2459 UINT MsgFilterMax,
2460 UINT RemoveMsg);
2461
2462 BOOL
2463 NTAPI
2464 NtUserPostMessage(
2465 HWND hWnd,
2466 UINT Msg,
2467 WPARAM wParam,
2468 LPARAM lParam);
2469
2470 BOOL
2471 NTAPI
2472 NtUserPostThreadMessage(
2473 DWORD idThread,
2474 UINT Msg,
2475 WPARAM wParam,
2476 LPARAM lParam);
2477
2478 BOOL
2479 NTAPI
2480 NtUserPrintWindow(
2481 HWND hwnd,
2482 HDC hdcBlt,
2483 UINT nFlags);
2484
2485 NTSTATUS
2486 NTAPI
2487 NtUserProcessConnect(
2488 IN HANDLE Process,
2489 OUT PUSERCONNECT pUserConnect,
2490 IN DWORD dwSize); // sizeof(USERCONNECT)
2491
2492 DWORD
2493 NTAPI
2494 NtUserQueryInformationThread(
2495 DWORD dwUnknown1,
2496 DWORD dwUnknown2,
2497 DWORD dwUnknown3,
2498 DWORD dwUnknown4,
2499 DWORD dwUnknown5);
2500
2501 DWORD
2502 NTAPI
2503 NtUserQueryInputContext(
2504 DWORD dwUnknown1,
2505 DWORD dwUnknown2);
2506
2507 DWORD
2508 NTAPI
2509 NtUserQuerySendMessage(
2510 DWORD Unknown0);
2511
2512 DWORD
2513 NTAPI
2514 NtUserQueryUserCounters(
2515 DWORD Unknown0,
2516 DWORD Unknown1,
2517 DWORD Unknown2,
2518 DWORD Unknown3,
2519 DWORD Unknown4);
2520
2521 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2522 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2523 #define QUERY_WINDOW_ACTIVE 0x02
2524 #define QUERY_WINDOW_FOCUS 0x03
2525 #define QUERY_WINDOW_ISHUNG 0x04
2526 #define QUERY_WINDOW_REAL_ID 0x05
2527 #define QUERY_WINDOW_FOREGROUND 0x06
2528 DWORD
2529 NTAPI
2530 NtUserQueryWindow(
2531 HWND hWnd,
2532 DWORD Index);
2533
2534 BOOL
2535 NTAPI
2536 NtUserRealInternalGetMessage(
2537 LPMSG lpMsg,
2538 HWND hWnd,
2539 UINT wMsgFilterMin,
2540 UINT wMsgFilterMax,
2541 UINT wRemoveMsg,
2542 BOOL bGMSG);
2543
2544 HWND
2545 NTAPI
2546 NtUserRealChildWindowFromPoint(
2547 HWND Parent,
2548 LONG x,
2549 LONG y);
2550
2551 BOOL
2552 NTAPI
2553 NtUserRealWaitMessageEx(
2554 DWORD dwWakeMask,
2555 UINT uTimeout);
2556
2557 BOOL
2558 NTAPI
2559 NtUserRedrawWindow
2560 (
2561 HWND hWnd,
2562 CONST RECT *lprcUpdate,
2563 HRGN hrgnUpdate,
2564 UINT flags
2565 );
2566
2567 RTL_ATOM
2568 NTAPI
2569 NtUserRegisterClassExWOW(
2570 WNDCLASSEXW* lpwcx,
2571 PUNICODE_STRING pustrClassName,
2572 PUNICODE_STRING pustrCNVersion,
2573 PCLSMENUNAME pClassMenuName,
2574 DWORD fnID,
2575 DWORD Flags,
2576 LPDWORD pWow);
2577
2578 BOOL
2579 NTAPI
2580 NtUserRegisterRawInputDevices(
2581 IN PCRAWINPUTDEVICE pRawInputDevices,
2582 IN UINT uiNumDevices,
2583 IN UINT cbSize);
2584
2585 BOOL
2586 NTAPI
2587 NtUserRegisterUserApiHook(
2588 PUNICODE_STRING m_dllname1,
2589 PUNICODE_STRING m_funname1,
2590 DWORD dwUnknown3,
2591 DWORD dwUnknown4);
2592
2593 BOOL
2594 NTAPI
2595 NtUserRegisterHotKey(HWND hWnd,
2596 int id,
2597 UINT fsModifiers,
2598 UINT vk);
2599
2600 DWORD
2601 NTAPI
2602 NtUserRegisterTasklist(
2603 DWORD Unknown0);
2604
2605 UINT NTAPI
2606 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
2607
2608 DWORD
2609 NTAPI
2610 NtUserRemoteConnect(
2611 DWORD dwUnknown1,
2612 DWORD dwUnknown2,
2613 DWORD dwUnknown3);
2614
2615 DWORD
2616 NTAPI
2617 NtUserRemoteRedrawRectangle(
2618 DWORD dwUnknown1,
2619 DWORD dwUnknown2,
2620 DWORD dwUnknown3,
2621 DWORD dwUnknown4);
2622
2623 DWORD
2624 NTAPI
2625 NtUserRemoteRedrawScreen(VOID);
2626
2627 DWORD
2628 NTAPI
2629 NtUserRemoteStopScreenUpdates(VOID);
2630
2631 HANDLE NTAPI
2632 NtUserRemoveProp(HWND hWnd, ATOM Atom);
2633
2634 DWORD
2635 NTAPI
2636 NtUserResolveDesktop(
2637 DWORD dwUnknown1,
2638 DWORD dwUnknown2,
2639 DWORD dwUnknown3,
2640 DWORD dwUnknown4);
2641
2642 DWORD
2643 NTAPI
2644 NtUserResolveDesktopForWOW(
2645 DWORD Unknown0);
2646
2647 BOOL
2648 NTAPI
2649 NtUserSBGetParms(
2650 HWND hwnd,
2651 int fnBar,
2652 PSBDATA pSBData,
2653 LPSCROLLINFO lpsi);
2654
2655 BOOL
2656 NTAPI
2657 NtUserScrollDC(
2658 HDC hDC,
2659 int dx,
2660 int dy,
2661 CONST RECT *lprcScroll,
2662 CONST RECT *lprcClip ,
2663 HRGN hrgnUpdate,
2664 LPRECT lprcUpdate);
2665
2666 DWORD NTAPI
2667 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
2668 const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
2669
2670 UINT
2671 NTAPI
2672 NtUserSendInput(
2673 UINT nInputs,
2674 LPINPUT pInput,
2675 INT cbSize);
2676
2677 HWND NTAPI
2678 NtUserSetActiveWindow(HWND Wnd);
2679
2680 DWORD
2681 NTAPI
2682 NtUserSetAppImeLevel(
2683 DWORD dwUnknown1,
2684 DWORD dwUnknown2);
2685
2686 HWND NTAPI
2687 NtUserSetCapture(HWND Wnd);
2688
2689 ULONG_PTR NTAPI
2690 NtUserSetClassLong(
2691 HWND hWnd,
2692 INT Offset,
2693 ULONG_PTR dwNewLong,
2694 BOOL Ansi );
2695
2696 WORD
2697 NTAPI
2698 NtUserSetClassWord(
2699 HWND hWnd,
2700 INT nIndex,
2701 WORD wNewWord);
2702
2703 HANDLE
2704 NTAPI
2705 NtUserSetClipboardData(
2706 UINT fmt,
2707 HANDLE hMem,
2708 PSETCLIPBDATA scd);
2709
2710 HWND
2711 NTAPI
2712 NtUserSetClipboardViewer(
2713 HWND hWndNewViewer);
2714
2715 HPALETTE
2716 NTAPI
2717 NtUserSelectPalette(
2718 HDC hDC,
2719 HPALETTE hpal,
2720 BOOL ForceBackground
2721 );
2722
2723 DWORD
2724 NTAPI
2725 NtUserSetConsoleReserveKeys(
2726 DWORD Unknown0,
2727 DWORD Unknown1);
2728
2729 HCURSOR
2730 NTAPI
2731 NtUserSetCursor(
2732 HCURSOR hCursor);
2733
2734 BOOL
2735 NTAPI
2736 NtUserSetCursorContents(
2737 HANDLE Handle,
2738 PICONINFO IconInfo);
2739
2740 #if 0 // Correct type.
2741 BOOL
2742 NTAPI
2743 NtUserSetCursorIconData(
2744 HCURSOR hCursor,
2745 PUNICODE_STRING ModuleName,
2746 PUNICODE_STRING ResourceName,
2747 PCURSORDATA pCursorData);
2748 #endif
2749
2750 DWORD
2751 NTAPI
2752 NtUserSetDbgTag(
2753 DWORD Unknown0,
2754 DWORD Unknown1);
2755
2756 HWND
2757 NTAPI
2758 NtUserSetFocus(
2759 HWND hWnd);
2760
2761 DWORD
2762 NTAPI
2763 NtUserSetImeHotKey(
2764 DWORD Unknown0,
2765 DWORD Unknown1,
2766 DWORD Unknown2,
2767 DWORD Unknown3,
2768 DWORD Unknown4);
2769
2770 DWORD
2771 NTAPI
2772 NtUserSetImeInfoEx(
2773 DWORD dwUnknown1);
2774
2775 DWORD
2776 NTAPI
2777 NtUserSetImeOwnerWindow(
2778 DWORD Unknown0,
2779 DWORD Unknown1);
2780
2781 DWORD
2782 NTAPI
2783 NtUserSetInformationProcess(
2784 DWORD dwUnknown1,
2785 DWORD dwUnknown2,
2786 DWORD dwUnknown3,
2787 DWORD dwUnknown4);
2788
2789 NTSTATUS
2790 NTAPI
2791 NtUserSetInformationThread(
2792 IN HANDLE ThreadHandle,
2793 IN USERTHREADINFOCLASS ThreadInformationClass,
2794 IN PVOID ThreadInformation,
2795 IN ULONG ThreadInformationLength
2796 );
2797
2798 DWORD
2799 NTAPI
2800 NtUserSetInternalWindowPos(
2801 HWND hwnd,
2802 UINT showCmd,
2803 LPRECT rect,
2804 LPPOINT pt);
2805
2806 BOOL
2807 NTAPI
2808 NtUserSetKeyboardState(
2809 LPBYTE lpKeyState);
2810
2811 BOOL
2812 NTAPI
2813 NtUserSetLayeredWindowAttributes(
2814 HWND hwnd,
2815 COLORREF crKey,
2816 BYTE bAlpha,
2817 DWORD dwFlags);
2818
2819 BOOL
2820 NTAPI
2821 NtUserSetLogonNotifyWindow(
2822 HWND hWnd);
2823
2824 BOOL
2825 NTAPI
2826 NtUserSetObjectInformation(
2827 HANDLE hObject,
2828 DWORD nIndex,
2829 PVOID pvInformation,
2830 DWORD nLength);
2831
2832 HWND
2833 NTAPI
2834 NtUserSetParent(
2835 HWND hWndChild,
2836 HWND hWndNewParent);
2837
2838 BOOL
2839 NTAPI
2840 NtUserSetProcessWindowStation(
2841 HWINSTA hWindowStation);
2842
2843 BOOL NTAPI
2844 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2845
2846 DWORD
2847 NTAPI
2848 NtUserSetRipFlags(
2849 DWORD Unknown0,
2850 DWORD Unknown1);
2851
2852 DWORD
2853 NTAPI
2854 NtUserSetScrollInfo(
2855 HWND hwnd,
2856 int fnBar,
2857 LPCSCROLLINFO lpsi,
2858 BOOL bRedraw);
2859
2860 BOOL
2861 NTAPI
2862 NtUserSetShellWindowEx(
2863 HWND hwndShell,
2864 HWND hwndShellListView);
2865
2866 BOOL
2867 NTAPI
2868 NtUserSetSysColors(
2869 int cElements,
2870 IN CONST INT *lpaElements,
2871 IN CONST COLORREF *lpaRgbValues,
2872 FLONG Flags);
2873
2874 BOOL
2875 NTAPI
2876 NtUserSetSystemCursor(
2877 HCURSOR hcur,
2878 DWORD id);
2879
2880 BOOL
2881 NTAPI
2882 NtUserSetThreadDesktop(
2883 HDESK hDesktop);
2884
2885 DWORD
2886 NTAPI
2887 NtUserSetThreadState(
2888 DWORD Unknown0,
2889 DWORD Unknown1);
2890
2891 UINT_PTR
2892 NTAPI
2893 NtUserSetSystemTimer
2894 (
2895 HWND hWnd,
2896 UINT_PTR nIDEvent,
2897 UINT uElapse,
2898 TIMERPROC lpTimerFunc
2899 );
2900
2901 DWORD
2902 NTAPI
2903 NtUserSetThreadLayoutHandles(
2904 DWORD dwUnknown1,
2905 DWORD dwUnknown2);
2906
2907 UINT_PTR
2908 NTAPI
2909 NtUserSetTimer
2910 (
2911 HWND hWnd,
2912 UINT_PTR nIDEvent,
2913 UINT uElapse,
2914 TIMERPROC lpTimerFunc
2915 );
2916
2917 BOOL
2918 NTAPI
2919 NtUserSetWindowFNID(
2920 HWND hWnd,
2921 WORD fnID);
2922
2923 LONG
2924 NTAPI
2925 NtUserSetWindowLong(
2926 HWND hWnd,
2927 DWORD Index,
2928 LONG NewValue,
2929 BOOL Ansi);
2930
2931 BOOL
2932 NTAPI
2933 NtUserSetWindowPlacement(
2934 HWND hWnd,
2935 WINDOWPLACEMENT *lpwndpl);
2936
2937 BOOL
2938 NTAPI NtUserSetWindowPos(
2939 HWND hWnd,
2940 HWND hWndInsertAfter,
2941 int X,
2942 int Y,
2943 int cx,
2944 int cy,
2945 UINT uFlags
2946 );
2947
2948 INT
2949 NTAPI
2950 NtUserSetWindowRgn(
2951 HWND hWnd,
2952 HRGN hRgn,
2953 BOOL bRedraw);
2954
2955 HHOOK
2956 NTAPI
2957 NtUserSetWindowsHookAW(
2958 int idHook,
2959 HOOKPROC lpfn,
2960 BOOL Ansi);
2961
2962 HHOOK
2963 NTAPI
2964 NtUserSetWindowsHookEx(
2965 HINSTANCE Mod,
2966 PUNICODE_STRING ModuleName,
2967 DWORD ThreadId,
2968 int HookId,
2969 HOOKPROC HookProc,
2970 BOOL Ansi);
2971
2972 DWORD
2973 NTAPI
2974 NtUserSetWindowStationUser(
2975 DWORD Unknown0,
2976 DWORD Unknown1,
2977 DWORD Unknown2,
2978 DWORD Unknown3);
2979
2980 WORD NTAPI
2981 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
2982
2983 HWINEVENTHOOK
2984 NTAPI
2985 NtUserSetWinEventHook(
2986 UINT eventMin,
2987 UINT eventMax,
2988 HMODULE hmodWinEventProc,
2989 PUNICODE_STRING puString,
2990 WINEVENTPROC lpfnWinEventProc,
2991 DWORD idProcess,
2992 DWORD idThread,
2993 UINT dwflags);
2994
2995 BOOL
2996 NTAPI
2997 NtUserShowCaret(
2998 HWND hWnd);
2999
3000 BOOL
3001 NTAPI
3002 NtUserHideCaret(
3003 HWND hWnd);
3004
3005 DWORD
3006 NTAPI
3007 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
3008
3009 BOOL
3010 NTAPI
3011 NtUserShowWindow(
3012 HWND hWnd,
3013 LONG nCmdShow);
3014
3015 BOOL
3016 NTAPI
3017 NtUserShowWindowAsync(
3018 HWND hWnd,
3019 LONG nCmdShow);
3020
3021 BOOL
3022 NTAPI
3023 NtUserSoundSentry(VOID);
3024
3025 BOOL
3026 NTAPI
3027 NtUserSwitchDesktop(
3028 HDESK hDesktop);
3029
3030 BOOL
3031 NTAPI
3032 NtUserSystemParametersInfo(
3033 UINT uiAction,
3034 UINT uiParam,
3035 PVOID pvParam,
3036 UINT fWinIni);
3037
3038 DWORD
3039 NTAPI
3040 NtUserTestForInteractiveUser(
3041 DWORD dwUnknown1);
3042
3043 INT
3044 NTAPI
3045 NtUserToUnicodeEx(
3046 UINT wVirtKey,
3047 UINT wScanCode,
3048 PBYTE lpKeyState,
3049 LPWSTR pwszBuff,
3050 int cchBuff,
3051 UINT wFlags,
3052 HKL dwhkl );
3053
3054 BOOL
3055 NTAPI
3056 NtUserTrackMouseEvent(
3057 LPTRACKMOUSEEVENT lpEventTrack);
3058
3059 int
3060 NTAPI
3061 NtUserTranslateAccelerator(
3062 HWND Window,
3063 HACCEL Table,
3064 LPMSG Message);
3065
3066 BOOL
3067 NTAPI
3068 NtUserTranslateMessage(
3069 LPMSG lpMsg,
3070 UINT flags );
3071
3072 BOOL
3073 NTAPI
3074 NtUserUnhookWindowsHookEx(
3075 HHOOK Hook);
3076
3077 BOOL
3078 NTAPI
3079 NtUserUnhookWinEvent(
3080 HWINEVENTHOOK hWinEventHook);
3081
3082 BOOL
3083 NTAPI
3084 NtUserUnloadKeyboardLayout(
3085 HKL hKl);
3086
3087 BOOL
3088 NTAPI
3089 NtUserUnlockWindowStation(
3090 HWINSTA hWindowStation);
3091
3092 BOOL
3093 NTAPI
3094 NtUserUnregisterClass(
3095 PUNICODE_STRING ClassNameOrAtom,
3096 HINSTANCE hInstance,
3097 PCLSMENUNAME pClassMenuName);
3098
3099 BOOL
3100 NTAPI
3101 NtUserUnregisterHotKey(HWND hWnd,
3102 int id);
3103
3104 BOOL
3105 NTAPI
3106 NtUserUnregisterUserApiHook(VOID);
3107
3108 DWORD
3109 NTAPI
3110 NtUserUpdateInputContext(
3111 DWORD Unknown0,
3112 DWORD Unknown1,
3113 DWORD Unknown2);
3114
3115 DWORD
3116 NTAPI
3117 NtUserUpdateInstance(
3118 DWORD Unknown0,
3119 DWORD Unknown1,
3120 DWORD Unknown2);
3121
3122 BOOL
3123 NTAPI
3124 NtUserUpdateLayeredWindow(
3125 HWND hwnd,
3126 HDC hdcDst,
3127 POINT *pptDst,
3128 SIZE *psize,
3129 HDC hdcSrc,
3130 POINT *pptSrc,
3131 COLORREF crKey,
3132 BLENDFUNCTION *pblend,
3133 DWORD dwFlags,
3134 RECT *prcDirty);
3135
3136 BOOL
3137 NTAPI
3138 NtUserUpdatePerUserSystemParameters(
3139 DWORD dwReserved,
3140 BOOL bEnable);
3141
3142 BOOL
3143 NTAPI
3144 NtUserUserHandleGrantAccess(
3145 IN HANDLE hUserHandle,
3146 IN HANDLE hJob,
3147 IN BOOL bGrant);
3148
3149 BOOL
3150 NTAPI
3151 NtUserValidateHandleSecure(
3152 HANDLE hHdl,
3153 BOOL Restricted);
3154
3155 BOOL
3156 NTAPI
3157 NtUserValidateRect(
3158 HWND hWnd,
3159 CONST RECT *lpRect);
3160
3161 BOOL
3162 APIENTRY
3163 NtUserValidateTimerCallback(
3164 HWND hWnd,
3165 WPARAM wParam,
3166 LPARAM lParam);
3167
3168 DWORD
3169 NTAPI
3170 NtUserVkKeyScanEx(
3171 WCHAR wChar,
3172 HKL KeyboardLayout,
3173 BOOL bUsehHK);
3174
3175 DWORD
3176 NTAPI
3177 NtUserWaitForInputIdle(
3178 IN HANDLE hProcess,
3179 IN DWORD dwMilliseconds,
3180 IN BOOL Unknown2); // Always FALSE
3181
3182 DWORD
3183 NTAPI
3184 NtUserWaitForMsgAndEvent(
3185 DWORD Unknown0);
3186
3187 BOOL
3188 NTAPI
3189 NtUserWaitMessage(VOID);
3190
3191 DWORD
3192 NTAPI
3193 NtUserWin32PoolAllocationStats(
3194 DWORD Unknown0,
3195 DWORD Unknown1,
3196 DWORD Unknown2,
3197 DWORD Unknown3,
3198 DWORD Unknown4,
3199 DWORD Unknown5);
3200
3201 HWND
3202 NTAPI
3203 NtUserWindowFromPhysicalPoint(
3204 POINT Point);
3205
3206 HWND
3207 NTAPI
3208 NtUserWindowFromPoint(
3209 LONG X,
3210 LONG Y);
3211
3212 DWORD
3213 NTAPI
3214 NtUserYieldTask(VOID);
3215
3216 /* lParam of DDE messages */
3217 typedef struct tagKMDDEEXECUTEDATA
3218 {
3219 HWND Sender;
3220 HGLOBAL ClientMem;
3221 /* BYTE Data[DataSize] */
3222 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
3223
3224 typedef struct tagKMDDELPARAM
3225 {
3226 UINT_PTR uiLo;
3227 UINT_PTR uiHi;
3228 } KMDDELPARAM, *PKMDDELPARAM;
3229
3230
3231
3232
3233
3234 /* NtUserBad
3235 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3236 */
3237
3238 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3239 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3240 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3241 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3242 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3243 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3244 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3245 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3246 #define MSQ_STATE_CAPTURE 0x1
3247 #define MSQ_STATE_ACTIVE 0x2
3248 #define MSQ_STATE_FOCUS 0x3
3249 #define MSQ_STATE_MENUOWNER 0x4
3250 #define MSQ_STATE_MOVESIZE 0x5
3251 #define MSQ_STATE_CARET 0x6
3252 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3253 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3254 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3255
3256 DWORD
3257 NTAPI
3258 NtUserBuildMenuItemList(
3259 HMENU hMenu,
3260 PVOID Buffer,
3261 ULONG nBufSize,
3262 DWORD Reserved);
3263
3264 UINT
3265 NTAPI
3266 NtUserGetMenuDefaultItem(
3267 HMENU hMenu,
3268 UINT fByPos,
3269 UINT gmdiFlags);
3270
3271 BOOL
3272 NTAPI
3273 NtUserGetMonitorInfo(
3274 IN HMONITOR hMonitor,
3275 OUT LPMONITORINFO pMonitorInfo);
3276
3277 /* Should be done in usermode */
3278
3279 /* (other FocusedItem values give the position of the focused item) */
3280 #define NO_SELECTED_ITEM 0xffff
3281
3282 typedef struct tagROSMENUINFO
3283 {
3284 /* ----------- MENUINFO ----------- */
3285 DWORD cbSize;
3286 DWORD fMask;
3287 DWORD dwStyle;
3288 UINT cyMax;
3289 HBRUSH hbrBack;
3290 DWORD dwContextHelpID;
3291 ULONG_PTR dwMenuData;
3292 /* ----------- Extra ----------- */
3293 HMENU Self; /* Handle of this menu */
3294 WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3295 UINT FocusedItem; /* Currently focused item */
3296 UINT MenuItemCount; /* Number of items in the menu */
3297 HWND Wnd; /* Window containing the menu */
3298 WORD Width; /* Width of the whole menu */
3299 WORD Height; /* Height of the whole menu */
3300 HWND WndOwner; /* window receiving the messages for ownerdraw */
3301 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
3302 SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3303 } ROSMENUINFO, *PROSMENUINFO;
3304
3305 BOOL
3306 NTAPI
3307 NtUserMenuInfo(
3308 HMENU hmenu,
3309 PROSMENUINFO lpmi,
3310 BOOL fsog
3311 );
3312
3313 typedef struct tagROSMENUITEMINFO
3314 {
3315 /* ----------- MENUITEMINFOW ----------- */
3316 UINT cbSize;
3317 UINT fMask;
3318 UINT fType;
3319 UINT fState;
3320 UINT wID;
3321 HMENU hSubMenu;
3322 HBITMAP hbmpChecked;
3323 HBITMAP hbmpUnchecked;
3324 DWORD dwItemData;
3325 LPWSTR dwTypeData;
3326 UINT cch;
3327 HBITMAP hbmpItem;
3328 /* ----------- Extra ----------- */
3329 RECT Rect; /* Item area (relative to menu window) */
3330 UINT dxTab; /* X position of text after Tab */
3331 LPWSTR lpstr; /* Copy of the text pointer in MenuItem->Text */
3332 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
3333
3334 BOOL
3335 NTAPI
3336 NtUserMenuItemInfo(
3337 HMENU hMenu,
3338 UINT uItem,
3339 BOOL fByPosition,
3340 PROSMENUITEMINFO lpmii,
3341 BOOL fsog
3342 );
3343
3344 HMONITOR
3345 NTAPI
3346 NtUserMonitorFromPoint(
3347 IN POINT point,
3348 IN DWORD dwFlags);
3349
3350 HMONITOR
3351 NTAPI
3352 NtUserMonitorFromRect(
3353 IN LPCRECT pRect,
3354 IN DWORD dwFlags);
3355
3356 HMONITOR
3357 NTAPI
3358 NtUserMonitorFromWindow(
3359 IN HWND hWnd,
3360 IN DWORD dwFlags);
3361
3362 BOOL
3363 NTAPI
3364 NtUserSetCursorIconData(
3365 HANDLE Handle,
3366 PBOOL fIcon,
3367 POINT *Hotspot,
3368 HMODULE hModule,
3369 HRSRC hRsrc,
3370 HRSRC hGroupRsrc);
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 */