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