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