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