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