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