[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 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 #if 0 // Correct type.
2742 BOOL
2743 NTAPI
2744 NtUserSetCursorIconData(
2745 HCURSOR hCursor,
2746 PUNICODE_STRING ModuleName,
2747 PUNICODE_STRING ResourceName,
2748 PCURSORDATA pCursorData);
2749 #endif
2750
2751 DWORD
2752 NTAPI
2753 NtUserSetDbgTag(
2754 DWORD Unknown0,
2755 DWORD Unknown1);
2756
2757 HWND
2758 NTAPI
2759 NtUserSetFocus(
2760 HWND hWnd);
2761
2762 DWORD
2763 NTAPI
2764 NtUserSetImeHotKey(
2765 DWORD Unknown0,
2766 DWORD Unknown1,
2767 DWORD Unknown2,
2768 DWORD Unknown3,
2769 DWORD Unknown4);
2770
2771 DWORD
2772 NTAPI
2773 NtUserSetImeInfoEx(
2774 DWORD dwUnknown1);
2775
2776 DWORD
2777 NTAPI
2778 NtUserSetImeOwnerWindow(
2779 DWORD Unknown0,
2780 DWORD Unknown1);
2781
2782 DWORD
2783 NTAPI
2784 NtUserSetInformationProcess(
2785 DWORD dwUnknown1,
2786 DWORD dwUnknown2,
2787 DWORD dwUnknown3,
2788 DWORD dwUnknown4);
2789
2790 NTSTATUS
2791 NTAPI
2792 NtUserSetInformationThread(
2793 IN HANDLE ThreadHandle,
2794 IN USERTHREADINFOCLASS ThreadInformationClass,
2795 IN PVOID ThreadInformation,
2796 IN ULONG ThreadInformationLength
2797 );
2798
2799 DWORD
2800 NTAPI
2801 NtUserSetInternalWindowPos(
2802 HWND hwnd,
2803 UINT showCmd,
2804 LPRECT rect,
2805 LPPOINT pt);
2806
2807 BOOL
2808 NTAPI
2809 NtUserSetKeyboardState(
2810 LPBYTE lpKeyState);
2811
2812 BOOL
2813 NTAPI
2814 NtUserSetLayeredWindowAttributes(
2815 HWND hwnd,
2816 COLORREF crKey,
2817 BYTE bAlpha,
2818 DWORD dwFlags);
2819
2820 BOOL
2821 NTAPI
2822 NtUserSetLogonNotifyWindow(
2823 HWND hWnd);
2824
2825 BOOL
2826 NTAPI
2827 NtUserSetObjectInformation(
2828 HANDLE hObject,
2829 DWORD nIndex,
2830 PVOID pvInformation,
2831 DWORD nLength);
2832
2833 HWND
2834 NTAPI
2835 NtUserSetParent(
2836 HWND hWndChild,
2837 HWND hWndNewParent);
2838
2839 BOOL
2840 NTAPI
2841 NtUserSetProcessWindowStation(
2842 HWINSTA hWindowStation);
2843
2844 BOOL NTAPI
2845 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2846
2847 DWORD
2848 NTAPI
2849 NtUserSetRipFlags(
2850 DWORD Unknown0,
2851 DWORD Unknown1);
2852
2853 DWORD
2854 NTAPI
2855 NtUserSetScrollInfo(
2856 HWND hwnd,
2857 int fnBar,
2858 LPCSCROLLINFO lpsi,
2859 BOOL bRedraw);
2860
2861 BOOL
2862 NTAPI
2863 NtUserSetShellWindowEx(
2864 HWND hwndShell,
2865 HWND hwndShellListView);
2866
2867 BOOL
2868 NTAPI
2869 NtUserSetSysColors(
2870 int cElements,
2871 IN CONST INT *lpaElements,
2872 IN CONST COLORREF *lpaRgbValues,
2873 FLONG Flags);
2874
2875 BOOL
2876 NTAPI
2877 NtUserSetSystemCursor(
2878 HCURSOR hcur,
2879 DWORD id);
2880
2881 BOOL
2882 NTAPI
2883 NtUserSetThreadDesktop(
2884 HDESK hDesktop);
2885
2886 DWORD
2887 NTAPI
2888 NtUserSetThreadState(
2889 DWORD Unknown0,
2890 DWORD Unknown1);
2891
2892 UINT_PTR
2893 NTAPI
2894 NtUserSetSystemTimer
2895 (
2896 HWND hWnd,
2897 UINT_PTR nIDEvent,
2898 UINT uElapse,
2899 TIMERPROC lpTimerFunc
2900 );
2901
2902 DWORD
2903 NTAPI
2904 NtUserSetThreadLayoutHandles(
2905 DWORD dwUnknown1,
2906 DWORD dwUnknown2);
2907
2908 UINT_PTR
2909 NTAPI
2910 NtUserSetTimer
2911 (
2912 HWND hWnd,
2913 UINT_PTR nIDEvent,
2914 UINT uElapse,
2915 TIMERPROC lpTimerFunc
2916 );
2917
2918 BOOL
2919 NTAPI
2920 NtUserSetWindowFNID(
2921 HWND hWnd,
2922 WORD fnID);
2923
2924 LONG
2925 NTAPI
2926 NtUserSetWindowLong(
2927 HWND hWnd,
2928 DWORD Index,
2929 LONG NewValue,
2930 BOOL Ansi);
2931
2932 BOOL
2933 NTAPI
2934 NtUserSetWindowPlacement(
2935 HWND hWnd,
2936 WINDOWPLACEMENT *lpwndpl);
2937
2938 BOOL
2939 NTAPI NtUserSetWindowPos(
2940 HWND hWnd,
2941 HWND hWndInsertAfter,
2942 int X,
2943 int Y,
2944 int cx,
2945 int cy,
2946 UINT uFlags
2947 );
2948
2949 INT
2950 NTAPI
2951 NtUserSetWindowRgn(
2952 HWND hWnd,
2953 HRGN hRgn,
2954 BOOL bRedraw);
2955
2956 HHOOK
2957 NTAPI
2958 NtUserSetWindowsHookAW(
2959 int idHook,
2960 HOOKPROC lpfn,
2961 BOOL Ansi);
2962
2963 HHOOK
2964 NTAPI
2965 NtUserSetWindowsHookEx(
2966 HINSTANCE Mod,
2967 PUNICODE_STRING ModuleName,
2968 DWORD ThreadId,
2969 int HookId,
2970 HOOKPROC HookProc,
2971 BOOL Ansi);
2972
2973 DWORD
2974 NTAPI
2975 NtUserSetWindowStationUser(
2976 DWORD Unknown0,
2977 DWORD Unknown1,
2978 DWORD Unknown2,
2979 DWORD Unknown3);
2980
2981 WORD NTAPI
2982 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
2983
2984 HWINEVENTHOOK
2985 NTAPI
2986 NtUserSetWinEventHook(
2987 UINT eventMin,
2988 UINT eventMax,
2989 HMODULE hmodWinEventProc,
2990 PUNICODE_STRING puString,
2991 WINEVENTPROC lpfnWinEventProc,
2992 DWORD idProcess,
2993 DWORD idThread,
2994 UINT dwflags);
2995
2996 BOOL
2997 NTAPI
2998 NtUserShowCaret(
2999 HWND hWnd);
3000
3001 BOOL
3002 NTAPI
3003 NtUserHideCaret(
3004 HWND hWnd);
3005
3006 DWORD
3007 NTAPI
3008 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
3009
3010 BOOL
3011 NTAPI
3012 NtUserShowWindow(
3013 HWND hWnd,
3014 LONG nCmdShow);
3015
3016 BOOL
3017 NTAPI
3018 NtUserShowWindowAsync(
3019 HWND hWnd,
3020 LONG nCmdShow);
3021
3022 BOOL
3023 NTAPI
3024 NtUserSoundSentry(VOID);
3025
3026 BOOL
3027 NTAPI
3028 NtUserSwitchDesktop(
3029 HDESK hDesktop);
3030
3031 BOOL
3032 NTAPI
3033 NtUserSystemParametersInfo(
3034 UINT uiAction,
3035 UINT uiParam,
3036 PVOID pvParam,
3037 UINT fWinIni);
3038
3039 DWORD
3040 NTAPI
3041 NtUserTestForInteractiveUser(
3042 DWORD dwUnknown1);
3043
3044 INT
3045 NTAPI
3046 NtUserToUnicodeEx(
3047 UINT wVirtKey,
3048 UINT wScanCode,
3049 PBYTE lpKeyState,
3050 LPWSTR pwszBuff,
3051 int cchBuff,
3052 UINT wFlags,
3053 HKL dwhkl );
3054
3055 BOOL
3056 NTAPI
3057 NtUserTrackMouseEvent(
3058 LPTRACKMOUSEEVENT lpEventTrack);
3059
3060 int
3061 NTAPI
3062 NtUserTranslateAccelerator(
3063 HWND Window,
3064 HACCEL Table,
3065 LPMSG Message);
3066
3067 BOOL
3068 NTAPI
3069 NtUserTranslateMessage(
3070 LPMSG lpMsg,
3071 UINT flags );
3072
3073 BOOL
3074 NTAPI
3075 NtUserUnhookWindowsHookEx(
3076 HHOOK Hook);
3077
3078 BOOL
3079 NTAPI
3080 NtUserUnhookWinEvent(
3081 HWINEVENTHOOK hWinEventHook);
3082
3083 BOOL
3084 NTAPI
3085 NtUserUnloadKeyboardLayout(
3086 HKL hKl);
3087
3088 BOOL
3089 NTAPI
3090 NtUserUnlockWindowStation(
3091 HWINSTA hWindowStation);
3092
3093 BOOL
3094 NTAPI
3095 NtUserUnregisterClass(
3096 PUNICODE_STRING ClassNameOrAtom,
3097 HINSTANCE hInstance,
3098 PCLSMENUNAME pClassMenuName);
3099
3100 BOOL
3101 NTAPI
3102 NtUserUnregisterHotKey(HWND hWnd,
3103 int id);
3104
3105 BOOL
3106 NTAPI
3107 NtUserUnregisterUserApiHook(VOID);
3108
3109 DWORD
3110 NTAPI
3111 NtUserUpdateInputContext(
3112 DWORD Unknown0,
3113 DWORD Unknown1,
3114 DWORD Unknown2);
3115
3116 DWORD
3117 NTAPI
3118 NtUserUpdateInstance(
3119 DWORD Unknown0,
3120 DWORD Unknown1,
3121 DWORD Unknown2);
3122
3123 BOOL
3124 NTAPI
3125 NtUserUpdateLayeredWindow(
3126 HWND hwnd,
3127 HDC hdcDst,
3128 POINT *pptDst,
3129 SIZE *psize,
3130 HDC hdcSrc,
3131 POINT *pptSrc,
3132 COLORREF crKey,
3133 BLENDFUNCTION *pblend,
3134 DWORD dwFlags,
3135 RECT *prcDirty);
3136
3137 BOOL
3138 NTAPI
3139 NtUserUpdatePerUserSystemParameters(
3140 DWORD dwReserved,
3141 BOOL bEnable);
3142
3143 BOOL
3144 NTAPI
3145 NtUserUserHandleGrantAccess(
3146 IN HANDLE hUserHandle,
3147 IN HANDLE hJob,
3148 IN BOOL bGrant);
3149
3150 BOOL
3151 NTAPI
3152 NtUserValidateHandleSecure(
3153 HANDLE hHdl,
3154 BOOL Restricted);
3155
3156 BOOL
3157 NTAPI
3158 NtUserValidateRect(
3159 HWND hWnd,
3160 CONST RECT *lpRect);
3161
3162 BOOL
3163 APIENTRY
3164 NtUserValidateTimerCallback(
3165 HWND hWnd,
3166 WPARAM wParam,
3167 LPARAM lParam);
3168
3169 DWORD
3170 NTAPI
3171 NtUserVkKeyScanEx(
3172 WCHAR wChar,
3173 HKL KeyboardLayout,
3174 BOOL bUsehHK);
3175
3176 DWORD
3177 NTAPI
3178 NtUserWaitForInputIdle(
3179 IN HANDLE hProcess,
3180 IN DWORD dwMilliseconds,
3181 IN BOOL Unknown2); // Always FALSE
3182
3183 DWORD
3184 NTAPI
3185 NtUserWaitForMsgAndEvent(
3186 DWORD Unknown0);
3187
3188 BOOL
3189 NTAPI
3190 NtUserWaitMessage(VOID);
3191
3192 DWORD
3193 NTAPI
3194 NtUserWin32PoolAllocationStats(
3195 DWORD Unknown0,
3196 DWORD Unknown1,
3197 DWORD Unknown2,
3198 DWORD Unknown3,
3199 DWORD Unknown4,
3200 DWORD Unknown5);
3201
3202 HWND
3203 NTAPI
3204 NtUserWindowFromPhysicalPoint(
3205 POINT Point);
3206
3207 HWND
3208 NTAPI
3209 NtUserWindowFromPoint(
3210 LONG X,
3211 LONG Y);
3212
3213 DWORD
3214 NTAPI
3215 NtUserYieldTask(VOID);
3216
3217 /* lParam of DDE messages */
3218 typedef struct tagKMDDEEXECUTEDATA
3219 {
3220 HWND Sender;
3221 HGLOBAL ClientMem;
3222 /* BYTE Data[DataSize] */
3223 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
3224
3225 typedef struct tagKMDDELPARAM
3226 {
3227 UINT_PTR uiLo;
3228 UINT_PTR uiHi;
3229 } KMDDELPARAM, *PKMDDELPARAM;
3230
3231
3232
3233
3234
3235 /* NtUserBad
3236 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3237 */
3238
3239 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3240 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3241 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3242 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3243 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3244 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3245 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3246 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3247 #define MSQ_STATE_CAPTURE 0x1
3248 #define MSQ_STATE_ACTIVE 0x2
3249 #define MSQ_STATE_FOCUS 0x3
3250 #define MSQ_STATE_MENUOWNER 0x4
3251 #define MSQ_STATE_MOVESIZE 0x5
3252 #define MSQ_STATE_CARET 0x6
3253 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3254 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3255 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
3256
3257 DWORD
3258 NTAPI
3259 NtUserBuildMenuItemList(
3260 HMENU hMenu,
3261 PVOID Buffer,
3262 ULONG nBufSize,
3263 DWORD Reserved);
3264
3265 UINT
3266 NTAPI
3267 NtUserGetMenuDefaultItem(
3268 HMENU hMenu,
3269 UINT fByPos,
3270 UINT gmdiFlags);
3271
3272 BOOL
3273 NTAPI
3274 NtUserGetMonitorInfo(
3275 IN HMONITOR hMonitor,
3276 OUT LPMONITORINFO pMonitorInfo);
3277
3278 /* Should be done in usermode */
3279
3280 /* (other FocusedItem values give the position of the focused item) */
3281 #define NO_SELECTED_ITEM 0xffff
3282
3283 typedef struct tagROSMENUINFO
3284 {
3285 /* ----------- MENUINFO ----------- */
3286 DWORD cbSize;
3287 DWORD fMask;
3288 DWORD dwStyle;
3289 UINT cyMax;
3290 HBRUSH hbrBack;
3291 DWORD dwContextHelpID;
3292 ULONG_PTR dwMenuData;
3293 /* ----------- Extra ----------- */
3294 HMENU Self; /* Handle of this menu */
3295 WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3296 UINT FocusedItem; /* Currently focused item */
3297 UINT MenuItemCount; /* Number of items in the menu */
3298 HWND Wnd; /* Window containing the menu */
3299 WORD Width; /* Width of the whole menu */
3300 WORD Height; /* Height of the whole menu */
3301 HWND WndOwner; /* window receiving the messages for ownerdraw */
3302 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
3303 SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3304 } ROSMENUINFO, *PROSMENUINFO;
3305
3306 BOOL
3307 NTAPI
3308 NtUserMenuInfo(
3309 HMENU hmenu,
3310 PROSMENUINFO lpmi,
3311 BOOL fsog
3312 );
3313
3314 typedef struct tagROSMENUITEMINFO
3315 {
3316 /* ----------- MENUITEMINFOW ----------- */
3317 UINT cbSize;
3318 UINT fMask;
3319 UINT fType;
3320 UINT fState;
3321 UINT wID;
3322 HMENU hSubMenu;
3323 HBITMAP hbmpChecked;
3324 HBITMAP hbmpUnchecked;
3325 DWORD dwItemData;
3326 LPWSTR dwTypeData;
3327 UINT cch;
3328 HBITMAP hbmpItem;
3329 /* ----------- Extra ----------- */
3330 RECT Rect; /* Item area (relative to menu window) */
3331 UINT dxTab; /* X position of text after Tab */
3332 LPWSTR lpstr; /* Copy of the text pointer in MenuItem->Text */
3333 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
3334
3335 BOOL
3336 NTAPI
3337 NtUserMenuItemInfo(
3338 HMENU hMenu,
3339 UINT uItem,
3340 BOOL fByPosition,
3341 PROSMENUITEMINFO lpmii,
3342 BOOL fsog
3343 );
3344
3345 HMONITOR
3346 NTAPI
3347 NtUserMonitorFromPoint(
3348 IN POINT point,
3349 IN DWORD dwFlags);
3350
3351 HMONITOR
3352 NTAPI
3353 NtUserMonitorFromRect(
3354 IN LPCRECT pRect,
3355 IN DWORD dwFlags);
3356
3357 HMONITOR
3358 NTAPI
3359 NtUserMonitorFromWindow(
3360 IN HWND hWnd,
3361 IN DWORD dwFlags);
3362
3363 BOOL
3364 NTAPI
3365 NtUserSetCursorIconData(
3366 HANDLE Handle,
3367 PBOOL fIcon,
3368 POINT *Hotspot,
3369 HMODULE hModule,
3370 HRSRC hRsrc,
3371 HRSRC hGroupRsrc);
3372
3373 typedef struct _SETSCROLLBARINFO
3374 {
3375 int nTrackPos;
3376 int reserved;
3377 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
3378 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3379
3380 BOOL
3381 NTAPI
3382 NtUserSetScrollBarInfo(
3383 HWND hwnd,
3384 LONG idObject,
3385 SETSCROLLBARINFO *info);
3386
3387
3388
3389 #endif /* __WIN32K_NTUSER_H */
3390
3391 /* EOF */