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