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