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