Merge trunk r45185
[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
779 //
780 // Non SDK Queue message types.
781 //
782 #define QS_SMRESULT 0x8000
783
784 DWORD
785 NTAPI
786 NtUserAssociateInputContext(
787 DWORD dwUnknown1,
788 DWORD dwUnknown2,
789 DWORD dwUnknown3);
790
791 DWORD
792 NTAPI
793 NtUserBuildHimcList(
794 DWORD dwUnknown1,
795 DWORD dwUnknown2,
796 DWORD dwUnknown3,
797 DWORD dwUnknown4);
798
799 DWORD
800 NTAPI
801 NtUserCalcMenuBar(
802 DWORD dwUnknown1,
803 DWORD dwUnknown2,
804 DWORD dwUnknown3,
805 DWORD dwUnknown4,
806 DWORD dwUnknown5);
807
808 DWORD
809 NTAPI
810 NtUserCheckMenuItem(
811 HMENU hmenu,
812 UINT uIDCheckItem,
813 UINT uCheck);
814
815 DWORD
816 NTAPI
817 NtUserCtxDisplayIOCtl(
818 DWORD dwUnknown1,
819 DWORD dwUnknown2,
820 DWORD dwUnknown3);
821
822 BOOL
823 NTAPI
824 NtUserDeleteMenu(
825 HMENU hMenu,
826 UINT uPosition,
827 UINT uFlags);
828
829 BOOL
830 NTAPI
831 NtUserDestroyMenu(
832 HMENU hMenu);
833
834 DWORD
835 NTAPI
836 NtUserDrawMenuBarTemp(
837 HWND hWnd,
838 HDC hDC,
839 PRECT hRect,
840 HMENU hMenu,
841 HFONT hFont);
842
843 UINT
844 NTAPI
845 NtUserEnableMenuItem(
846 HMENU hMenu,
847 UINT uIDEnableItem,
848 UINT uEnable);
849
850 BOOL
851 NTAPI
852 NtUserEndMenu(VOID);
853
854 BOOL
855 NTAPI
856 NtUserGetMenuBarInfo(
857 HWND hwnd,
858 LONG idObject,
859 LONG idItem,
860 PMENUBARINFO pmbi);
861
862 UINT
863 NTAPI
864 NtUserGetMenuIndex(
865 HMENU hMenu,
866 UINT wID);
867
868 BOOL
869 NTAPI
870 NtUserGetMenuItemRect(
871 HWND hWnd,
872 HMENU hMenu,
873 UINT uItem,
874 LPRECT lprcItem);
875
876 HMENU
877 NTAPI
878 NtUserGetSystemMenu(
879 HWND hWnd,
880 BOOL bRevert);
881
882 BOOL
883 NTAPI
884 NtUserHiliteMenuItem(
885 HWND hwnd,
886 HMENU hmenu,
887 UINT uItemHilite,
888 UINT uHilite);
889
890 int
891 NTAPI
892 NtUserMenuItemFromPoint(
893 HWND hWnd,
894 HMENU hMenu,
895 DWORD X,
896 DWORD Y);
897
898 BOOL
899 NTAPI
900 NtUserRemoveMenu(
901 HMENU hMenu,
902 UINT uPosition,
903 UINT uFlags);
904
905 BOOL
906 NTAPI
907 NtUserSetMenu(
908 HWND hWnd,
909 HMENU hMenu,
910 BOOL bRepaint);
911
912 BOOL
913 NTAPI
914 NtUserSetMenuContextHelpId(
915 HMENU hmenu,
916 DWORD dwContextHelpId);
917
918 BOOL
919 NTAPI
920 NtUserSetMenuDefaultItem(
921 HMENU hMenu,
922 UINT uItem,
923 UINT fByPos);
924
925 BOOL
926 NTAPI
927 NtUserSetMenuFlagRtoL(
928 HMENU hMenu);
929
930 BOOL
931 NTAPI
932 NtUserSetSystemMenu(
933 HWND hWnd,
934 HMENU hMenu);
935
936 DWORD
937 NTAPI
938 NtUserThunkedMenuInfo(
939 HMENU hMenu,
940 LPCMENUINFO lpcmi);
941
942 DWORD
943 NTAPI
944 NtUserThunkedMenuItemInfo(
945 HMENU hMenu,
946 UINT uItem,
947 BOOL fByPosition,
948 BOOL bInsert,
949 LPMENUITEMINFOW lpmii,
950 PUNICODE_STRING lpszCaption);
951
952 BOOL
953 NTAPI
954 NtUserTrackPopupMenuEx(
955 HMENU hmenu,
956 UINT fuFlags,
957 int x,
958 int y,
959 HWND hwnd,
960 LPTPMPARAMS lptpm);
961
962 HKL
963 NTAPI
964 NtUserActivateKeyboardLayout(
965 HKL hKl,
966 ULONG Flags);
967
968 DWORD
969 NTAPI
970 NtUserAlterWindowStyle(
971 DWORD Unknown0,
972 DWORD Unknown1,
973 DWORD Unknown2);
974
975 BOOL
976 NTAPI
977 NtUserAttachThreadInput(
978 IN DWORD idAttach,
979 IN DWORD idAttachTo,
980 IN BOOL fAttach);
981
982 HDC NTAPI
983 NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs);
984
985 BOOL
986 NTAPI
987 NtUserBitBltSysBmp(
988 HDC hdc,
989 INT nXDest,
990 INT nYDest,
991 INT nWidth,
992 INT nHeight,
993 INT nXSrc,
994 INT nYSrc,
995 DWORD dwRop );
996
997 BOOL
998 NTAPI
999 NtUserBlockInput(
1000 BOOL BlockIt);
1001
1002 NTSTATUS
1003 NTAPI
1004 NtUserBuildHwndList(
1005 HDESK hDesktop,
1006 HWND hwndParent,
1007 BOOLEAN bChildren,
1008 ULONG dwThreadId,
1009 ULONG lParam,
1010 HWND* pWnd,
1011 ULONG* pBufSize);
1012
1013 NTSTATUS NTAPI
1014 NtUserBuildNameList(
1015 HWINSTA hWinSta,
1016 ULONG dwSize,
1017 PVOID lpBuffer,
1018 PULONG pRequiredSize);
1019
1020 NTSTATUS
1021 NTAPI
1022 NtUserBuildPropList(
1023 HWND hWnd,
1024 LPVOID Buffer,
1025 DWORD BufferSize,
1026 DWORD *Count);
1027
1028 /* apfnSimpleCall indices from Windows XP SP 2 */
1029 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
1030 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
1031
1032 enum SimpleCallRoutines
1033 {
1034 NOPARAM_ROUTINE_CREATEMENU,
1035 NOPARAM_ROUTINE_CREATEMENUPOPUP,
1036 #if (WIN32K_VERSION >= NTDDI_VISTA)
1037 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1038 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1039 NOPARAM_ROUTINE_CREATESYSTEMTHREADS,
1040 NOPARAM_ROUTINE_DESTROY_CARET,
1041 #endif
1042 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,
1043 #if (WIN32K_VERSION < NTDDI_VISTA)
1044 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
1045 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
1046 NOPARAM_ROUTINE_DESTROY_CARET,
1047 #endif
1048 NOPARAM_ROUTINE_GETDEVICECHANGEINFO,
1049 NOPARAM_ROUTINE_GETIMESHOWSTATUS,
1050 NOPARAM_ROUTINE_GETINPUTDESKTOP,
1051 NOPARAM_ROUTINE_GETMSESSAGEPOS,
1052 #if (WIN32K_VERSION >= NTDDI_VISTA)
1053 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1054 #else
1055 NOPARAM_ROUTINE_GETREMOTEPROCID,
1056 #endif
1057 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE,
1058 NOPARAM_ROUTINE_LOADCURSANDICOS,
1059 #if (WIN32K_VERSION >= NTDDI_VISTA)
1060 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1061 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */
1062 #endif
1063 NOPARAM_ROUTINE_RELEASECAPTURE,
1064 NOPARAM_ROUTINE_RESETDBLCLICK,
1065 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS,
1066 NOPARAM_ROUTINE_REMOTECONSHDWSTOP,
1067 NOPARAM_ROUTINE_REMOTEDISCONNECT,
1068 NOPARAM_ROUTINE_REMOTELOGOFF,
1069 NOPARAM_ROUTINE_REMOTENTSECURITY,
1070 NOPARAM_ROUTINE_REMOTESHDWSETUP,
1071 NOPARAM_ROUTINE_REMOTESHDWSTOP,
1072 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE,
1073 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE,
1074 NOPARAM_ROUTINE_REMOTECONNECTSTATE,
1075 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING,
1076 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,
1077 #if (WIN32K_VERSION >= NTDDI_VISTA)
1078 NOPARAM_ROUTINE_WAKERITFORSHTDWN,
1079 #endif
1080 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP,
1081 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,
1082 #if (WIN32K_VERSION < NTDDI_VISTA)
1083 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
1084 #endif
1085 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,
1086 #if (WIN32K_VERSION >= NTDDI_VISTA)
1087 ONEPARAM_ROUTINE_GETSENDMSGRECVR,
1088 #endif
1089 ONEPARAM_ROUTINE_WINDOWFROMDC,
1090 ONEPARAM_ROUTINE_ALLOWSETFOREGND,
1091 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,
1092 #if (WIN32K_VERSION < NTDDI_VISTA)
1093 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
1094 #endif
1095 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE,
1096 ONEPARAM_ROUTINE_DIRECTEDYIELD,
1097 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,
1098 #if (WIN32K_VERSION < NTDDI_VISTA)
1099 ONEPARAM_ROUTINE_GETCURSORPOS,
1100 #endif
1101 ONEPARAM_ROUTINE_GETINPUTEVENT,
1102 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT,
1103 ONEPARAM_ROUTINE_GETKEYBOARDTYPE,
1104 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT,
1105 ONEPARAM_ROUTINE_GETQUEUESTATUS,
1106 ONEPARAM_ROUTINE_GETWINSTAINFO,
1107 #if (WIN32K_VERSION < NTDDI_VISTA)
1108 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
1109 #endif
1110 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW,
1111 ONEPARAM_ROUTINE_LOADFONTS,
1112 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT,
1113 ONEPARAM_ROUTINE_MESSAGEBEEP,
1114 ONEPARAM_ROUTINE_PLAYEVENTSOUND,
1115 ONEPARAM_ROUTINE_POSTQUITMESSAGE,
1116 #if (WIN32K_VERSION < NTDDI_VISTA)
1117 ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
1118 #endif
1119 ONEPARAM_ROUTINE_REALIZEPALETTE,
1120 ONEPARAM_ROUTINE_REGISTERLPK,
1121 #if (WIN32K_VERSION >= NTDDI_VISTA)
1122 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1123 #endif
1124 ONEPARAM_ROUTINE_REMOTERECONNECT,
1125 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS,
1126 ONEPARAM_ROUTINE_RELEASEDC,
1127 #if (WIN32K_VERSION >= NTDDI_VISTA)
1128 ONEPARAM_ROUTINE_REMOTENOTIFY,
1129 #endif
1130 ONEPARAM_ROUTINE_REPLYMESSAGE,
1131 ONEPARAM_ROUTINE_SETCARETBLINKTIME,
1132 ONEPARAM_ROUTINE_SETDBLCLICKTIME,
1133 #if (WIN32K_VERSION < NTDDI_VISTA)
1134 ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
1135 #endif
1136 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO,
1137 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,
1138 #if (WIN32K_VERSION >= NTDDI_VISTA)
1139 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,
1140 #endif
1141 ONEPARAM_ROUTINE_SHOWCURSOR,
1142 ONEPARAM_ROUTINE_SHOWSTARTGLASS,
1143 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON,
1144 X_ROUTINE_WOWMODULEUNLOAD,
1145 #if (WIN32K_VERSION < NTDDI_VISTA)
1146 X_ROUTINE_REMOTENOTIFY,
1147 #endif
1148 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW,
1149 HWND_ROUTINE_DWP_GETENABLEDPOPUP,
1150 HWND_ROUTINE_GETWNDCONTEXTHLPID,
1151 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
1152 HWND_ROUTINE_SETMSGBOX,
1153 HWNDOPT_ROUTINE_SETPROGMANWINDOW,
1154 HWNDOPT_ROUTINE_SETTASKMANWINDOW,
1155 HWNDPARAM_ROUTINE_GETCLASSICOCUR,
1156 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE,
1157 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER,
1158 HWNDPARAM_ROUTINE_SETDIALOGPOINTER,
1159 HWNDPARAM_ROUTINE_SETVISIBLE,
1160 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID,
1161 HWNDPARAM_ROUTINE_SETWINDOWSTATE,
1162 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
1163 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS,
1164 HWNDLOCK_ROUTINE_DRAWMENUBAR,
1165 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD,
1166 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE,
1167 HWNDLOCK_ROUTINE_REDRAWFRAME,
1168 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK,
1169 HWNDLOCK_ROUTINE_SETDLGSYSMENU,
1170 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW,
1171 HWNDLOCK_ROUTINE_SETSYSMENU,
1172 HWNDLOCK_ROUTINE_UPDATECKIENTRECT,
1173 HWNDLOCK_ROUTINE_UPDATEWINDOW,
1174 X_ROUTINE_IMESHOWSTATUSCHANGE,
1175 TWOPARAM_ROUTINE_ENABLEWINDOW,
1176 TWOPARAM_ROUTINE_REDRAWTITLE,
1177 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS,
1178 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW,
1179 TWOPARAM_ROUTINE_UPDATEWINDOWS,
1180 TWOPARAM_ROUTINE_VALIDATERGN,
1181 #if (WIN32K_VERSION >= NTDDI_VISTA)
1182 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER,
1183 TWOPARAM_ROUTINE_GETCURSORPOS,
1184 #endif
1185 TWOPARAM_ROUTINE_GETHDEVNAME,
1186 TWOPARAM_ROUTINE_INITANSIOEM,
1187 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,
1188 #if (WIN32K_VERSION >= NTDDI_VISTA)
1189 TWOPARAM_ROUTINE_REGISTERGHSTWND,
1190 #endif
1191 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,
1192 #if (WIN32K_VERSION >= NTDDI_VISTA)
1193 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,
1194 #else
1195 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
1196 #endif
1197 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS,
1198 TWOPARAM_ROUTINE_SHADOWCLEANUP,
1199 TWOPARAM_ROUTINE_REMOTESHADOWSTART,
1200 TWOPARAM_ROUTINE_SETCARETPOS,
1201 TWOPARAM_ROUTINE_SETCURSORPOS,
1202 #if (WIN32K_VERSION >= NTDDI_VISTA)
1203 TWOPARAM_ROUTINE_SETPHYSCURSORPOS,
1204 #endif
1205 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK,
1206 TWOPARAM_ROUTINE_WOWCLEANUP
1207 };
1208
1209 DWORD
1210 NTAPI
1211 NtUserCallHwnd(
1212 HWND hWnd,
1213 DWORD Routine);
1214
1215 BOOL
1216 NTAPI
1217 NtUserCallHwndLock(
1218 HWND hWnd,
1219 DWORD Routine);
1220
1221 HWND
1222 NTAPI
1223 NtUserCallHwndOpt(
1224 HWND hWnd,
1225 DWORD Routine);
1226
1227 DWORD
1228 NTAPI
1229 NtUserCallHwndParam(
1230 HWND hWnd,
1231 DWORD Param,
1232 DWORD Routine);
1233
1234 DWORD
1235 NTAPI
1236 NtUserCallHwndParamLock(
1237 HWND hWnd,
1238 DWORD Param,
1239 DWORD Routine);
1240
1241 BOOL
1242 NTAPI
1243 NtUserCallMsgFilter(
1244 LPMSG msg,
1245 INT code);
1246
1247 LRESULT
1248 NTAPI
1249 NtUserCallNextHookEx(
1250 int Code,
1251 WPARAM wParam,
1252 LPARAM lParam,
1253 BOOL Ansi);
1254
1255 DWORD_PTR
1256 NTAPI
1257 NtUserCallNoParam(
1258 DWORD Routine);
1259
1260 DWORD_PTR
1261 NTAPI
1262 NtUserCallOneParam(
1263 DWORD_PTR Param,
1264 DWORD Routine);
1265
1266 DWORD_PTR
1267 NTAPI
1268 NtUserCallTwoParam(
1269 DWORD_PTR Param1,
1270 DWORD_PTR Param2,
1271 DWORD Routine);
1272
1273 BOOL
1274 NTAPI
1275 NtUserChangeClipboardChain(
1276 HWND hWndRemove,
1277 HWND hWndNewNext);
1278
1279 LONG
1280 NTAPI
1281 NtUserChangeDisplaySettings(
1282 PUNICODE_STRING lpszDeviceName,
1283 LPDEVMODEW lpDevMode,
1284 HWND hwnd,
1285 DWORD dwflags,
1286 LPVOID lParam);
1287
1288 BOOL
1289 NTAPI
1290 NtUserCheckDesktopByThreadId(
1291 DWORD dwThreadId);
1292
1293 BOOL
1294 NTAPI
1295 NtUserCheckWindowThreadDesktop(
1296 HWND hwnd,
1297 DWORD dwThreadId,
1298 ULONG ReturnValue);
1299
1300 DWORD
1301 NTAPI
1302 NtUserCheckImeHotKey(
1303 DWORD dwUnknown1,
1304 DWORD dwUnknown2);
1305
1306 HWND NTAPI
1307 NtUserChildWindowFromPointEx(
1308 HWND Parent,
1309 LONG x,
1310 LONG y,
1311 UINT Flags);
1312
1313 BOOL
1314 NTAPI
1315 NtUserClipCursor(
1316 RECT *lpRect);
1317
1318 BOOL
1319 NTAPI
1320 NtUserCloseClipboard(VOID);
1321
1322 BOOL
1323 NTAPI
1324 NtUserCloseDesktop(
1325 HDESK hDesktop);
1326
1327 BOOL
1328 NTAPI
1329 NtUserCloseWindowStation(
1330 HWINSTA hWinSta);
1331
1332 DWORD
1333 NTAPI
1334 NtUserConsoleControl(
1335 DWORD dwUnknown1,
1336 DWORD dwUnknown2,
1337 DWORD dwUnknown3);
1338
1339 DWORD
1340 NTAPI
1341 NtUserConvertMemHandle(
1342 DWORD Unknown0,
1343 DWORD Unknown1);
1344
1345 int
1346 NTAPI
1347 NtUserCopyAcceleratorTable(
1348 HACCEL Table,
1349 LPACCEL Entries,
1350 int EntriesCount);
1351
1352 DWORD
1353 NTAPI
1354 NtUserCountClipboardFormats(VOID);
1355
1356 HACCEL
1357 NTAPI
1358 NtUserCreateAcceleratorTable(
1359 LPACCEL Entries,
1360 SIZE_T EntriesCount);
1361
1362 BOOL
1363 NTAPI
1364 NtUserCreateCaret(
1365 HWND hWnd,
1366 HBITMAP hBitmap,
1367 int nWidth,
1368 int nHeight);
1369
1370 HDESK
1371 NTAPI
1372 NtUserCreateDesktop(
1373 POBJECT_ATTRIBUTES poa,
1374 PUNICODE_STRING lpszDesktopDevice,
1375 LPDEVMODEW lpdmw,
1376 DWORD dwFlags,
1377 ACCESS_MASK dwDesiredAccess);
1378
1379 DWORD
1380 NTAPI
1381 NtUserCreateInputContext(
1382 DWORD dwUnknown1);
1383
1384 DWORD
1385 NTAPI
1386 NtUserCreateLocalMemHandle(
1387 DWORD Unknown0,
1388 DWORD Unknown1,
1389 DWORD Unknown2,
1390 DWORD Unknown3);
1391
1392 HWND
1393 NTAPI
1394 NtUserCreateWindowEx(
1395 DWORD dwExStyle,
1396 PUNICODE_STRING lpClassName,
1397 PUNICODE_STRING lpWindowName,
1398 DWORD dwStyle,
1399 LONG x,
1400 LONG y,
1401 LONG nWidth,
1402 LONG nHeight,
1403 HWND hWndParent,
1404 HMENU hMenu,
1405 HINSTANCE hInstance,
1406 LPVOID lpParam,
1407 DWORD dwShowMode,
1408 BOOL bUnicodeWindow,
1409 DWORD dwUnknown);
1410 #if 0
1411 HWND
1412 NTAPI
1413 NtUserCreateWindowEx(
1414 DWORD dwExStyle, // |= 0x80000000 == Ansi used to set WNDS_ANSICREATOR
1415 PLARGE_STRING plstrClassName,
1416 PLARGE_STRING plstrClsVesrion,
1417 PLARGE_STRING plstrWindowName,
1418 DWORD dwStyle,
1419 int x,
1420 int y,
1421 int nWidth,
1422 int nHeight,
1423 HWND hWndParent,
1424 HMENU hMenu,
1425 HINSTANCE hInstance,
1426 LPVOID lpParam,
1427 DWORD dwFlags,
1428 PVOID acbiBuffer);
1429 #endif
1430
1431 HWINSTA
1432 NTAPI
1433 NtUserCreateWindowStation(
1434 PUNICODE_STRING lpszWindowStationName,
1435 ACCESS_MASK dwDesiredAccess,
1436 LPSECURITY_ATTRIBUTES lpSecurity,
1437 DWORD Unknown3,
1438 DWORD Unknown4,
1439 DWORD Unknown5,
1440 DWORD Unknown6);
1441
1442 BOOL
1443 NTAPI
1444 NtUserDdeGetQualityOfService(
1445 IN HWND hwndClient,
1446 IN HWND hWndServer,
1447 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1448
1449 DWORD
1450 NTAPI
1451 NtUserDdeInitialize(
1452 DWORD Unknown0,
1453 DWORD Unknown1,
1454 DWORD Unknown2,
1455 DWORD Unknown3,
1456 DWORD Unknown4);
1457
1458 BOOL
1459 NTAPI
1460 NtUserDdeSetQualityOfService(
1461 IN HWND hwndClient,
1462 IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
1463 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1464
1465 HDWP NTAPI
1466 NtUserDeferWindowPos(
1467 HDWP WinPosInfo,
1468 HWND Wnd,
1469 HWND WndInsertAfter,
1470 int x,
1471 int y,
1472 int cx,
1473 int cy,
1474 UINT Flags);
1475
1476 BOOL NTAPI
1477 NtUserDefSetText(HWND WindowHandle, PLARGE_STRING WindowText);
1478
1479 BOOLEAN
1480 NTAPI
1481 NtUserDestroyAcceleratorTable(
1482 HACCEL Table);
1483
1484 BOOL
1485 NTAPI
1486 NtUserDestroyCursor(
1487 HANDLE Handle,
1488 DWORD Unknown);
1489
1490 DWORD
1491 NTAPI
1492 NtUserDestroyInputContext(
1493 DWORD dwUnknown1);
1494
1495 BOOLEAN NTAPI
1496 NtUserDestroyWindow(HWND Wnd);
1497
1498 DWORD
1499 NTAPI
1500 NtUserDisableThreadIme(
1501 DWORD dwUnknown1);
1502
1503 LRESULT
1504 NTAPI
1505 NtUserDispatchMessage(PMSG pMsg);
1506
1507 BOOL
1508 NTAPI
1509 NtUserDragDetect(
1510 HWND hWnd,
1511 POINT pt);
1512
1513 DWORD
1514 NTAPI
1515 NtUserDragObject(
1516 HWND hwnd1,
1517 HWND hwnd2,
1518 UINT u1,
1519 DWORD dw1,
1520 HCURSOR hc1);
1521
1522 BOOL
1523 NTAPI
1524 NtUserDrawAnimatedRects(
1525 HWND hwnd,
1526 INT idAni,
1527 RECT *lprcFrom,
1528 RECT *lprcTo);
1529
1530 BOOL
1531 NTAPI
1532 NtUserDrawCaption(
1533 HWND hWnd,
1534 HDC hDc,
1535 LPCRECT lpRc,
1536 UINT uFlags);
1537
1538 BOOL
1539 NTAPI
1540 NtUserDrawCaptionTemp(
1541 HWND hWnd,
1542 HDC hDC,
1543 LPCRECT lpRc,
1544 HFONT hFont,
1545 HICON hIcon,
1546 const PUNICODE_STRING str,
1547 UINT uFlags);
1548
1549 BOOL
1550 NTAPI
1551 NtUserDrawIconEx(
1552 HDC hdc,
1553 int xLeft,
1554 int yTop,
1555 HICON hIcon,
1556 int cxWidth,
1557 int cyWidth,
1558 UINT istepIfAniCur,
1559 HBRUSH hbrFlickerFreeDraw,
1560 UINT diFlags,
1561 DWORD Unknown0,
1562 DWORD Unknown1);
1563
1564 DWORD
1565 NTAPI
1566 NtUserEmptyClipboard(VOID);
1567
1568 BOOL
1569 NTAPI
1570 NtUserEnableScrollBar(
1571 HWND hWnd,
1572 UINT wSBflags,
1573 UINT wArrows);
1574
1575 DWORD
1576 NTAPI
1577 NtUserEndDeferWindowPosEx(
1578 DWORD Unknown0,
1579 DWORD Unknown1);
1580
1581 BOOL NTAPI
1582 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
1583
1584 BOOL
1585 NTAPI
1586 NtUserEnumDisplayDevices (
1587 PUNICODE_STRING lpDevice, /* device name */
1588 DWORD iDevNum, /* display device */
1589 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
1590 DWORD dwFlags ); /* reserved */
1591
1592 /*BOOL
1593 NTAPI
1594 NtUserEnumDisplayMonitors (
1595 HDC hdc,
1596 LPCRECT lprcClip,
1597 MONITORENUMPROC lpfnEnum,
1598 LPARAM dwData );*/
1599 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1600 INT
1601 NTAPI
1602 NtUserEnumDisplayMonitors(
1603 OPTIONAL IN HDC hDC,
1604 OPTIONAL IN LPCRECT pRect,
1605 OPTIONAL OUT HMONITOR *hMonitorList,
1606 OPTIONAL OUT LPRECT monitorRectList,
1607 OPTIONAL IN DWORD listSize );
1608
1609
1610 NTSTATUS
1611 NTAPI
1612 NtUserEnumDisplaySettings(
1613 PUNICODE_STRING lpszDeviceName,
1614 DWORD iModeNum,
1615 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
1616 DWORD dwFlags );
1617
1618 DWORD
1619 NTAPI
1620 NtUserEvent(
1621 DWORD Unknown0);
1622
1623 DWORD
1624 NTAPI
1625 NtUserExcludeUpdateRgn(
1626 HDC hDC,
1627 HWND hWnd);
1628
1629 BOOL
1630 NTAPI
1631 NtUserFillWindow(
1632 HWND hWndPaint,
1633 HWND hWndPaint1,
1634 HDC hDC,
1635 HBRUSH hBrush);
1636
1637 HICON
1638 NTAPI
1639 NtUserFindExistingCursorIcon(
1640 HMODULE hModule,
1641 HRSRC hRsrc,
1642 LONG cx,
1643 LONG cy);
1644
1645 HWND
1646 NTAPI
1647 NtUserFindWindowEx(
1648 HWND hwndParent,
1649 HWND hwndChildAfter,
1650 PUNICODE_STRING ucClassName,
1651 PUNICODE_STRING ucWindowName,
1652 DWORD dwUnknown
1653 );
1654
1655 BOOL
1656 NTAPI
1657 NtUserFlashWindowEx(
1658 IN PFLASHWINFO pfwi);
1659
1660 BOOL
1661 NTAPI
1662 NtUserGetAltTabInfo(
1663 HWND hwnd,
1664 INT iItem,
1665 PALTTABINFO pati,
1666 LPWSTR pszItemText,
1667 UINT cchItemText,
1668 BOOL Ansi);
1669
1670 HWND NTAPI
1671 NtUserGetAncestor(HWND hWnd, UINT Flags);
1672
1673 DWORD
1674 NTAPI
1675 NtUserGetAppImeLevel(
1676 DWORD dwUnknown1);
1677
1678 SHORT
1679 NTAPI
1680 NtUserGetAsyncKeyState(
1681 INT Key);
1682
1683 DWORD
1684 NTAPI
1685 NtUserGetAtomName(
1686 ATOM nAtom,
1687 LPWSTR lpBuffer);
1688
1689 UINT
1690 NTAPI
1691 NtUserGetCaretBlinkTime(VOID);
1692
1693 BOOL
1694 NTAPI
1695 NtUserGetCaretPos(
1696 LPPOINT lpPoint);
1697
1698 BOOL NTAPI
1699 NtUserGetClassInfo(HINSTANCE hInstance,
1700 PUNICODE_STRING ClassName,
1701 LPWNDCLASSEXW wcex,
1702 LPWSTR *ppszMenuName,
1703 BOOL Ansi);
1704
1705 INT
1706 NTAPI
1707 NtUserGetClassName(HWND hWnd,
1708 PUNICODE_STRING ClassName,
1709 BOOL Ansi);
1710 #if 0 // Real NtUserGetClassName
1711 INT
1712 NTAPI
1713 NtUserGetClassName(HWND hWnd,
1714 BOOL Real, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1715 PUNICODE_STRING ClassName);
1716 #endif
1717
1718 HANDLE
1719 NTAPI
1720 NtUserGetClipboardData(
1721 UINT uFormat,
1722 PVOID pBuffer);
1723
1724 INT
1725 NTAPI
1726 NtUserGetClipboardFormatName(
1727 UINT format,
1728 PUNICODE_STRING FormatName,
1729 INT cchMaxCount);
1730
1731 HWND
1732 NTAPI
1733 NtUserGetClipboardOwner(VOID);
1734
1735 DWORD
1736 NTAPI
1737 NtUserGetClipboardSequenceNumber(VOID);
1738
1739 HWND
1740 NTAPI
1741 NtUserGetClipboardViewer(VOID);
1742
1743 BOOL
1744 NTAPI
1745 NtUserGetClipCursor(
1746 RECT *lpRect);
1747
1748 BOOL
1749 NTAPI
1750 NtUserGetComboBoxInfo(
1751 HWND hWnd,
1752 PCOMBOBOXINFO pcbi);
1753
1754 HBRUSH
1755 NTAPI
1756 NtUserGetControlBrush(
1757 HWND hwnd,
1758 HDC hdc,
1759 UINT ctlType);
1760
1761 HBRUSH
1762 NTAPI
1763 NtUserGetControlColor(
1764 HWND hwndParent,
1765 HWND hwnd,
1766 HDC hdc,
1767 UINT CtlMsg);
1768
1769 ULONG_PTR
1770 NTAPI
1771 NtUserGetCPD(
1772 HWND hWnd,
1773 GETCPD Flags,
1774 ULONG_PTR Proc);
1775
1776 DWORD
1777 NTAPI
1778 NtUserGetCursorFrameInfo(
1779 DWORD Unknown0,
1780 DWORD Unknown1,
1781 DWORD Unknown2,
1782 DWORD Unknown3);
1783
1784 BOOL
1785 NTAPI
1786 NtUserGetCursorInfo(
1787 PCURSORINFO pci);
1788
1789 HDC
1790 NTAPI
1791 NtUserGetDC(
1792 HWND hWnd);
1793
1794 HDC
1795 NTAPI
1796 NtUserGetDCEx(
1797 HWND hWnd,
1798 HANDLE hRegion,
1799 ULONG Flags);
1800
1801 UINT
1802 NTAPI
1803 NtUserGetDoubleClickTime(VOID);
1804
1805 HWND
1806 NTAPI
1807 NtUserGetForegroundWindow(VOID);
1808
1809 DWORD
1810 NTAPI
1811 NtUserGetGuiResources(
1812 HANDLE hProcess,
1813 DWORD uiFlags);
1814
1815 BOOL
1816 NTAPI
1817 NtUserGetGUIThreadInfo(
1818 DWORD idThread,
1819 LPGUITHREADINFO lpgui);
1820
1821 BOOL
1822 NTAPI
1823 NtUserGetIconInfo(
1824 HANDLE hCurIcon,
1825 PICONINFO IconInfo,
1826 PUNICODE_STRING lpInstName,
1827 PUNICODE_STRING lpResName,
1828 LPDWORD pbpp,
1829 BOOL bInternal);
1830
1831 BOOL
1832 NTAPI
1833 NtUserGetIconSize(
1834 HANDLE Handle,
1835 UINT istepIfAniCur,
1836 LONG *plcx,
1837 LONG *plcy);
1838
1839 DWORD
1840 NTAPI
1841 NtUserGetImeHotKey(
1842 DWORD Unknown0,
1843 DWORD Unknown1,
1844 DWORD Unknown2,
1845 DWORD Unknown3);
1846
1847 DWORD
1848 NTAPI
1849 NtUserGetImeInfoEx(
1850 DWORD dwUnknown1,
1851 DWORD dwUnknown2);
1852
1853 DWORD
1854 NTAPI
1855 NtUserGetInternalWindowPos(
1856 HWND hwnd,
1857 LPRECT rectWnd,
1858 LPPOINT ptIcon);
1859
1860 HKL
1861 NTAPI
1862 NtUserGetKeyboardLayout(
1863 DWORD dwThreadid);
1864
1865 UINT
1866 NTAPI
1867 NtUserGetKeyboardLayoutList(
1868 INT nItems,
1869 HKL *pHklBuff);
1870
1871 BOOL
1872 NTAPI
1873 NtUserGetKeyboardLayoutName(
1874 LPWSTR lpszName);
1875
1876 DWORD
1877 NTAPI
1878 NtUserGetKeyboardState(
1879 LPBYTE Unknown0);
1880
1881 DWORD
1882 NTAPI
1883 NtUserGetKeyboardType(
1884 DWORD TypeFlag);
1885
1886 DWORD
1887 NTAPI
1888 NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
1889
1890 SHORT
1891 NTAPI
1892 NtUserGetKeyState(
1893 INT VirtKey);
1894
1895 BOOL
1896 NTAPI
1897 NtUserGetLayeredWindowAttributes(
1898 HWND hwnd,
1899 COLORREF *pcrKey,
1900 BYTE *pbAlpha,
1901 DWORD *pdwFlags);
1902
1903 DWORD
1904 NTAPI
1905 NtUserGetListBoxInfo(
1906 HWND hWnd);
1907
1908 typedef struct tagNTUSERGETMESSAGEINFO
1909 {
1910 MSG Msg;
1911 ULONG LParamSize;
1912 } NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO;
1913
1914 BOOL
1915 NTAPI
1916 NtUserGetMessage(
1917 PNTUSERGETMESSAGEINFO MsgInfo,
1918 HWND hWnd,
1919 UINT wMsgFilterMin,
1920 UINT wMsgFilterMax);
1921
1922 DWORD
1923 NTAPI
1924 NtUserGetMouseMovePointsEx(
1925 UINT cbSize,
1926 LPMOUSEMOVEPOINT lppt,
1927 LPMOUSEMOVEPOINT lpptBuf,
1928 int nBufPoints,
1929 DWORD resolution);
1930
1931 BOOL
1932 NTAPI
1933 NtUserGetObjectInformation(
1934 HANDLE hObject,
1935 DWORD nIndex,
1936 PVOID pvInformation,
1937 DWORD nLength,
1938 PDWORD nLengthNeeded);
1939
1940 HWND
1941 NTAPI
1942 NtUserGetOpenClipboardWindow(VOID);
1943
1944 INT
1945 NTAPI
1946 NtUserGetPriorityClipboardFormat(
1947 UINT *paFormatPriorityList,
1948 INT cFormats);
1949
1950 HWINSTA
1951 NTAPI
1952 NtUserGetProcessWindowStation(VOID);
1953
1954 DWORD
1955 NTAPI
1956 NtUserGetRawInputBuffer(
1957 PRAWINPUT pData,
1958 PUINT pcbSize,
1959 UINT cbSizeHeader);
1960
1961 DWORD
1962 NTAPI
1963 NtUserGetRawInputData(
1964 HRAWINPUT hRawInput,
1965 UINT uiCommand,
1966 LPVOID pData,
1967 PUINT pcbSize,
1968 UINT cbSizeHeader);
1969
1970 DWORD
1971 NTAPI
1972 NtUserGetRawInputDeviceInfo(
1973 HANDLE hDevice,
1974 UINT uiCommand,
1975 LPVOID pData,
1976 PUINT pcbSize);
1977
1978 DWORD
1979 NTAPI
1980 NtUserGetRawInputDeviceList(
1981 PRAWINPUTDEVICELIST pRawInputDeviceList,
1982 PUINT puiNumDevices,
1983 UINT cbSize);
1984
1985 DWORD
1986 NTAPI
1987 NtUserGetRegisteredRawInputDevices(
1988 PRAWINPUTDEVICE pRawInputDevices,
1989 PUINT puiNumDevices,
1990 UINT cbSize);
1991
1992 BOOL
1993 NTAPI
1994 NtUserGetScrollBarInfo(
1995 HWND hWnd,
1996 LONG idObject,
1997 PSCROLLBARINFO psbi);
1998
1999 HDESK
2000 NTAPI
2001 NtUserGetThreadDesktop(
2002 DWORD dwThreadId,
2003 DWORD Unknown1);
2004
2005
2006 enum ThreadStateRoutines
2007 {
2008 THREADSTATE_GETTHREADINFO,
2009 THREADSTATE_INSENDMESSAGE,
2010 THREADSTATE_FOCUSWINDOW,
2011 THREADSTATE_ACTIVEWINDOW,
2012 THREADSTATE_CAPTUREWINDOW,
2013 THREADSTATE_PROGMANWINDOW,
2014 THREADSTATE_TASKMANWINDOW,
2015 THREADSTATE_GETMESSAGETIME,
2016 THREADSTATE_GETINPUTSTATE
2017 };
2018
2019 DWORD_PTR
2020 NTAPI
2021 NtUserGetThreadState(
2022 DWORD Routine);
2023
2024 BOOLEAN
2025 NTAPI
2026 NtUserGetTitleBarInfo(
2027 HWND hwnd,
2028 PTITLEBARINFO pti);
2029
2030 BOOL NTAPI
2031 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
2032
2033 int
2034 NTAPI
2035 NtUserGetUpdateRgn(
2036 HWND hWnd,
2037 HRGN hRgn,
2038 BOOL bErase);
2039
2040 HDC
2041 NTAPI
2042 NtUserGetWindowDC(
2043 HWND hWnd);
2044
2045 BOOL
2046 NTAPI
2047 NtUserGetWindowPlacement(
2048 HWND hWnd,
2049 WINDOWPLACEMENT *lpwndpl);
2050
2051 PCLS
2052 NTAPI
2053 NtUserGetWOWClass(
2054 HINSTANCE hInstance,
2055 PUNICODE_STRING ClassName);
2056
2057 DWORD
2058 NTAPI
2059 NtUserHardErrorControl(
2060 DWORD dwUnknown1,
2061 DWORD dwUnknown2,
2062 DWORD dwUnknown3);
2063
2064 BOOL
2065 NTAPI
2066 NtUserImpersonateDdeClientWindow(
2067 HWND hWndClient,
2068 HWND hWndServer);
2069
2070 NTSTATUS
2071 NTAPI
2072 NtUserInitialize(
2073 DWORD dwWinVersion,
2074 HANDLE hPowerRequestEvent,
2075 HANDLE hMediaRequestEvent);
2076
2077 NTSTATUS
2078 NTAPI
2079 NtUserInitializeClientPfnArrays(
2080 PPFNCLIENT pfnClientA,
2081 PPFNCLIENT pfnClientW,
2082 PPFNCLIENTWORKER pfnClientWorker,
2083 HINSTANCE hmodUser);
2084
2085 DWORD
2086 NTAPI
2087 NtUserInitTask(
2088 DWORD Unknown0,
2089 DWORD Unknown1,
2090 DWORD Unknown2,
2091 DWORD Unknown3,
2092 DWORD Unknown4,
2093 DWORD Unknown5,
2094 DWORD Unknown6,
2095 DWORD Unknown7,
2096 DWORD Unknown8,
2097 DWORD Unknown9,
2098 DWORD Unknown10,
2099 DWORD Unknown11);
2100
2101 INT
2102 NTAPI
2103 NtUserInternalGetWindowText(
2104 HWND hWnd,
2105 LPWSTR lpString,
2106 INT nMaxCount);
2107
2108 BOOL
2109 NTAPI
2110 NtUserInvalidateRect(
2111 HWND hWnd,
2112 CONST RECT *lpRect,
2113 BOOL bErase);
2114
2115 BOOL
2116 NTAPI
2117 NtUserInvalidateRgn(
2118 HWND hWnd,
2119 HRGN hRgn,
2120 BOOL bErase);
2121
2122 BOOL
2123 NTAPI
2124 NtUserIsClipboardFormatAvailable(
2125 UINT format);
2126
2127 BOOL
2128 NTAPI
2129 NtUserKillTimer
2130 (
2131 HWND hWnd,
2132 UINT_PTR uIDEvent
2133 );
2134
2135 HKL
2136 NTAPI
2137 NtUserLoadKeyboardLayoutEx(
2138 IN HANDLE Handle,
2139 IN DWORD offTable,
2140 IN PUNICODE_STRING puszKeyboardName,
2141 IN HKL hKL,
2142 IN PUNICODE_STRING puszKLID,
2143 IN DWORD dwKLID,
2144 IN UINT Flags);
2145
2146 BOOL
2147 NTAPI
2148 NtUserLockWindowStation(
2149 HWINSTA hWindowStation);
2150
2151 BOOL
2152 NTAPI
2153 NtUserLockWindowUpdate(
2154 HWND hWnd);
2155
2156 BOOL
2157 NTAPI
2158 NtUserLockWorkStation(VOID);
2159
2160 UINT
2161 NTAPI
2162 NtUserMapVirtualKeyEx( UINT keyCode,
2163 UINT transType,
2164 DWORD keyboardId,
2165 HKL dwhkl );
2166 BOOL
2167 NTAPI
2168 NtUserMessageCall(
2169 HWND hWnd,
2170 UINT Msg,
2171 WPARAM wParam,
2172 LPARAM lParam,
2173 ULONG_PTR ResultInfo,
2174 DWORD dwType, // FNID_XX types
2175 BOOL Ansi);
2176
2177 DWORD
2178 NTAPI
2179 NtUserMinMaximize(
2180 HWND hWnd,
2181 UINT cmd, // Wine SW_ commands
2182 BOOL Hide);
2183
2184 DWORD
2185 NTAPI
2186 NtUserMNDragLeave(VOID);
2187
2188 DWORD
2189 NTAPI
2190 NtUserMNDragOver(
2191 DWORD Unknown0,
2192 DWORD Unknown1);
2193
2194 DWORD
2195 NTAPI
2196 NtUserModifyUserStartupInfoFlags(
2197 DWORD Unknown0,
2198 DWORD Unknown1);
2199
2200 BOOL
2201 NTAPI
2202 NtUserMoveWindow(
2203 HWND hWnd,
2204 int X,
2205 int Y,
2206 int nWidth,
2207 int nHeight,
2208 BOOL bRepaint
2209 );
2210
2211 DWORD
2212 NTAPI
2213 NtUserNotifyIMEStatus(
2214 DWORD Unknown0,
2215 DWORD Unknown1,
2216 DWORD Unknown2);
2217
2218 DWORD
2219 NTAPI
2220 NtUserNotifyProcessCreate(
2221 DWORD dwUnknown1,
2222 DWORD dwUnknown2,
2223 DWORD dwUnknown3,
2224 DWORD dwUnknown4);
2225
2226 VOID
2227 NTAPI
2228 NtUserNotifyWinEvent(
2229 DWORD Event,
2230 HWND hWnd,
2231 LONG idObject,
2232 LONG idChild);
2233
2234 BOOL
2235 NTAPI
2236 NtUserOpenClipboard(
2237 HWND hWnd,
2238 DWORD Unknown1);
2239
2240 HDESK
2241 NTAPI
2242 NtUserOpenDesktop(
2243 PUNICODE_STRING lpszDesktopName,
2244 DWORD dwFlags,
2245 ACCESS_MASK dwDesiredAccess);
2246
2247 HDESK
2248 NTAPI
2249 NtUserOpenInputDesktop(
2250 DWORD dwFlags,
2251 BOOL fInherit,
2252 ACCESS_MASK dwDesiredAccess);
2253
2254 HWINSTA
2255 NTAPI
2256 NtUserOpenWindowStation(
2257 PUNICODE_STRING lpszWindowStationName,
2258 ACCESS_MASK dwDesiredAccess);
2259
2260 BOOL
2261 NTAPI
2262 NtUserPaintDesktop(
2263 HDC hDC);
2264
2265 DWORD
2266 NTAPI
2267 NtUserPaintMenuBar(
2268 DWORD dwUnknown1,
2269 DWORD dwUnknown2,
2270 DWORD dwUnknown3,
2271 DWORD dwUnknown4,
2272 DWORD dwUnknown5,
2273 DWORD dwUnknown6);
2274
2275 BOOL
2276 NTAPI
2277 NtUserPeekMessage(
2278 PNTUSERGETMESSAGEINFO MsgInfo,
2279 HWND hWnd,
2280 UINT wMsgFilterMin,
2281 UINT wMsgFilterMax,
2282 UINT wRemoveMsg);
2283
2284 BOOL
2285 NTAPI
2286 NtUserPostMessage(
2287 HWND hWnd,
2288 UINT Msg,
2289 WPARAM wParam,
2290 LPARAM lParam);
2291
2292 BOOL
2293 NTAPI
2294 NtUserPostThreadMessage(
2295 DWORD idThread,
2296 UINT Msg,
2297 WPARAM wParam,
2298 LPARAM lParam);
2299
2300 BOOL
2301 NTAPI
2302 NtUserPrintWindow(
2303 HWND hwnd,
2304 HDC hdcBlt,
2305 UINT nFlags);
2306
2307 NTSTATUS
2308 NTAPI
2309 NtUserProcessConnect(
2310 IN HANDLE Process,
2311 OUT PUSERCONNECT pUserConnect,
2312 IN DWORD dwSize); // sizeof(USERCONNECT)
2313
2314 DWORD
2315 NTAPI
2316 NtUserQueryInformationThread(
2317 DWORD dwUnknown1,
2318 DWORD dwUnknown2,
2319 DWORD dwUnknown3,
2320 DWORD dwUnknown4,
2321 DWORD dwUnknown5);
2322
2323 DWORD
2324 NTAPI
2325 NtUserQueryInputContext(
2326 DWORD dwUnknown1,
2327 DWORD dwUnknown2);
2328
2329 DWORD
2330 NTAPI
2331 NtUserQuerySendMessage(
2332 DWORD Unknown0);
2333
2334 DWORD
2335 NTAPI
2336 NtUserQueryUserCounters(
2337 DWORD Unknown0,
2338 DWORD Unknown1,
2339 DWORD Unknown2,
2340 DWORD Unknown3,
2341 DWORD Unknown4);
2342
2343 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2344 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2345 #define QUERY_WINDOW_ACTIVE 0x02
2346 #define QUERY_WINDOW_FOCUS 0x03
2347 #define QUERY_WINDOW_ISHUNG 0x04
2348 #define QUERY_WINDOW_REAL_ID 0x05
2349 DWORD
2350 NTAPI
2351 NtUserQueryWindow(
2352 HWND hWnd,
2353 DWORD Index);
2354
2355 DWORD
2356 NTAPI
2357 NtUserRealInternalGetMessage(
2358 DWORD dwUnknown1,
2359 DWORD dwUnknown2,
2360 DWORD dwUnknown3,
2361 DWORD dwUnknown4,
2362 DWORD dwUnknown5,
2363 DWORD dwUnknown6);
2364
2365 DWORD
2366 NTAPI
2367 NtUserRealChildWindowFromPoint(
2368 DWORD Unknown0,
2369 DWORD Unknown1,
2370 DWORD Unknown2);
2371
2372 DWORD
2373 NTAPI
2374 NtUserRealWaitMessageEx(
2375 DWORD dwUnknown1,
2376 DWORD dwUnknown2);
2377
2378 BOOL
2379 NTAPI
2380 NtUserRedrawWindow
2381 (
2382 HWND hWnd,
2383 CONST RECT *lprcUpdate,
2384 HRGN hrgnUpdate,
2385 UINT flags
2386 );
2387
2388 RTL_ATOM
2389 NTAPI
2390 NtUserRegisterClassExWOW(
2391 WNDCLASSEXW* lpwcx,
2392 PUNICODE_STRING pustrClassName,
2393 PUNICODE_STRING pustrCNVersion,
2394 PCLSMENUNAME pClassMenuName,
2395 DWORD fnID,
2396 DWORD Flags,
2397 LPDWORD pWow);
2398
2399 BOOL
2400 NTAPI
2401 NtUserRegisterRawInputDevices(
2402 IN PCRAWINPUTDEVICE pRawInputDevices,
2403 IN UINT uiNumDevices,
2404 IN UINT cbSize);
2405
2406 BOOL
2407 NTAPI
2408 NtUserRegisterUserApiHook(
2409 PUNICODE_STRING m_dllname1,
2410 PUNICODE_STRING m_funname1,
2411 DWORD dwUnknown3,
2412 DWORD dwUnknown4);
2413
2414 BOOL
2415 NTAPI
2416 NtUserRegisterHotKey(HWND hWnd,
2417 int id,
2418 UINT fsModifiers,
2419 UINT vk);
2420
2421 DWORD
2422 NTAPI
2423 NtUserRegisterTasklist(
2424 DWORD Unknown0);
2425
2426 UINT NTAPI
2427 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
2428
2429 DWORD
2430 NTAPI
2431 NtUserRemoteConnect(
2432 DWORD dwUnknown1,
2433 DWORD dwUnknown2,
2434 DWORD dwUnknown3);
2435
2436 DWORD
2437 NTAPI
2438 NtUserRemoteRedrawRectangle(
2439 DWORD dwUnknown1,
2440 DWORD dwUnknown2,
2441 DWORD dwUnknown3,
2442 DWORD dwUnknown4);
2443
2444 DWORD
2445 NTAPI
2446 NtUserRemoteRedrawScreen(VOID);
2447
2448 DWORD
2449 NTAPI
2450 NtUserRemoteStopScreenUpdates(VOID);
2451
2452 HANDLE NTAPI
2453 NtUserRemoveProp(HWND hWnd, ATOM Atom);
2454
2455 DWORD
2456 NTAPI
2457 NtUserResolveDesktop(
2458 DWORD dwUnknown1,
2459 DWORD dwUnknown2,
2460 DWORD dwUnknown3,
2461 DWORD dwUnknown4);
2462
2463 DWORD
2464 NTAPI
2465 NtUserResolveDesktopForWOW(
2466 DWORD Unknown0);
2467
2468 BOOL
2469 NTAPI
2470 NtUserSBGetParms(
2471 HWND hwnd,
2472 int fnBar,
2473 PSBDATA pSBData,
2474 LPSCROLLINFO lpsi);
2475
2476 BOOL
2477 NTAPI
2478 NtUserScrollDC(
2479 HDC hDC,
2480 int dx,
2481 int dy,
2482 CONST RECT *lprcScroll,
2483 CONST RECT *lprcClip ,
2484 HRGN hrgnUpdate,
2485 LPRECT lprcUpdate);
2486
2487 DWORD NTAPI
2488 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
2489 const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
2490
2491 UINT
2492 NTAPI
2493 NtUserSendInput(
2494 UINT nInputs,
2495 LPINPUT pInput,
2496 INT cbSize);
2497
2498 HWND NTAPI
2499 NtUserSetActiveWindow(HWND Wnd);
2500
2501 DWORD
2502 NTAPI
2503 NtUserSetAppImeLevel(
2504 DWORD dwUnknown1,
2505 DWORD dwUnknown2);
2506
2507 HWND NTAPI
2508 NtUserSetCapture(HWND Wnd);
2509
2510 ULONG_PTR NTAPI
2511 NtUserSetClassLong(
2512 HWND hWnd,
2513 INT Offset,
2514 ULONG_PTR dwNewLong,
2515 BOOL Ansi );
2516
2517 WORD
2518 NTAPI
2519 NtUserSetClassWord(
2520 HWND hWnd,
2521 INT nIndex,
2522 WORD wNewWord);
2523
2524 HANDLE
2525 NTAPI
2526 NtUserSetClipboardData(
2527 UINT uFormat,
2528 HANDLE hMem,
2529 DWORD Unknown2);
2530
2531 HWND
2532 NTAPI
2533 NtUserSetClipboardViewer(
2534 HWND hWndNewViewer);
2535
2536 HPALETTE
2537 NTAPI
2538 NtUserSelectPalette(
2539 HDC hDC,
2540 HPALETTE hpal,
2541 BOOL ForceBackground
2542 );
2543
2544 DWORD
2545 NTAPI
2546 NtUserSetConsoleReserveKeys(
2547 DWORD Unknown0,
2548 DWORD Unknown1);
2549
2550 HCURSOR
2551 NTAPI
2552 NtUserSetCursor(
2553 HCURSOR hCursor);
2554
2555 BOOL
2556 NTAPI
2557 NtUserSetCursorContents(
2558 HANDLE Handle,
2559 PICONINFO IconInfo);
2560
2561 BOOL
2562 NTAPI
2563 NtUserSetCursorIconData(
2564 HANDLE Handle,
2565 PBOOL fIcon,
2566 POINT *Hotspot,
2567 HMODULE hModule,
2568 HRSRC hRsrc,
2569 HRSRC hGroupRsrc);
2570
2571 DWORD
2572 NTAPI
2573 NtUserSetDbgTag(
2574 DWORD Unknown0,
2575 DWORD Unknown1);
2576
2577 HWND
2578 NTAPI
2579 NtUserSetFocus(
2580 HWND hWnd);
2581
2582 DWORD
2583 NTAPI
2584 NtUserSetImeHotKey(
2585 DWORD Unknown0,
2586 DWORD Unknown1,
2587 DWORD Unknown2,
2588 DWORD Unknown3,
2589 DWORD Unknown4);
2590
2591 DWORD
2592 NTAPI
2593 NtUserSetImeInfoEx(
2594 DWORD dwUnknown1);
2595
2596 DWORD
2597 NTAPI
2598 NtUserSetImeOwnerWindow(
2599 DWORD Unknown0,
2600 DWORD Unknown1);
2601
2602 DWORD
2603 NTAPI
2604 NtUserSetInformationProcess(
2605 DWORD dwUnknown1,
2606 DWORD dwUnknown2,
2607 DWORD dwUnknown3,
2608 DWORD dwUnknown4);
2609
2610 DWORD
2611 NTAPI
2612 NtUserSetInformationThread(
2613 DWORD dwUnknown1,
2614 DWORD dwUnknown2,
2615 DWORD dwUnknown3,
2616 DWORD dwUnknown4);
2617
2618 DWORD
2619 NTAPI
2620 NtUserSetInternalWindowPos(
2621 HWND hwnd,
2622 UINT showCmd,
2623 LPRECT rect,
2624 LPPOINT pt);
2625
2626 BOOL
2627 NTAPI
2628 NtUserSetKeyboardState(
2629 LPBYTE lpKeyState);
2630
2631 BOOL
2632 NTAPI
2633 NtUserSetLayeredWindowAttributes(
2634 HWND hwnd,
2635 COLORREF crKey,
2636 BYTE bAlpha,
2637 DWORD dwFlags);
2638
2639 BOOL
2640 NTAPI
2641 NtUserSetLogonNotifyWindow(
2642 HWND hWnd);
2643
2644 BOOL
2645 NTAPI
2646 NtUserSetObjectInformation(
2647 HANDLE hObject,
2648 DWORD nIndex,
2649 PVOID pvInformation,
2650 DWORD nLength);
2651
2652 HWND
2653 NTAPI
2654 NtUserSetParent(
2655 HWND hWndChild,
2656 HWND hWndNewParent);
2657
2658 BOOL
2659 NTAPI
2660 NtUserSetProcessWindowStation(
2661 HWINSTA hWindowStation);
2662
2663 BOOL NTAPI
2664 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2665
2666 DWORD
2667 NTAPI
2668 NtUserSetRipFlags(
2669 DWORD Unknown0,
2670 DWORD Unknown1);
2671
2672 DWORD
2673 NTAPI
2674 NtUserSetScrollInfo(
2675 HWND hwnd,
2676 int fnBar,
2677 LPCSCROLLINFO lpsi,
2678 BOOL bRedraw);
2679
2680 BOOL
2681 NTAPI
2682 NtUserSetShellWindowEx(
2683 HWND hwndShell,
2684 HWND hwndShellListView);
2685
2686 BOOL
2687 NTAPI
2688 NtUserSetSysColors(
2689 int cElements,
2690 IN CONST INT *lpaElements,
2691 IN CONST COLORREF *lpaRgbValues,
2692 FLONG Flags);
2693
2694 BOOL
2695 NTAPI
2696 NtUserSetSystemCursor(
2697 HCURSOR hcur,
2698 DWORD id);
2699
2700 BOOL
2701 NTAPI
2702 NtUserSetThreadDesktop(
2703 HDESK hDesktop);
2704
2705 DWORD
2706 NTAPI
2707 NtUserSetThreadState(
2708 DWORD Unknown0,
2709 DWORD Unknown1);
2710
2711 UINT_PTR
2712 NTAPI
2713 NtUserSetSystemTimer
2714 (
2715 HWND hWnd,
2716 UINT_PTR nIDEvent,
2717 UINT uElapse,
2718 TIMERPROC lpTimerFunc
2719 );
2720
2721 DWORD
2722 NTAPI
2723 NtUserSetThreadLayoutHandles(
2724 DWORD dwUnknown1,
2725 DWORD dwUnknown2);
2726
2727 UINT_PTR
2728 NTAPI
2729 NtUserSetTimer
2730 (
2731 HWND hWnd,
2732 UINT_PTR nIDEvent,
2733 UINT uElapse,
2734 TIMERPROC lpTimerFunc
2735 );
2736
2737 BOOL
2738 NTAPI
2739 NtUserSetWindowFNID(
2740 HWND hWnd,
2741 WORD fnID);
2742
2743 LONG
2744 NTAPI
2745 NtUserSetWindowLong(
2746 HWND hWnd,
2747 DWORD Index,
2748 LONG NewValue,
2749 BOOL Ansi);
2750
2751 BOOL
2752 NTAPI
2753 NtUserSetWindowPlacement(
2754 HWND hWnd,
2755 WINDOWPLACEMENT *lpwndpl);
2756
2757 BOOL
2758 NTAPI NtUserSetWindowPos(
2759 HWND hWnd,
2760 HWND hWndInsertAfter,
2761 int X,
2762 int Y,
2763 int cx,
2764 int cy,
2765 UINT uFlags
2766 );
2767
2768 INT
2769 NTAPI
2770 NtUserSetWindowRgn(
2771 HWND hWnd,
2772 HRGN hRgn,
2773 BOOL bRedraw);
2774
2775 HHOOK
2776 NTAPI
2777 NtUserSetWindowsHookAW(
2778 int idHook,
2779 HOOKPROC lpfn,
2780 BOOL Ansi);
2781
2782 HHOOK
2783 NTAPI
2784 NtUserSetWindowsHookEx(
2785 HINSTANCE Mod,
2786 PUNICODE_STRING ModuleName,
2787 DWORD ThreadId,
2788 int HookId,
2789 HOOKPROC HookProc,
2790 BOOL Ansi);
2791
2792 DWORD
2793 NTAPI
2794 NtUserSetWindowStationUser(
2795 DWORD Unknown0,
2796 DWORD Unknown1,
2797 DWORD Unknown2,
2798 DWORD Unknown3);
2799
2800 WORD NTAPI
2801 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
2802
2803 HWINEVENTHOOK
2804 NTAPI
2805 NtUserSetWinEventHook(
2806 UINT eventMin,
2807 UINT eventMax,
2808 HMODULE hmodWinEventProc,
2809 PUNICODE_STRING puString,
2810 WINEVENTPROC lpfnWinEventProc,
2811 DWORD idProcess,
2812 DWORD idThread,
2813 UINT dwflags);
2814
2815 BOOL
2816 NTAPI
2817 NtUserShowCaret(
2818 HWND hWnd);
2819
2820 BOOL
2821 NTAPI
2822 NtUserHideCaret(
2823 HWND hWnd);
2824
2825 DWORD
2826 NTAPI
2827 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
2828
2829 BOOL
2830 NTAPI
2831 NtUserShowWindow(
2832 HWND hWnd,
2833 LONG nCmdShow);
2834
2835 BOOL
2836 NTAPI
2837 NtUserShowWindowAsync(
2838 HWND hWnd,
2839 LONG nCmdShow);
2840
2841 BOOL
2842 NTAPI
2843 NtUserSoundSentry(VOID);
2844
2845 BOOL
2846 NTAPI
2847 NtUserSwitchDesktop(
2848 HDESK hDesktop);
2849
2850 BOOL
2851 NTAPI
2852 NtUserSystemParametersInfo(
2853 UINT uiAction,
2854 UINT uiParam,
2855 PVOID pvParam,
2856 UINT fWinIni);
2857
2858 DWORD
2859 NTAPI
2860 NtUserTestForInteractiveUser(
2861 DWORD dwUnknown1);
2862
2863 INT
2864 NTAPI
2865 NtUserToUnicodeEx(
2866 UINT wVirtKey,
2867 UINT wScanCode,
2868 PBYTE lpKeyState,
2869 LPWSTR pwszBuff,
2870 int cchBuff,
2871 UINT wFlags,
2872 HKL dwhkl );
2873
2874 BOOL
2875 NTAPI
2876 NtUserTrackMouseEvent(
2877 LPTRACKMOUSEEVENT lpEventTrack);
2878
2879 int
2880 NTAPI
2881 NtUserTranslateAccelerator(
2882 HWND Window,
2883 HACCEL Table,
2884 LPMSG Message);
2885
2886 BOOL
2887 NTAPI
2888 NtUserTranslateMessage(
2889 LPMSG lpMsg,
2890 UINT flags );
2891
2892 BOOL
2893 NTAPI
2894 NtUserUnhookWindowsHookEx(
2895 HHOOK Hook);
2896
2897 BOOL
2898 NTAPI
2899 NtUserUnhookWinEvent(
2900 HWINEVENTHOOK hWinEventHook);
2901
2902 BOOL
2903 NTAPI
2904 NtUserUnloadKeyboardLayout(
2905 HKL hKl);
2906
2907 BOOL
2908 NTAPI
2909 NtUserUnlockWindowStation(
2910 HWINSTA hWindowStation);
2911
2912 BOOL
2913 NTAPI
2914 NtUserUnregisterClass(
2915 PUNICODE_STRING ClassNameOrAtom,
2916 HINSTANCE hInstance,
2917 PCLSMENUNAME pClassMenuName);
2918
2919 BOOL
2920 NTAPI
2921 NtUserUnregisterHotKey(HWND hWnd,
2922 int id);
2923
2924 BOOL
2925 NTAPI
2926 NtUserUnregisterUserApiHook(VOID);
2927
2928 DWORD
2929 NTAPI
2930 NtUserUpdateInputContext(
2931 DWORD Unknown0,
2932 DWORD Unknown1,
2933 DWORD Unknown2);
2934
2935 DWORD
2936 NTAPI
2937 NtUserUpdateInstance(
2938 DWORD Unknown0,
2939 DWORD Unknown1,
2940 DWORD Unknown2);
2941
2942 BOOL
2943 NTAPI
2944 NtUserUpdateLayeredWindow(
2945 HWND hwnd,
2946 HDC hdcDst,
2947 POINT *pptDst,
2948 SIZE *psize,
2949 HDC hdcSrc,
2950 POINT *pptSrc,
2951 COLORREF crKey,
2952 BLENDFUNCTION *pblend,
2953 DWORD dwFlags,
2954 RECT *prcDirty);
2955
2956 BOOL
2957 NTAPI
2958 NtUserUpdatePerUserSystemParameters(
2959 DWORD dwReserved,
2960 BOOL bEnable);
2961
2962 BOOL
2963 NTAPI
2964 NtUserUserHandleGrantAccess(
2965 IN HANDLE hUserHandle,
2966 IN HANDLE hJob,
2967 IN BOOL bGrant);
2968
2969 BOOL
2970 NTAPI
2971 NtUserValidateHandleSecure(
2972 HANDLE hHdl,
2973 BOOL Restricted);
2974
2975 BOOL
2976 NTAPI
2977 NtUserValidateRect(
2978 HWND hWnd,
2979 CONST RECT *lpRect);
2980
2981 BOOL
2982 APIENTRY
2983 NtUserValidateTimerCallback(
2984 HWND hWnd,
2985 WPARAM wParam,
2986 LPARAM lParam);
2987
2988 DWORD
2989 NTAPI
2990 NtUserVkKeyScanEx(
2991 WCHAR wChar,
2992 HKL KeyboardLayout,
2993 BOOL bUsehHK);
2994
2995 DWORD
2996 NTAPI
2997 NtUserWaitForInputIdle(
2998 IN HANDLE hProcess,
2999 IN DWORD dwMilliseconds,
3000 IN BOOL Unknown2); // Always FALSE
3001
3002 DWORD
3003 NTAPI
3004 NtUserWaitForMsgAndEvent(
3005 DWORD Unknown0);
3006
3007 BOOL
3008 NTAPI
3009 NtUserWaitMessage(VOID);
3010
3011 DWORD
3012 NTAPI
3013 NtUserWin32PoolAllocationStats(
3014 DWORD Unknown0,
3015 DWORD Unknown1,
3016 DWORD Unknown2,
3017 DWORD Unknown3,
3018 DWORD Unknown4,
3019 DWORD Unknown5);
3020
3021 HWND
3022 NTAPI
3023 NtUserWindowFromPhysicalPoint(
3024 POINT Point);
3025
3026 HWND
3027 NTAPI
3028 NtUserWindowFromPoint(
3029 LONG X,
3030 LONG Y);
3031
3032 DWORD
3033 NTAPI
3034 NtUserYieldTask(VOID);
3035
3036 /* lParam of DDE messages */
3037 typedef struct tagKMDDEEXECUTEDATA
3038 {
3039 HWND Sender;
3040 HGLOBAL ClientMem;
3041 /* BYTE Data[DataSize] */
3042 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
3043
3044 typedef struct tagKMDDELPARAM
3045 {
3046 BOOL Packed;
3047 union
3048 {
3049 struct
3050 {
3051 UINT uiLo;
3052 UINT uiHi;
3053 } Packed;
3054 LPARAM Unpacked;
3055 } Value;
3056 } KMDDELPARAM, *PKMDDELPARAM;
3057
3058
3059
3060
3061
3062 /* NtUserBad
3063 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3064 */
3065
3066 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3067 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3068 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
3069 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3070 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3071 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3072 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3073 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3074 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3075 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3076 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3077 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3078 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3079 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3080 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3081 #define MSQ_STATE_CAPTURE 0x1
3082 #define MSQ_STATE_ACTIVE 0x2
3083 #define MSQ_STATE_FOCUS 0x3
3084 #define MSQ_STATE_MENUOWNER 0x4
3085 #define MSQ_STATE_MOVESIZE 0x5
3086 #define MSQ_STATE_CARET 0x6
3087 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3088 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3089 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3090
3091 DWORD
3092 NTAPI
3093 NtUserBuildMenuItemList(
3094 HMENU hMenu,
3095 PVOID Buffer,
3096 ULONG nBufSize,
3097 DWORD Reserved);
3098
3099 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
3100 HANDLE
3101 NTAPI
3102 NtUserCreateCursorIconHandle(
3103 PICONINFO IconInfo,
3104 BOOL Indirect);
3105
3106
3107 /* Should be done in usermode and use NtUserGetCPD. */
3108 ULONG_PTR
3109 NTAPI
3110 NtUserGetClassLong(HWND hWnd, INT Offset, BOOL Ansi);
3111
3112 UINT
3113 NTAPI
3114 NtUserGetMenuDefaultItem(
3115 HMENU hMenu,
3116 UINT fByPos,
3117 UINT gmdiFlags);
3118
3119 BOOL
3120 NTAPI
3121 NtUserGetLastInputInfo(
3122 PLASTINPUTINFO plii);
3123
3124 BOOL
3125 NTAPI
3126 NtUserGetMinMaxInfo(
3127 HWND hwnd,
3128 MINMAXINFO *MinMaxInfo,
3129 BOOL SendMessage);
3130
3131 BOOL
3132 NTAPI
3133 NtUserGetMonitorInfo(
3134 IN HMONITOR hMonitor,
3135 OUT LPMONITORINFO pMonitorInfo);
3136
3137 /* Should be done in usermode */
3138
3139 /* (other FocusedItem values give the position of the focused item) */
3140 #define NO_SELECTED_ITEM 0xffff
3141
3142 typedef struct tagROSMENUINFO
3143 {
3144 /* ----------- MENUINFO ----------- */
3145 DWORD cbSize;
3146 DWORD fMask;
3147 DWORD dwStyle;
3148 UINT cyMax;
3149 HBRUSH hbrBack;
3150 DWORD dwContextHelpID;
3151 ULONG_PTR dwMenuData;
3152 /* ----------- Extra ----------- */
3153 HMENU Self; /* Handle of this menu */
3154 WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3155 UINT FocusedItem; /* Currently focused item */
3156 UINT MenuItemCount; /* Number of items in the menu */
3157 HWND Wnd; /* Window containing the menu */
3158 WORD Width; /* Width of the whole menu */
3159 WORD Height; /* Height of the whole menu */
3160 HWND WndOwner; /* window receiving the messages for ownerdraw */
3161 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
3162 SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3163 } ROSMENUINFO, *PROSMENUINFO;
3164
3165 BOOL
3166 NTAPI
3167 NtUserMenuInfo(
3168 HMENU hmenu,
3169 PROSMENUINFO lpmi,
3170 BOOL fsog
3171 );
3172
3173
3174
3175 typedef struct tagROSMENUITEMINFO
3176 {
3177 /* ----------- MENUITEMINFOW ----------- */
3178 UINT cbSize;
3179 UINT fMask;
3180 UINT fType;
3181 UINT fState;
3182 UINT wID;
3183 HMENU hSubMenu;
3184 HBITMAP hbmpChecked;
3185 HBITMAP hbmpUnchecked;
3186 DWORD dwItemData;
3187 LPWSTR dwTypeData;
3188 UINT cch;
3189 HBITMAP hbmpItem;
3190 /* ----------- Extra ----------- */
3191 RECT Rect; /* Item area (relative to menu window) */
3192 UINT XTab; /* X position of text after Tab */
3193 LPWSTR Text; /* Copy of the text pointer in MenuItem->Text */
3194 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
3195
3196 BOOL
3197 NTAPI
3198 NtUserMenuItemInfo(
3199 HMENU hMenu,
3200 UINT uItem,
3201 BOOL fByPosition,
3202 PROSMENUITEMINFO lpmii,
3203 BOOL fsog
3204 );
3205
3206 HMONITOR
3207 NTAPI
3208 NtUserMonitorFromPoint(
3209 IN POINT point,
3210 IN DWORD dwFlags);
3211
3212 HMONITOR
3213 NTAPI
3214 NtUserMonitorFromRect(
3215 IN LPCRECT pRect,
3216 IN DWORD dwFlags);
3217
3218 HMONITOR
3219 NTAPI
3220 NtUserMonitorFromWindow(
3221 IN HWND hWnd,
3222 IN DWORD dwFlags);
3223
3224
3225 typedef struct tagNTUSERSENDMESSAGEINFO
3226 {
3227 BOOL HandledByKernel;
3228 BOOL Ansi;
3229 WNDPROC Proc;
3230 } NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO;
3231
3232 /* use NtUserMessageCall */
3233 LRESULT NTAPI
3234 NtUserSendMessage(HWND hWnd,
3235 UINT Msg,
3236 WPARAM wParam,
3237 LPARAM lParam,
3238 PNTUSERSENDMESSAGEINFO Info);
3239
3240 /* use NtUserMessageCall */
3241 LRESULT NTAPI
3242 NtUserSendMessageTimeout(HWND hWnd,
3243 UINT Msg,
3244 WPARAM wParam,
3245 LPARAM lParam,
3246 UINT uFlags,
3247 UINT uTimeout,
3248 ULONG_PTR *uResult,
3249 PNTUSERSENDMESSAGEINFO Info);
3250
3251 typedef struct _SETSCROLLBARINFO
3252 {
3253 int nTrackPos;
3254 int reserved;
3255 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
3256 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3257
3258 BOOL
3259 NTAPI
3260 NtUserSetScrollBarInfo(
3261 HWND hwnd,
3262 LONG idObject,
3263 SETSCROLLBARINFO *info);
3264
3265
3266
3267 #endif /* __WIN32K_NTUSER_H */
3268
3269 /* EOF */