[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 };
2109
2110 DWORD_PTR
2111 NTAPI
2112 NtUserGetThreadState(
2113 DWORD Routine);
2114
2115 BOOLEAN
2116 NTAPI
2117 NtUserGetTitleBarInfo(
2118 HWND hwnd,
2119 PTITLEBARINFO pti);
2120
2121 BOOL NTAPI
2122 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
2123
2124 int
2125 NTAPI
2126 NtUserGetUpdateRgn(
2127 HWND hWnd,
2128 HRGN hRgn,
2129 BOOL bErase);
2130
2131 HDC
2132 NTAPI
2133 NtUserGetWindowDC(
2134 HWND hWnd);
2135
2136 BOOL
2137 NTAPI
2138 NtUserGetWindowPlacement(
2139 HWND hWnd,
2140 WINDOWPLACEMENT *lpwndpl);
2141
2142 PCLS
2143 NTAPI
2144 NtUserGetWOWClass(
2145 HINSTANCE hInstance,
2146 PUNICODE_STRING ClassName);
2147
2148 DWORD
2149 NTAPI
2150 NtUserHardErrorControl(
2151 DWORD dwUnknown1,
2152 DWORD dwUnknown2,
2153 DWORD dwUnknown3);
2154
2155 BOOL
2156 NTAPI
2157 NtUserImpersonateDdeClientWindow(
2158 HWND hWndClient,
2159 HWND hWndServer);
2160
2161 NTSTATUS
2162 NTAPI
2163 NtUserInitialize(
2164 DWORD dwWinVersion,
2165 HANDLE hPowerRequestEvent,
2166 HANDLE hMediaRequestEvent);
2167
2168 NTSTATUS
2169 NTAPI
2170 NtUserInitializeClientPfnArrays(
2171 PPFNCLIENT pfnClientA,
2172 PPFNCLIENT pfnClientW,
2173 PPFNCLIENTWORKER pfnClientWorker,
2174 HINSTANCE hmodUser);
2175
2176 DWORD
2177 NTAPI
2178 NtUserInitTask(
2179 DWORD Unknown0,
2180 DWORD Unknown1,
2181 DWORD Unknown2,
2182 DWORD Unknown3,
2183 DWORD Unknown4,
2184 DWORD Unknown5,
2185 DWORD Unknown6,
2186 DWORD Unknown7,
2187 DWORD Unknown8,
2188 DWORD Unknown9,
2189 DWORD Unknown10,
2190 DWORD Unknown11);
2191
2192 INT
2193 NTAPI
2194 NtUserInternalGetWindowText(
2195 HWND hWnd,
2196 LPWSTR lpString,
2197 INT nMaxCount);
2198
2199 BOOL
2200 NTAPI
2201 NtUserInvalidateRect(
2202 HWND hWnd,
2203 CONST RECT *lpRect,
2204 BOOL bErase);
2205
2206 BOOL
2207 NTAPI
2208 NtUserInvalidateRgn(
2209 HWND hWnd,
2210 HRGN hRgn,
2211 BOOL bErase);
2212
2213 BOOL
2214 NTAPI
2215 NtUserIsClipboardFormatAvailable(
2216 UINT format);
2217
2218 BOOL
2219 NTAPI
2220 NtUserKillTimer
2221 (
2222 HWND hWnd,
2223 UINT_PTR uIDEvent
2224 );
2225
2226 HKL
2227 NTAPI
2228 NtUserLoadKeyboardLayoutEx(
2229 IN HANDLE Handle,
2230 IN DWORD offTable,
2231 IN PUNICODE_STRING puszKeyboardName,
2232 IN HKL hKL,
2233 IN PUNICODE_STRING puszKLID,
2234 IN DWORD dwKLID,
2235 IN UINT Flags);
2236
2237 BOOL
2238 NTAPI
2239 NtUserLockWindowStation(
2240 HWINSTA hWindowStation);
2241
2242 BOOL
2243 NTAPI
2244 NtUserLockWindowUpdate(
2245 HWND hWnd);
2246
2247 BOOL
2248 NTAPI
2249 NtUserLockWorkStation(VOID);
2250
2251 UINT
2252 NTAPI
2253 NtUserMapVirtualKeyEx( UINT keyCode,
2254 UINT transType,
2255 DWORD keyboardId,
2256 HKL dwhkl );
2257 BOOL
2258 NTAPI
2259 NtUserMessageCall(
2260 HWND hWnd,
2261 UINT Msg,
2262 WPARAM wParam,
2263 LPARAM lParam,
2264 ULONG_PTR ResultInfo,
2265 DWORD dwType, // FNID_XX types
2266 BOOL Ansi);
2267
2268 DWORD
2269 NTAPI
2270 NtUserMinMaximize(
2271 HWND hWnd,
2272 UINT cmd, // Wine SW_ commands
2273 BOOL Hide);
2274
2275 DWORD
2276 NTAPI
2277 NtUserMNDragLeave(VOID);
2278
2279 DWORD
2280 NTAPI
2281 NtUserMNDragOver(
2282 DWORD Unknown0,
2283 DWORD Unknown1);
2284
2285 DWORD
2286 NTAPI
2287 NtUserModifyUserStartupInfoFlags(
2288 DWORD Unknown0,
2289 DWORD Unknown1);
2290
2291 BOOL
2292 NTAPI
2293 NtUserMoveWindow(
2294 HWND hWnd,
2295 int X,
2296 int Y,
2297 int nWidth,
2298 int nHeight,
2299 BOOL bRepaint
2300 );
2301
2302 DWORD
2303 NTAPI
2304 NtUserNotifyIMEStatus(
2305 DWORD Unknown0,
2306 DWORD Unknown1,
2307 DWORD Unknown2);
2308
2309 DWORD
2310 NTAPI
2311 NtUserNotifyProcessCreate(
2312 DWORD dwUnknown1,
2313 DWORD dwUnknown2,
2314 DWORD dwUnknown3,
2315 DWORD dwUnknown4);
2316
2317 VOID
2318 NTAPI
2319 NtUserNotifyWinEvent(
2320 DWORD Event,
2321 HWND hWnd,
2322 LONG idObject,
2323 LONG idChild);
2324
2325 BOOL
2326 NTAPI
2327 NtUserOpenClipboard(
2328 HWND hWnd,
2329 DWORD Unknown1);
2330
2331 HDESK
2332 NTAPI
2333 NtUserOpenDesktop(
2334 PUNICODE_STRING lpszDesktopName,
2335 DWORD dwFlags,
2336 ACCESS_MASK dwDesiredAccess);
2337
2338 HDESK
2339 NTAPI
2340 NtUserOpenInputDesktop(
2341 DWORD dwFlags,
2342 BOOL fInherit,
2343 ACCESS_MASK dwDesiredAccess);
2344
2345 HWINSTA
2346 NTAPI
2347 NtUserOpenWindowStation(
2348 PUNICODE_STRING lpszWindowStationName,
2349 ACCESS_MASK dwDesiredAccess);
2350
2351 BOOL
2352 NTAPI
2353 NtUserPaintDesktop(
2354 HDC hDC);
2355
2356 DWORD
2357 NTAPI
2358 NtUserPaintMenuBar(
2359 DWORD dwUnknown1,
2360 DWORD dwUnknown2,
2361 DWORD dwUnknown3,
2362 DWORD dwUnknown4,
2363 DWORD dwUnknown5,
2364 DWORD dwUnknown6);
2365
2366 BOOL
2367 NTAPI
2368 NtUserPeekMessage(
2369 PNTUSERGETMESSAGEINFO MsgInfo,
2370 HWND hWnd,
2371 UINT wMsgFilterMin,
2372 UINT wMsgFilterMax,
2373 UINT wRemoveMsg);
2374
2375 BOOL
2376 NTAPI
2377 NtUserPostMessage(
2378 HWND hWnd,
2379 UINT Msg,
2380 WPARAM wParam,
2381 LPARAM lParam);
2382
2383 BOOL
2384 NTAPI
2385 NtUserPostThreadMessage(
2386 DWORD idThread,
2387 UINT Msg,
2388 WPARAM wParam,
2389 LPARAM lParam);
2390
2391 BOOL
2392 NTAPI
2393 NtUserPrintWindow(
2394 HWND hwnd,
2395 HDC hdcBlt,
2396 UINT nFlags);
2397
2398 NTSTATUS
2399 NTAPI
2400 NtUserProcessConnect(
2401 IN HANDLE Process,
2402 OUT PUSERCONNECT pUserConnect,
2403 IN DWORD dwSize); // sizeof(USERCONNECT)
2404
2405 DWORD
2406 NTAPI
2407 NtUserQueryInformationThread(
2408 DWORD dwUnknown1,
2409 DWORD dwUnknown2,
2410 DWORD dwUnknown3,
2411 DWORD dwUnknown4,
2412 DWORD dwUnknown5);
2413
2414 DWORD
2415 NTAPI
2416 NtUserQueryInputContext(
2417 DWORD dwUnknown1,
2418 DWORD dwUnknown2);
2419
2420 DWORD
2421 NTAPI
2422 NtUserQuerySendMessage(
2423 DWORD Unknown0);
2424
2425 DWORD
2426 NTAPI
2427 NtUserQueryUserCounters(
2428 DWORD Unknown0,
2429 DWORD Unknown1,
2430 DWORD Unknown2,
2431 DWORD Unknown3,
2432 DWORD Unknown4);
2433
2434 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2435 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2436 #define QUERY_WINDOW_ACTIVE 0x02
2437 #define QUERY_WINDOW_FOCUS 0x03
2438 #define QUERY_WINDOW_ISHUNG 0x04
2439 #define QUERY_WINDOW_REAL_ID 0x05
2440 DWORD
2441 NTAPI
2442 NtUserQueryWindow(
2443 HWND hWnd,
2444 DWORD Index);
2445
2446 DWORD
2447 NTAPI
2448 NtUserRealInternalGetMessage(
2449 DWORD dwUnknown1,
2450 DWORD dwUnknown2,
2451 DWORD dwUnknown3,
2452 DWORD dwUnknown4,
2453 DWORD dwUnknown5,
2454 DWORD dwUnknown6);
2455
2456 DWORD
2457 NTAPI
2458 NtUserRealChildWindowFromPoint(
2459 DWORD Unknown0,
2460 DWORD Unknown1,
2461 DWORD Unknown2);
2462
2463 DWORD
2464 NTAPI
2465 NtUserRealWaitMessageEx(
2466 DWORD dwUnknown1,
2467 DWORD dwUnknown2);
2468
2469 BOOL
2470 NTAPI
2471 NtUserRedrawWindow
2472 (
2473 HWND hWnd,
2474 CONST RECT *lprcUpdate,
2475 HRGN hrgnUpdate,
2476 UINT flags
2477 );
2478
2479 RTL_ATOM
2480 NTAPI
2481 NtUserRegisterClassExWOW(
2482 WNDCLASSEXW* lpwcx,
2483 PUNICODE_STRING pustrClassName,
2484 PUNICODE_STRING pustrCNVersion,
2485 PCLSMENUNAME pClassMenuName,
2486 DWORD fnID,
2487 DWORD Flags,
2488 LPDWORD pWow);
2489
2490 BOOL
2491 NTAPI
2492 NtUserRegisterRawInputDevices(
2493 IN PCRAWINPUTDEVICE pRawInputDevices,
2494 IN UINT uiNumDevices,
2495 IN UINT cbSize);
2496
2497 BOOL
2498 NTAPI
2499 NtUserRegisterUserApiHook(
2500 PUNICODE_STRING m_dllname1,
2501 PUNICODE_STRING m_funname1,
2502 DWORD dwUnknown3,
2503 DWORD dwUnknown4);
2504
2505 BOOL
2506 NTAPI
2507 NtUserRegisterHotKey(HWND hWnd,
2508 int id,
2509 UINT fsModifiers,
2510 UINT vk);
2511
2512 DWORD
2513 NTAPI
2514 NtUserRegisterTasklist(
2515 DWORD Unknown0);
2516
2517 UINT NTAPI
2518 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
2519
2520 DWORD
2521 NTAPI
2522 NtUserRemoteConnect(
2523 DWORD dwUnknown1,
2524 DWORD dwUnknown2,
2525 DWORD dwUnknown3);
2526
2527 DWORD
2528 NTAPI
2529 NtUserRemoteRedrawRectangle(
2530 DWORD dwUnknown1,
2531 DWORD dwUnknown2,
2532 DWORD dwUnknown3,
2533 DWORD dwUnknown4);
2534
2535 DWORD
2536 NTAPI
2537 NtUserRemoteRedrawScreen(VOID);
2538
2539 DWORD
2540 NTAPI
2541 NtUserRemoteStopScreenUpdates(VOID);
2542
2543 HANDLE NTAPI
2544 NtUserRemoveProp(HWND hWnd, ATOM Atom);
2545
2546 DWORD
2547 NTAPI
2548 NtUserResolveDesktop(
2549 DWORD dwUnknown1,
2550 DWORD dwUnknown2,
2551 DWORD dwUnknown3,
2552 DWORD dwUnknown4);
2553
2554 DWORD
2555 NTAPI
2556 NtUserResolveDesktopForWOW(
2557 DWORD Unknown0);
2558
2559 BOOL
2560 NTAPI
2561 NtUserSBGetParms(
2562 HWND hwnd,
2563 int fnBar,
2564 PSBDATA pSBData,
2565 LPSCROLLINFO lpsi);
2566
2567 BOOL
2568 NTAPI
2569 NtUserScrollDC(
2570 HDC hDC,
2571 int dx,
2572 int dy,
2573 CONST RECT *lprcScroll,
2574 CONST RECT *lprcClip ,
2575 HRGN hrgnUpdate,
2576 LPRECT lprcUpdate);
2577
2578 DWORD NTAPI
2579 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
2580 const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
2581
2582 UINT
2583 NTAPI
2584 NtUserSendInput(
2585 UINT nInputs,
2586 LPINPUT pInput,
2587 INT cbSize);
2588
2589 HWND NTAPI
2590 NtUserSetActiveWindow(HWND Wnd);
2591
2592 DWORD
2593 NTAPI
2594 NtUserSetAppImeLevel(
2595 DWORD dwUnknown1,
2596 DWORD dwUnknown2);
2597
2598 HWND NTAPI
2599 NtUserSetCapture(HWND Wnd);
2600
2601 ULONG_PTR NTAPI
2602 NtUserSetClassLong(
2603 HWND hWnd,
2604 INT Offset,
2605 ULONG_PTR dwNewLong,
2606 BOOL Ansi );
2607
2608 WORD
2609 NTAPI
2610 NtUserSetClassWord(
2611 HWND hWnd,
2612 INT nIndex,
2613 WORD wNewWord);
2614
2615 HANDLE
2616 NTAPI
2617 NtUserSetClipboardData(
2618 UINT uFormat,
2619 HANDLE hMem,
2620 DWORD Unknown2);
2621
2622 HWND
2623 NTAPI
2624 NtUserSetClipboardViewer(
2625 HWND hWndNewViewer);
2626
2627 HPALETTE
2628 NTAPI
2629 NtUserSelectPalette(
2630 HDC hDC,
2631 HPALETTE hpal,
2632 BOOL ForceBackground
2633 );
2634
2635 DWORD
2636 NTAPI
2637 NtUserSetConsoleReserveKeys(
2638 DWORD Unknown0,
2639 DWORD Unknown1);
2640
2641 HCURSOR
2642 NTAPI
2643 NtUserSetCursor(
2644 HCURSOR hCursor);
2645
2646 BOOL
2647 NTAPI
2648 NtUserSetCursorContents(
2649 HANDLE Handle,
2650 PICONINFO IconInfo);
2651
2652 BOOL
2653 NTAPI
2654 NtUserSetCursorIconData(
2655 HANDLE Handle,
2656 PBOOL fIcon,
2657 POINT *Hotspot,
2658 HMODULE hModule,
2659 HRSRC hRsrc,
2660 HRSRC hGroupRsrc);
2661
2662 DWORD
2663 NTAPI
2664 NtUserSetDbgTag(
2665 DWORD Unknown0,
2666 DWORD Unknown1);
2667
2668 HWND
2669 NTAPI
2670 NtUserSetFocus(
2671 HWND hWnd);
2672
2673 DWORD
2674 NTAPI
2675 NtUserSetImeHotKey(
2676 DWORD Unknown0,
2677 DWORD Unknown1,
2678 DWORD Unknown2,
2679 DWORD Unknown3,
2680 DWORD Unknown4);
2681
2682 DWORD
2683 NTAPI
2684 NtUserSetImeInfoEx(
2685 DWORD dwUnknown1);
2686
2687 DWORD
2688 NTAPI
2689 NtUserSetImeOwnerWindow(
2690 DWORD Unknown0,
2691 DWORD Unknown1);
2692
2693 DWORD
2694 NTAPI
2695 NtUserSetInformationProcess(
2696 DWORD dwUnknown1,
2697 DWORD dwUnknown2,
2698 DWORD dwUnknown3,
2699 DWORD dwUnknown4);
2700
2701 NTSTATUS
2702 NTAPI
2703 NtUserSetInformationThread(
2704 IN HANDLE ThreadHandle,
2705 IN USERTHREADINFOCLASS ThreadInformationClass,
2706 IN PVOID ThreadInformation,
2707 IN ULONG ThreadInformationLength
2708 );
2709
2710 DWORD
2711 NTAPI
2712 NtUserSetInternalWindowPos(
2713 HWND hwnd,
2714 UINT showCmd,
2715 LPRECT rect,
2716 LPPOINT pt);
2717
2718 BOOL
2719 NTAPI
2720 NtUserSetKeyboardState(
2721 LPBYTE lpKeyState);
2722
2723 BOOL
2724 NTAPI
2725 NtUserSetLayeredWindowAttributes(
2726 HWND hwnd,
2727 COLORREF crKey,
2728 BYTE bAlpha,
2729 DWORD dwFlags);
2730
2731 BOOL
2732 NTAPI
2733 NtUserSetLogonNotifyWindow(
2734 HWND hWnd);
2735
2736 BOOL
2737 NTAPI
2738 NtUserSetObjectInformation(
2739 HANDLE hObject,
2740 DWORD nIndex,
2741 PVOID pvInformation,
2742 DWORD nLength);
2743
2744 HWND
2745 NTAPI
2746 NtUserSetParent(
2747 HWND hWndChild,
2748 HWND hWndNewParent);
2749
2750 BOOL
2751 NTAPI
2752 NtUserSetProcessWindowStation(
2753 HWINSTA hWindowStation);
2754
2755 BOOL NTAPI
2756 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2757
2758 DWORD
2759 NTAPI
2760 NtUserSetRipFlags(
2761 DWORD Unknown0,
2762 DWORD Unknown1);
2763
2764 DWORD
2765 NTAPI
2766 NtUserSetScrollInfo(
2767 HWND hwnd,
2768 int fnBar,
2769 LPCSCROLLINFO lpsi,
2770 BOOL bRedraw);
2771
2772 BOOL
2773 NTAPI
2774 NtUserSetShellWindowEx(
2775 HWND hwndShell,
2776 HWND hwndShellListView);
2777
2778 BOOL
2779 NTAPI
2780 NtUserSetSysColors(
2781 int cElements,
2782 IN CONST INT *lpaElements,
2783 IN CONST COLORREF *lpaRgbValues,
2784 FLONG Flags);
2785
2786 BOOL
2787 NTAPI
2788 NtUserSetSystemCursor(
2789 HCURSOR hcur,
2790 DWORD id);
2791
2792 BOOL
2793 NTAPI
2794 NtUserSetThreadDesktop(
2795 HDESK hDesktop);
2796
2797 DWORD
2798 NTAPI
2799 NtUserSetThreadState(
2800 DWORD Unknown0,
2801 DWORD Unknown1);
2802
2803 UINT_PTR
2804 NTAPI
2805 NtUserSetSystemTimer
2806 (
2807 HWND hWnd,
2808 UINT_PTR nIDEvent,
2809 UINT uElapse,
2810 TIMERPROC lpTimerFunc
2811 );
2812
2813 DWORD
2814 NTAPI
2815 NtUserSetThreadLayoutHandles(
2816 DWORD dwUnknown1,
2817 DWORD dwUnknown2);
2818
2819 UINT_PTR
2820 NTAPI
2821 NtUserSetTimer
2822 (
2823 HWND hWnd,
2824 UINT_PTR nIDEvent,
2825 UINT uElapse,
2826 TIMERPROC lpTimerFunc
2827 );
2828
2829 BOOL
2830 NTAPI
2831 NtUserSetWindowFNID(
2832 HWND hWnd,
2833 WORD fnID);
2834
2835 LONG
2836 NTAPI
2837 NtUserSetWindowLong(
2838 HWND hWnd,
2839 DWORD Index,
2840 LONG NewValue,
2841 BOOL Ansi);
2842
2843 BOOL
2844 NTAPI
2845 NtUserSetWindowPlacement(
2846 HWND hWnd,
2847 WINDOWPLACEMENT *lpwndpl);
2848
2849 BOOL
2850 NTAPI NtUserSetWindowPos(
2851 HWND hWnd,
2852 HWND hWndInsertAfter,
2853 int X,
2854 int Y,
2855 int cx,
2856 int cy,
2857 UINT uFlags
2858 );
2859
2860 INT
2861 NTAPI
2862 NtUserSetWindowRgn(
2863 HWND hWnd,
2864 HRGN hRgn,
2865 BOOL bRedraw);
2866
2867 HHOOK
2868 NTAPI
2869 NtUserSetWindowsHookAW(
2870 int idHook,
2871 HOOKPROC lpfn,
2872 BOOL Ansi);
2873
2874 HHOOK
2875 NTAPI
2876 NtUserSetWindowsHookEx(
2877 HINSTANCE Mod,
2878 PUNICODE_STRING ModuleName,
2879 DWORD ThreadId,
2880 int HookId,
2881 HOOKPROC HookProc,
2882 BOOL Ansi);
2883
2884 DWORD
2885 NTAPI
2886 NtUserSetWindowStationUser(
2887 DWORD Unknown0,
2888 DWORD Unknown1,
2889 DWORD Unknown2,
2890 DWORD Unknown3);
2891
2892 WORD NTAPI
2893 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
2894
2895 HWINEVENTHOOK
2896 NTAPI
2897 NtUserSetWinEventHook(
2898 UINT eventMin,
2899 UINT eventMax,
2900 HMODULE hmodWinEventProc,
2901 PUNICODE_STRING puString,
2902 WINEVENTPROC lpfnWinEventProc,
2903 DWORD idProcess,
2904 DWORD idThread,
2905 UINT dwflags);
2906
2907 BOOL
2908 NTAPI
2909 NtUserShowCaret(
2910 HWND hWnd);
2911
2912 BOOL
2913 NTAPI
2914 NtUserHideCaret(
2915 HWND hWnd);
2916
2917 DWORD
2918 NTAPI
2919 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
2920
2921 BOOL
2922 NTAPI
2923 NtUserShowWindow(
2924 HWND hWnd,
2925 LONG nCmdShow);
2926
2927 BOOL
2928 NTAPI
2929 NtUserShowWindowAsync(
2930 HWND hWnd,
2931 LONG nCmdShow);
2932
2933 BOOL
2934 NTAPI
2935 NtUserSoundSentry(VOID);
2936
2937 BOOL
2938 NTAPI
2939 NtUserSwitchDesktop(
2940 HDESK hDesktop);
2941
2942 BOOL
2943 NTAPI
2944 NtUserSystemParametersInfo(
2945 UINT uiAction,
2946 UINT uiParam,
2947 PVOID pvParam,
2948 UINT fWinIni);
2949
2950 DWORD
2951 NTAPI
2952 NtUserTestForInteractiveUser(
2953 DWORD dwUnknown1);
2954
2955 INT
2956 NTAPI
2957 NtUserToUnicodeEx(
2958 UINT wVirtKey,
2959 UINT wScanCode,
2960 PBYTE lpKeyState,
2961 LPWSTR pwszBuff,
2962 int cchBuff,
2963 UINT wFlags,
2964 HKL dwhkl );
2965
2966 BOOL
2967 NTAPI
2968 NtUserTrackMouseEvent(
2969 LPTRACKMOUSEEVENT lpEventTrack);
2970
2971 int
2972 NTAPI
2973 NtUserTranslateAccelerator(
2974 HWND Window,
2975 HACCEL Table,
2976 LPMSG Message);
2977
2978 BOOL
2979 NTAPI
2980 NtUserTranslateMessage(
2981 LPMSG lpMsg,
2982 UINT flags );
2983
2984 BOOL
2985 NTAPI
2986 NtUserUnhookWindowsHookEx(
2987 HHOOK Hook);
2988
2989 BOOL
2990 NTAPI
2991 NtUserUnhookWinEvent(
2992 HWINEVENTHOOK hWinEventHook);
2993
2994 BOOL
2995 NTAPI
2996 NtUserUnloadKeyboardLayout(
2997 HKL hKl);
2998
2999 BOOL
3000 NTAPI
3001 NtUserUnlockWindowStation(
3002 HWINSTA hWindowStation);
3003
3004 BOOL
3005 NTAPI
3006 NtUserUnregisterClass(
3007 PUNICODE_STRING ClassNameOrAtom,
3008 HINSTANCE hInstance,
3009 PCLSMENUNAME pClassMenuName);
3010
3011 BOOL
3012 NTAPI
3013 NtUserUnregisterHotKey(HWND hWnd,
3014 int id);
3015
3016 BOOL
3017 NTAPI
3018 NtUserUnregisterUserApiHook(VOID);
3019
3020 DWORD
3021 NTAPI
3022 NtUserUpdateInputContext(
3023 DWORD Unknown0,
3024 DWORD Unknown1,
3025 DWORD Unknown2);
3026
3027 DWORD
3028 NTAPI
3029 NtUserUpdateInstance(
3030 DWORD Unknown0,
3031 DWORD Unknown1,
3032 DWORD Unknown2);
3033
3034 BOOL
3035 NTAPI
3036 NtUserUpdateLayeredWindow(
3037 HWND hwnd,
3038 HDC hdcDst,
3039 POINT *pptDst,
3040 SIZE *psize,
3041 HDC hdcSrc,
3042 POINT *pptSrc,
3043 COLORREF crKey,
3044 BLENDFUNCTION *pblend,
3045 DWORD dwFlags,
3046 RECT *prcDirty);
3047
3048 BOOL
3049 NTAPI
3050 NtUserUpdatePerUserSystemParameters(
3051 DWORD dwReserved,
3052 BOOL bEnable);
3053
3054 BOOL
3055 NTAPI
3056 NtUserUserHandleGrantAccess(
3057 IN HANDLE hUserHandle,
3058 IN HANDLE hJob,
3059 IN BOOL bGrant);
3060
3061 BOOL
3062 NTAPI
3063 NtUserValidateHandleSecure(
3064 HANDLE hHdl,
3065 BOOL Restricted);
3066
3067 BOOL
3068 NTAPI
3069 NtUserValidateRect(
3070 HWND hWnd,
3071 CONST RECT *lpRect);
3072
3073 BOOL
3074 APIENTRY
3075 NtUserValidateTimerCallback(
3076 HWND hWnd,
3077 WPARAM wParam,
3078 LPARAM lParam);
3079
3080 DWORD
3081 NTAPI
3082 NtUserVkKeyScanEx(
3083 WCHAR wChar,
3084 HKL KeyboardLayout,
3085 BOOL bUsehHK);
3086
3087 DWORD
3088 NTAPI
3089 NtUserWaitForInputIdle(
3090 IN HANDLE hProcess,
3091 IN DWORD dwMilliseconds,
3092 IN BOOL Unknown2); // Always FALSE
3093
3094 DWORD
3095 NTAPI
3096 NtUserWaitForMsgAndEvent(
3097 DWORD Unknown0);
3098
3099 BOOL
3100 NTAPI
3101 NtUserWaitMessage(VOID);
3102
3103 DWORD
3104 NTAPI
3105 NtUserWin32PoolAllocationStats(
3106 DWORD Unknown0,
3107 DWORD Unknown1,
3108 DWORD Unknown2,
3109 DWORD Unknown3,
3110 DWORD Unknown4,
3111 DWORD Unknown5);
3112
3113 HWND
3114 NTAPI
3115 NtUserWindowFromPhysicalPoint(
3116 POINT Point);
3117
3118 HWND
3119 NTAPI
3120 NtUserWindowFromPoint(
3121 LONG X,
3122 LONG Y);
3123
3124 DWORD
3125 NTAPI
3126 NtUserYieldTask(VOID);
3127
3128 /* lParam of DDE messages */
3129 typedef struct tagKMDDEEXECUTEDATA
3130 {
3131 HWND Sender;
3132 HGLOBAL ClientMem;
3133 /* BYTE Data[DataSize] */
3134 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
3135
3136 typedef struct tagKMDDELPARAM
3137 {
3138 BOOL Packed;
3139 union
3140 {
3141 struct
3142 {
3143 UINT_PTR uiLo;
3144 UINT_PTR uiHi;
3145 } Packed;
3146 LPARAM Unpacked;
3147 } Value;
3148 } KMDDELPARAM, *PKMDDELPARAM;
3149
3150
3151
3152
3153
3154 /* NtUserBad
3155 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3156 */
3157
3158 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3159 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3160 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3161 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3162 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3163 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3164 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
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 */