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