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