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