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