Bye bye NtUserCreateCursorHandle.
[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 LARGE_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, // |= 0x80000000 == Ansi used to set WNDS_ANSICREATOR
1476 PLARGE_STRING plstrClassName,
1477 PLARGE_STRING plstrClsVersion,
1478 PLARGE_STRING plstrWindowName,
1479 DWORD dwStyle,
1480 int x,
1481 int y,
1482 int nWidth,
1483 int nHeight,
1484 HWND hWndParent,
1485 HMENU hMenu,
1486 HINSTANCE hInstance,
1487 LPVOID lpParam,
1488 DWORD dwFlags,
1489 PVOID acbiBuffer);
1490
1491 HWINSTA
1492 NTAPI
1493 NtUserCreateWindowStation(
1494 PUNICODE_STRING lpszWindowStationName,
1495 ACCESS_MASK dwDesiredAccess,
1496 LPSECURITY_ATTRIBUTES lpSecurity,
1497 DWORD Unknown3,
1498 DWORD Unknown4,
1499 DWORD Unknown5,
1500 DWORD Unknown6);
1501
1502 BOOL
1503 NTAPI
1504 NtUserDdeGetQualityOfService(
1505 IN HWND hwndClient,
1506 IN HWND hWndServer,
1507 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1508
1509 DWORD
1510 NTAPI
1511 NtUserDdeInitialize(
1512 DWORD Unknown0,
1513 DWORD Unknown1,
1514 DWORD Unknown2,
1515 DWORD Unknown3,
1516 DWORD Unknown4);
1517
1518 BOOL
1519 NTAPI
1520 NtUserDdeSetQualityOfService(
1521 IN HWND hwndClient,
1522 IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
1523 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1524
1525 HDWP NTAPI
1526 NtUserDeferWindowPos(
1527 HDWP WinPosInfo,
1528 HWND Wnd,
1529 HWND WndInsertAfter,
1530 int x,
1531 int y,
1532 int cx,
1533 int cy,
1534 UINT Flags);
1535
1536 BOOL NTAPI
1537 NtUserDefSetText(HWND WindowHandle, PLARGE_STRING WindowText);
1538
1539 BOOLEAN
1540 NTAPI
1541 NtUserDestroyAcceleratorTable(
1542 HACCEL Table);
1543
1544 BOOL
1545 NTAPI
1546 NtUserDestroyCursor(
1547 HANDLE Handle,
1548 DWORD Unknown);
1549
1550 DWORD
1551 NTAPI
1552 NtUserDestroyInputContext(
1553 DWORD dwUnknown1);
1554
1555 BOOLEAN NTAPI
1556 NtUserDestroyWindow(HWND Wnd);
1557
1558 DWORD
1559 NTAPI
1560 NtUserDisableThreadIme(
1561 DWORD dwUnknown1);
1562
1563 LRESULT
1564 NTAPI
1565 NtUserDispatchMessage(PMSG pMsg);
1566
1567 BOOL
1568 NTAPI
1569 NtUserDragDetect(
1570 HWND hWnd,
1571 POINT pt);
1572
1573 DWORD
1574 NTAPI
1575 NtUserDragObject(
1576 HWND hwnd1,
1577 HWND hwnd2,
1578 UINT u1,
1579 DWORD dw1,
1580 HCURSOR hc1);
1581
1582 BOOL
1583 NTAPI
1584 NtUserDrawAnimatedRects(
1585 HWND hwnd,
1586 INT idAni,
1587 RECT *lprcFrom,
1588 RECT *lprcTo);
1589
1590 BOOL
1591 NTAPI
1592 NtUserDrawCaption(
1593 HWND hWnd,
1594 HDC hDc,
1595 LPCRECT lpRc,
1596 UINT uFlags);
1597
1598 BOOL
1599 NTAPI
1600 NtUserDrawCaptionTemp(
1601 HWND hWnd,
1602 HDC hDC,
1603 LPCRECT lpRc,
1604 HFONT hFont,
1605 HICON hIcon,
1606 const PUNICODE_STRING str,
1607 UINT uFlags);
1608
1609 // Used with NtUserDrawIconEx, last parameter.
1610 typedef struct _DRAWICONEXDATA
1611 {
1612 HBITMAP hbmMask;
1613 HBITMAP hbmColor;
1614 int cx;
1615 int cy;
1616 } DRAWICONEXDATA, *PDRAWICONEXDATA;
1617
1618 BOOL
1619 NTAPI
1620 NtUserDrawIconEx(
1621 HDC hdc,
1622 int xLeft,
1623 int yTop,
1624 HICON hIcon,
1625 int cxWidth,
1626 int cyWidth,
1627 UINT istepIfAniCur,
1628 HBRUSH hbrFlickerFreeDraw,
1629 UINT diFlags,
1630 BOOL bMetaHDC,
1631 PVOID pDIXData);
1632
1633 DWORD
1634 NTAPI
1635 NtUserEmptyClipboard(VOID);
1636
1637 BOOL
1638 NTAPI
1639 NtUserEnableScrollBar(
1640 HWND hWnd,
1641 UINT wSBflags,
1642 UINT wArrows);
1643
1644 DWORD
1645 NTAPI
1646 NtUserEndDeferWindowPosEx(
1647 DWORD Unknown0,
1648 DWORD Unknown1);
1649
1650 BOOL NTAPI
1651 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
1652
1653 BOOL
1654 NTAPI
1655 NtUserEnumDisplayDevices (
1656 PUNICODE_STRING lpDevice, /* device name */
1657 DWORD iDevNum, /* display device */
1658 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
1659 DWORD dwFlags ); /* reserved */
1660
1661 /*BOOL
1662 NTAPI
1663 NtUserEnumDisplayMonitors (
1664 HDC hdc,
1665 LPCRECT lprcClip,
1666 MONITORENUMPROC lpfnEnum,
1667 LPARAM dwData );*/
1668 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1669 INT
1670 NTAPI
1671 NtUserEnumDisplayMonitors(
1672 OPTIONAL IN HDC hDC,
1673 OPTIONAL IN LPCRECT pRect,
1674 OPTIONAL OUT HMONITOR *hMonitorList,
1675 OPTIONAL OUT LPRECT monitorRectList,
1676 OPTIONAL IN DWORD listSize );
1677
1678
1679 NTSTATUS
1680 NTAPI
1681 NtUserEnumDisplaySettings(
1682 PUNICODE_STRING lpszDeviceName,
1683 DWORD iModeNum,
1684 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
1685 DWORD dwFlags );
1686
1687 DWORD
1688 NTAPI
1689 NtUserEvent(
1690 DWORD Unknown0);
1691
1692 DWORD
1693 NTAPI
1694 NtUserExcludeUpdateRgn(
1695 HDC hDC,
1696 HWND hWnd);
1697
1698 BOOL
1699 NTAPI
1700 NtUserFillWindow(
1701 HWND hWndPaint,
1702 HWND hWndPaint1,
1703 HDC hDC,
1704 HBRUSH hBrush);
1705
1706 HICON
1707 NTAPI
1708 NtUserFindExistingCursorIcon(
1709 HMODULE hModule,
1710 HRSRC hRsrc,
1711 LONG cx,
1712 LONG cy);
1713
1714 HWND
1715 NTAPI
1716 NtUserFindWindowEx(
1717 HWND hwndParent,
1718 HWND hwndChildAfter,
1719 PUNICODE_STRING ucClassName,
1720 PUNICODE_STRING ucWindowName,
1721 DWORD dwUnknown
1722 );
1723
1724 BOOL
1725 NTAPI
1726 NtUserFlashWindowEx(
1727 IN PFLASHWINFO pfwi);
1728
1729 BOOL
1730 NTAPI
1731 NtUserGetAltTabInfo(
1732 HWND hwnd,
1733 INT iItem,
1734 PALTTABINFO pati,
1735 LPWSTR pszItemText,
1736 UINT cchItemText,
1737 BOOL Ansi);
1738
1739 HWND NTAPI
1740 NtUserGetAncestor(HWND hWnd, UINT Flags);
1741
1742 DWORD
1743 NTAPI
1744 NtUserGetAppImeLevel(
1745 DWORD dwUnknown1);
1746
1747 SHORT
1748 NTAPI
1749 NtUserGetAsyncKeyState(
1750 INT Key);
1751
1752 DWORD
1753 NTAPI
1754 NtUserGetAtomName(
1755 ATOM nAtom,
1756 LPWSTR lpBuffer);
1757
1758 UINT
1759 NTAPI
1760 NtUserGetCaretBlinkTime(VOID);
1761
1762 BOOL
1763 NTAPI
1764 NtUserGetCaretPos(
1765 LPPOINT lpPoint);
1766
1767 BOOL NTAPI
1768 NtUserGetClassInfo(HINSTANCE hInstance,
1769 PUNICODE_STRING ClassName,
1770 LPWNDCLASSEXW wcex,
1771 LPWSTR *ppszMenuName,
1772 BOOL Ansi);
1773
1774 INT
1775 NTAPI
1776 NtUserGetClassName(HWND hWnd,
1777 PUNICODE_STRING ClassName,
1778 BOOL Ansi);
1779 #if 0 // Real NtUserGetClassName
1780 INT
1781 NTAPI
1782 NtUserGetClassName(HWND hWnd,
1783 BOOL Real, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1784 PUNICODE_STRING ClassName);
1785 #endif
1786
1787 HANDLE
1788 NTAPI
1789 NtUserGetClipboardData(
1790 UINT uFormat,
1791 PVOID pBuffer);
1792
1793 INT
1794 NTAPI
1795 NtUserGetClipboardFormatName(
1796 UINT format,
1797 PUNICODE_STRING FormatName,
1798 INT cchMaxCount);
1799
1800 HWND
1801 NTAPI
1802 NtUserGetClipboardOwner(VOID);
1803
1804 DWORD
1805 NTAPI
1806 NtUserGetClipboardSequenceNumber(VOID);
1807
1808 HWND
1809 NTAPI
1810 NtUserGetClipboardViewer(VOID);
1811
1812 BOOL
1813 NTAPI
1814 NtUserGetClipCursor(
1815 RECT *lpRect);
1816
1817 BOOL
1818 NTAPI
1819 NtUserGetComboBoxInfo(
1820 HWND hWnd,
1821 PCOMBOBOXINFO pcbi);
1822
1823 HBRUSH
1824 NTAPI
1825 NtUserGetControlBrush(
1826 HWND hwnd,
1827 HDC hdc,
1828 UINT ctlType);
1829
1830 HBRUSH
1831 NTAPI
1832 NtUserGetControlColor(
1833 HWND hwndParent,
1834 HWND hwnd,
1835 HDC hdc,
1836 UINT CtlMsg);
1837
1838 ULONG_PTR
1839 NTAPI
1840 NtUserGetCPD(
1841 HWND hWnd,
1842 GETCPD Flags,
1843 ULONG_PTR Proc);
1844
1845 DWORD
1846 NTAPI
1847 NtUserGetCursorFrameInfo(
1848 DWORD Unknown0,
1849 DWORD Unknown1,
1850 DWORD Unknown2,
1851 DWORD Unknown3);
1852
1853 BOOL
1854 NTAPI
1855 NtUserGetCursorInfo(
1856 PCURSORINFO pci);
1857
1858 HDC
1859 NTAPI
1860 NtUserGetDC(
1861 HWND hWnd);
1862
1863 HDC
1864 NTAPI
1865 NtUserGetDCEx(
1866 HWND hWnd,
1867 HANDLE hRegion,
1868 ULONG Flags);
1869
1870 UINT
1871 NTAPI
1872 NtUserGetDoubleClickTime(VOID);
1873
1874 HWND
1875 NTAPI
1876 NtUserGetForegroundWindow(VOID);
1877
1878 DWORD
1879 NTAPI
1880 NtUserGetGuiResources(
1881 HANDLE hProcess,
1882 DWORD uiFlags);
1883
1884 BOOL
1885 NTAPI
1886 NtUserGetGUIThreadInfo(
1887 DWORD idThread,
1888 LPGUITHREADINFO lpgui);
1889
1890 BOOL
1891 NTAPI
1892 NtUserGetIconInfo(
1893 HANDLE hCurIcon,
1894 PICONINFO IconInfo,
1895 PUNICODE_STRING lpInstName,
1896 PUNICODE_STRING lpResName,
1897 LPDWORD pbpp,
1898 BOOL bInternal);
1899
1900 BOOL
1901 NTAPI
1902 NtUserGetIconSize(
1903 HANDLE Handle,
1904 UINT istepIfAniCur,
1905 LONG *plcx,
1906 LONG *plcy);
1907
1908 DWORD
1909 NTAPI
1910 NtUserGetImeHotKey(
1911 DWORD Unknown0,
1912 DWORD Unknown1,
1913 DWORD Unknown2,
1914 DWORD Unknown3);
1915
1916 DWORD
1917 NTAPI
1918 NtUserGetImeInfoEx(
1919 DWORD dwUnknown1,
1920 DWORD dwUnknown2);
1921
1922 DWORD
1923 NTAPI
1924 NtUserGetInternalWindowPos(
1925 HWND hwnd,
1926 LPRECT rectWnd,
1927 LPPOINT ptIcon);
1928
1929 HKL
1930 NTAPI
1931 NtUserGetKeyboardLayout(
1932 DWORD dwThreadid);
1933
1934 UINT
1935 NTAPI
1936 NtUserGetKeyboardLayoutList(
1937 INT nItems,
1938 HKL *pHklBuff);
1939
1940 BOOL
1941 NTAPI
1942 NtUserGetKeyboardLayoutName(
1943 LPWSTR lpszName);
1944
1945 DWORD
1946 NTAPI
1947 NtUserGetKeyboardState(
1948 LPBYTE Unknown0);
1949
1950 DWORD
1951 NTAPI
1952 NtUserGetKeyboardType(
1953 DWORD TypeFlag);
1954
1955 DWORD
1956 NTAPI
1957 NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
1958
1959 SHORT
1960 NTAPI
1961 NtUserGetKeyState(
1962 INT VirtKey);
1963
1964 BOOL
1965 NTAPI
1966 NtUserGetLayeredWindowAttributes(
1967 HWND hwnd,
1968 COLORREF *pcrKey,
1969 BYTE *pbAlpha,
1970 DWORD *pdwFlags);
1971
1972 DWORD
1973 NTAPI
1974 NtUserGetListBoxInfo(
1975 HWND hWnd);
1976
1977 typedef struct tagNTUSERGETMESSAGEINFO
1978 {
1979 MSG Msg;
1980 ULONG LParamSize;
1981 } NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO;
1982
1983 BOOL
1984 NTAPI
1985 NtUserGetMessage(
1986 PNTUSERGETMESSAGEINFO MsgInfo,
1987 HWND hWnd,
1988 UINT wMsgFilterMin,
1989 UINT wMsgFilterMax);
1990
1991 DWORD
1992 NTAPI
1993 NtUserGetMouseMovePointsEx(
1994 UINT cbSize,
1995 LPMOUSEMOVEPOINT lppt,
1996 LPMOUSEMOVEPOINT lpptBuf,
1997 int nBufPoints,
1998 DWORD resolution);
1999
2000 BOOL
2001 NTAPI
2002 NtUserGetObjectInformation(
2003 HANDLE hObject,
2004 DWORD nIndex,
2005 PVOID pvInformation,
2006 DWORD nLength,
2007 PDWORD nLengthNeeded);
2008
2009 HWND
2010 NTAPI
2011 NtUserGetOpenClipboardWindow(VOID);
2012
2013 INT
2014 NTAPI
2015 NtUserGetPriorityClipboardFormat(
2016 UINT *paFormatPriorityList,
2017 INT cFormats);
2018
2019 HWINSTA
2020 NTAPI
2021 NtUserGetProcessWindowStation(VOID);
2022
2023 DWORD
2024 NTAPI
2025 NtUserGetRawInputBuffer(
2026 PRAWINPUT pData,
2027 PUINT pcbSize,
2028 UINT cbSizeHeader);
2029
2030 DWORD
2031 NTAPI
2032 NtUserGetRawInputData(
2033 HRAWINPUT hRawInput,
2034 UINT uiCommand,
2035 LPVOID pData,
2036 PUINT pcbSize,
2037 UINT cbSizeHeader);
2038
2039 DWORD
2040 NTAPI
2041 NtUserGetRawInputDeviceInfo(
2042 HANDLE hDevice,
2043 UINT uiCommand,
2044 LPVOID pData,
2045 PUINT pcbSize);
2046
2047 DWORD
2048 NTAPI
2049 NtUserGetRawInputDeviceList(
2050 PRAWINPUTDEVICELIST pRawInputDeviceList,
2051 PUINT puiNumDevices,
2052 UINT cbSize);
2053
2054 DWORD
2055 NTAPI
2056 NtUserGetRegisteredRawInputDevices(
2057 PRAWINPUTDEVICE pRawInputDevices,
2058 PUINT puiNumDevices,
2059 UINT cbSize);
2060
2061 BOOL
2062 NTAPI
2063 NtUserGetScrollBarInfo(
2064 HWND hWnd,
2065 LONG idObject,
2066 PSCROLLBARINFO psbi);
2067
2068 HDESK
2069 NTAPI
2070 NtUserGetThreadDesktop(
2071 DWORD dwThreadId,
2072 DWORD Unknown1);
2073
2074
2075 enum ThreadStateRoutines
2076 {
2077 THREADSTATE_GETTHREADINFO,
2078 THREADSTATE_INSENDMESSAGE,
2079 THREADSTATE_FOCUSWINDOW,
2080 THREADSTATE_ACTIVEWINDOW,
2081 THREADSTATE_CAPTUREWINDOW,
2082 THREADSTATE_PROGMANWINDOW,
2083 THREADSTATE_TASKMANWINDOW,
2084 THREADSTATE_GETMESSAGETIME,
2085 THREADSTATE_GETINPUTSTATE
2086 };
2087
2088 DWORD_PTR
2089 NTAPI
2090 NtUserGetThreadState(
2091 DWORD Routine);
2092
2093 BOOLEAN
2094 NTAPI
2095 NtUserGetTitleBarInfo(
2096 HWND hwnd,
2097 PTITLEBARINFO pti);
2098
2099 BOOL NTAPI
2100 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
2101
2102 int
2103 NTAPI
2104 NtUserGetUpdateRgn(
2105 HWND hWnd,
2106 HRGN hRgn,
2107 BOOL bErase);
2108
2109 HDC
2110 NTAPI
2111 NtUserGetWindowDC(
2112 HWND hWnd);
2113
2114 BOOL
2115 NTAPI
2116 NtUserGetWindowPlacement(
2117 HWND hWnd,
2118 WINDOWPLACEMENT *lpwndpl);
2119
2120 PCLS
2121 NTAPI
2122 NtUserGetWOWClass(
2123 HINSTANCE hInstance,
2124 PUNICODE_STRING ClassName);
2125
2126 DWORD
2127 NTAPI
2128 NtUserHardErrorControl(
2129 DWORD dwUnknown1,
2130 DWORD dwUnknown2,
2131 DWORD dwUnknown3);
2132
2133 BOOL
2134 NTAPI
2135 NtUserImpersonateDdeClientWindow(
2136 HWND hWndClient,
2137 HWND hWndServer);
2138
2139 NTSTATUS
2140 NTAPI
2141 NtUserInitialize(
2142 DWORD dwWinVersion,
2143 HANDLE hPowerRequestEvent,
2144 HANDLE hMediaRequestEvent);
2145
2146 NTSTATUS
2147 NTAPI
2148 NtUserInitializeClientPfnArrays(
2149 PPFNCLIENT pfnClientA,
2150 PPFNCLIENT pfnClientW,
2151 PPFNCLIENTWORKER pfnClientWorker,
2152 HINSTANCE hmodUser);
2153
2154 DWORD
2155 NTAPI
2156 NtUserInitTask(
2157 DWORD Unknown0,
2158 DWORD Unknown1,
2159 DWORD Unknown2,
2160 DWORD Unknown3,
2161 DWORD Unknown4,
2162 DWORD Unknown5,
2163 DWORD Unknown6,
2164 DWORD Unknown7,
2165 DWORD Unknown8,
2166 DWORD Unknown9,
2167 DWORD Unknown10,
2168 DWORD Unknown11);
2169
2170 INT
2171 NTAPI
2172 NtUserInternalGetWindowText(
2173 HWND hWnd,
2174 LPWSTR lpString,
2175 INT nMaxCount);
2176
2177 BOOL
2178 NTAPI
2179 NtUserInvalidateRect(
2180 HWND hWnd,
2181 CONST RECT *lpRect,
2182 BOOL bErase);
2183
2184 BOOL
2185 NTAPI
2186 NtUserInvalidateRgn(
2187 HWND hWnd,
2188 HRGN hRgn,
2189 BOOL bErase);
2190
2191 BOOL
2192 NTAPI
2193 NtUserIsClipboardFormatAvailable(
2194 UINT format);
2195
2196 BOOL
2197 NTAPI
2198 NtUserKillTimer
2199 (
2200 HWND hWnd,
2201 UINT_PTR uIDEvent
2202 );
2203
2204 HKL
2205 NTAPI
2206 NtUserLoadKeyboardLayoutEx(
2207 IN HANDLE Handle,
2208 IN DWORD offTable,
2209 IN PUNICODE_STRING puszKeyboardName,
2210 IN HKL hKL,
2211 IN PUNICODE_STRING puszKLID,
2212 IN DWORD dwKLID,
2213 IN UINT Flags);
2214
2215 BOOL
2216 NTAPI
2217 NtUserLockWindowStation(
2218 HWINSTA hWindowStation);
2219
2220 BOOL
2221 NTAPI
2222 NtUserLockWindowUpdate(
2223 HWND hWnd);
2224
2225 BOOL
2226 NTAPI
2227 NtUserLockWorkStation(VOID);
2228
2229 UINT
2230 NTAPI
2231 NtUserMapVirtualKeyEx( UINT keyCode,
2232 UINT transType,
2233 DWORD keyboardId,
2234 HKL dwhkl );
2235 BOOL
2236 NTAPI
2237 NtUserMessageCall(
2238 HWND hWnd,
2239 UINT Msg,
2240 WPARAM wParam,
2241 LPARAM lParam,
2242 ULONG_PTR ResultInfo,
2243 DWORD dwType, // FNID_XX types
2244 BOOL Ansi);
2245
2246 DWORD
2247 NTAPI
2248 NtUserMinMaximize(
2249 HWND hWnd,
2250 UINT cmd, // Wine SW_ commands
2251 BOOL Hide);
2252
2253 DWORD
2254 NTAPI
2255 NtUserMNDragLeave(VOID);
2256
2257 DWORD
2258 NTAPI
2259 NtUserMNDragOver(
2260 DWORD Unknown0,
2261 DWORD Unknown1);
2262
2263 DWORD
2264 NTAPI
2265 NtUserModifyUserStartupInfoFlags(
2266 DWORD Unknown0,
2267 DWORD Unknown1);
2268
2269 BOOL
2270 NTAPI
2271 NtUserMoveWindow(
2272 HWND hWnd,
2273 int X,
2274 int Y,
2275 int nWidth,
2276 int nHeight,
2277 BOOL bRepaint
2278 );
2279
2280 DWORD
2281 NTAPI
2282 NtUserNotifyIMEStatus(
2283 DWORD Unknown0,
2284 DWORD Unknown1,
2285 DWORD Unknown2);
2286
2287 DWORD
2288 NTAPI
2289 NtUserNotifyProcessCreate(
2290 DWORD dwUnknown1,
2291 DWORD dwUnknown2,
2292 DWORD dwUnknown3,
2293 DWORD dwUnknown4);
2294
2295 VOID
2296 NTAPI
2297 NtUserNotifyWinEvent(
2298 DWORD Event,
2299 HWND hWnd,
2300 LONG idObject,
2301 LONG idChild);
2302
2303 BOOL
2304 NTAPI
2305 NtUserOpenClipboard(
2306 HWND hWnd,
2307 DWORD Unknown1);
2308
2309 HDESK
2310 NTAPI
2311 NtUserOpenDesktop(
2312 PUNICODE_STRING lpszDesktopName,
2313 DWORD dwFlags,
2314 ACCESS_MASK dwDesiredAccess);
2315
2316 HDESK
2317 NTAPI
2318 NtUserOpenInputDesktop(
2319 DWORD dwFlags,
2320 BOOL fInherit,
2321 ACCESS_MASK dwDesiredAccess);
2322
2323 HWINSTA
2324 NTAPI
2325 NtUserOpenWindowStation(
2326 PUNICODE_STRING lpszWindowStationName,
2327 ACCESS_MASK dwDesiredAccess);
2328
2329 BOOL
2330 NTAPI
2331 NtUserPaintDesktop(
2332 HDC hDC);
2333
2334 DWORD
2335 NTAPI
2336 NtUserPaintMenuBar(
2337 DWORD dwUnknown1,
2338 DWORD dwUnknown2,
2339 DWORD dwUnknown3,
2340 DWORD dwUnknown4,
2341 DWORD dwUnknown5,
2342 DWORD dwUnknown6);
2343
2344 BOOL
2345 NTAPI
2346 NtUserPeekMessage(
2347 PNTUSERGETMESSAGEINFO MsgInfo,
2348 HWND hWnd,
2349 UINT wMsgFilterMin,
2350 UINT wMsgFilterMax,
2351 UINT wRemoveMsg);
2352
2353 BOOL
2354 NTAPI
2355 NtUserPostMessage(
2356 HWND hWnd,
2357 UINT Msg,
2358 WPARAM wParam,
2359 LPARAM lParam);
2360
2361 BOOL
2362 NTAPI
2363 NtUserPostThreadMessage(
2364 DWORD idThread,
2365 UINT Msg,
2366 WPARAM wParam,
2367 LPARAM lParam);
2368
2369 BOOL
2370 NTAPI
2371 NtUserPrintWindow(
2372 HWND hwnd,
2373 HDC hdcBlt,
2374 UINT nFlags);
2375
2376 NTSTATUS
2377 NTAPI
2378 NtUserProcessConnect(
2379 IN HANDLE Process,
2380 OUT PUSERCONNECT pUserConnect,
2381 IN DWORD dwSize); // sizeof(USERCONNECT)
2382
2383 DWORD
2384 NTAPI
2385 NtUserQueryInformationThread(
2386 DWORD dwUnknown1,
2387 DWORD dwUnknown2,
2388 DWORD dwUnknown3,
2389 DWORD dwUnknown4,
2390 DWORD dwUnknown5);
2391
2392 DWORD
2393 NTAPI
2394 NtUserQueryInputContext(
2395 DWORD dwUnknown1,
2396 DWORD dwUnknown2);
2397
2398 DWORD
2399 NTAPI
2400 NtUserQuerySendMessage(
2401 DWORD Unknown0);
2402
2403 DWORD
2404 NTAPI
2405 NtUserQueryUserCounters(
2406 DWORD Unknown0,
2407 DWORD Unknown1,
2408 DWORD Unknown2,
2409 DWORD Unknown3,
2410 DWORD Unknown4);
2411
2412 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2413 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2414 #define QUERY_WINDOW_ACTIVE 0x02
2415 #define QUERY_WINDOW_FOCUS 0x03
2416 #define QUERY_WINDOW_ISHUNG 0x04
2417 #define QUERY_WINDOW_REAL_ID 0x05
2418 DWORD
2419 NTAPI
2420 NtUserQueryWindow(
2421 HWND hWnd,
2422 DWORD Index);
2423
2424 DWORD
2425 NTAPI
2426 NtUserRealInternalGetMessage(
2427 DWORD dwUnknown1,
2428 DWORD dwUnknown2,
2429 DWORD dwUnknown3,
2430 DWORD dwUnknown4,
2431 DWORD dwUnknown5,
2432 DWORD dwUnknown6);
2433
2434 DWORD
2435 NTAPI
2436 NtUserRealChildWindowFromPoint(
2437 DWORD Unknown0,
2438 DWORD Unknown1,
2439 DWORD Unknown2);
2440
2441 DWORD
2442 NTAPI
2443 NtUserRealWaitMessageEx(
2444 DWORD dwUnknown1,
2445 DWORD dwUnknown2);
2446
2447 BOOL
2448 NTAPI
2449 NtUserRedrawWindow
2450 (
2451 HWND hWnd,
2452 CONST RECT *lprcUpdate,
2453 HRGN hrgnUpdate,
2454 UINT flags
2455 );
2456
2457 RTL_ATOM
2458 NTAPI
2459 NtUserRegisterClassExWOW(
2460 WNDCLASSEXW* lpwcx,
2461 PUNICODE_STRING pustrClassName,
2462 PUNICODE_STRING pustrCNVersion,
2463 PCLSMENUNAME pClassMenuName,
2464 DWORD fnID,
2465 DWORD Flags,
2466 LPDWORD pWow);
2467
2468 BOOL
2469 NTAPI
2470 NtUserRegisterRawInputDevices(
2471 IN PCRAWINPUTDEVICE pRawInputDevices,
2472 IN UINT uiNumDevices,
2473 IN UINT cbSize);
2474
2475 BOOL
2476 NTAPI
2477 NtUserRegisterUserApiHook(
2478 PUNICODE_STRING m_dllname1,
2479 PUNICODE_STRING m_funname1,
2480 DWORD dwUnknown3,
2481 DWORD dwUnknown4);
2482
2483 BOOL
2484 NTAPI
2485 NtUserRegisterHotKey(HWND hWnd,
2486 int id,
2487 UINT fsModifiers,
2488 UINT vk);
2489
2490 DWORD
2491 NTAPI
2492 NtUserRegisterTasklist(
2493 DWORD Unknown0);
2494
2495 UINT NTAPI
2496 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
2497
2498 DWORD
2499 NTAPI
2500 NtUserRemoteConnect(
2501 DWORD dwUnknown1,
2502 DWORD dwUnknown2,
2503 DWORD dwUnknown3);
2504
2505 DWORD
2506 NTAPI
2507 NtUserRemoteRedrawRectangle(
2508 DWORD dwUnknown1,
2509 DWORD dwUnknown2,
2510 DWORD dwUnknown3,
2511 DWORD dwUnknown4);
2512
2513 DWORD
2514 NTAPI
2515 NtUserRemoteRedrawScreen(VOID);
2516
2517 DWORD
2518 NTAPI
2519 NtUserRemoteStopScreenUpdates(VOID);
2520
2521 HANDLE NTAPI
2522 NtUserRemoveProp(HWND hWnd, ATOM Atom);
2523
2524 DWORD
2525 NTAPI
2526 NtUserResolveDesktop(
2527 DWORD dwUnknown1,
2528 DWORD dwUnknown2,
2529 DWORD dwUnknown3,
2530 DWORD dwUnknown4);
2531
2532 DWORD
2533 NTAPI
2534 NtUserResolveDesktopForWOW(
2535 DWORD Unknown0);
2536
2537 BOOL
2538 NTAPI
2539 NtUserSBGetParms(
2540 HWND hwnd,
2541 int fnBar,
2542 PSBDATA pSBData,
2543 LPSCROLLINFO lpsi);
2544
2545 BOOL
2546 NTAPI
2547 NtUserScrollDC(
2548 HDC hDC,
2549 int dx,
2550 int dy,
2551 CONST RECT *lprcScroll,
2552 CONST RECT *lprcClip ,
2553 HRGN hrgnUpdate,
2554 LPRECT lprcUpdate);
2555
2556 DWORD NTAPI
2557 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
2558 const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
2559
2560 UINT
2561 NTAPI
2562 NtUserSendInput(
2563 UINT nInputs,
2564 LPINPUT pInput,
2565 INT cbSize);
2566
2567 HWND NTAPI
2568 NtUserSetActiveWindow(HWND Wnd);
2569
2570 DWORD
2571 NTAPI
2572 NtUserSetAppImeLevel(
2573 DWORD dwUnknown1,
2574 DWORD dwUnknown2);
2575
2576 HWND NTAPI
2577 NtUserSetCapture(HWND Wnd);
2578
2579 ULONG_PTR NTAPI
2580 NtUserSetClassLong(
2581 HWND hWnd,
2582 INT Offset,
2583 ULONG_PTR dwNewLong,
2584 BOOL Ansi );
2585
2586 WORD
2587 NTAPI
2588 NtUserSetClassWord(
2589 HWND hWnd,
2590 INT nIndex,
2591 WORD wNewWord);
2592
2593 HANDLE
2594 NTAPI
2595 NtUserSetClipboardData(
2596 UINT uFormat,
2597 HANDLE hMem,
2598 DWORD Unknown2);
2599
2600 HWND
2601 NTAPI
2602 NtUserSetClipboardViewer(
2603 HWND hWndNewViewer);
2604
2605 HPALETTE
2606 NTAPI
2607 NtUserSelectPalette(
2608 HDC hDC,
2609 HPALETTE hpal,
2610 BOOL ForceBackground
2611 );
2612
2613 DWORD
2614 NTAPI
2615 NtUserSetConsoleReserveKeys(
2616 DWORD Unknown0,
2617 DWORD Unknown1);
2618
2619 HCURSOR
2620 NTAPI
2621 NtUserSetCursor(
2622 HCURSOR hCursor);
2623
2624 BOOL
2625 NTAPI
2626 NtUserSetCursorContents(
2627 HANDLE Handle,
2628 PICONINFO IconInfo);
2629
2630 BOOL
2631 NTAPI
2632 NtUserSetCursorIconData(
2633 HANDLE Handle,
2634 PBOOL fIcon,
2635 POINT *Hotspot,
2636 HMODULE hModule,
2637 HRSRC hRsrc,
2638 HRSRC hGroupRsrc);
2639
2640 DWORD
2641 NTAPI
2642 NtUserSetDbgTag(
2643 DWORD Unknown0,
2644 DWORD Unknown1);
2645
2646 HWND
2647 NTAPI
2648 NtUserSetFocus(
2649 HWND hWnd);
2650
2651 DWORD
2652 NTAPI
2653 NtUserSetImeHotKey(
2654 DWORD Unknown0,
2655 DWORD Unknown1,
2656 DWORD Unknown2,
2657 DWORD Unknown3,
2658 DWORD Unknown4);
2659
2660 DWORD
2661 NTAPI
2662 NtUserSetImeInfoEx(
2663 DWORD dwUnknown1);
2664
2665 DWORD
2666 NTAPI
2667 NtUserSetImeOwnerWindow(
2668 DWORD Unknown0,
2669 DWORD Unknown1);
2670
2671 DWORD
2672 NTAPI
2673 NtUserSetInformationProcess(
2674 DWORD dwUnknown1,
2675 DWORD dwUnknown2,
2676 DWORD dwUnknown3,
2677 DWORD dwUnknown4);
2678
2679 NTSTATUS
2680 NTAPI
2681 NtUserSetInformationThread(
2682 IN HANDLE ThreadHandle,
2683 IN USERTHREADINFOCLASS ThreadInformationClass,
2684 IN PVOID ThreadInformation,
2685 IN ULONG ThreadInformationLength
2686 );
2687
2688 DWORD
2689 NTAPI
2690 NtUserSetInternalWindowPos(
2691 HWND hwnd,
2692 UINT showCmd,
2693 LPRECT rect,
2694 LPPOINT pt);
2695
2696 BOOL
2697 NTAPI
2698 NtUserSetKeyboardState(
2699 LPBYTE lpKeyState);
2700
2701 BOOL
2702 NTAPI
2703 NtUserSetLayeredWindowAttributes(
2704 HWND hwnd,
2705 COLORREF crKey,
2706 BYTE bAlpha,
2707 DWORD dwFlags);
2708
2709 BOOL
2710 NTAPI
2711 NtUserSetLogonNotifyWindow(
2712 HWND hWnd);
2713
2714 BOOL
2715 NTAPI
2716 NtUserSetObjectInformation(
2717 HANDLE hObject,
2718 DWORD nIndex,
2719 PVOID pvInformation,
2720 DWORD nLength);
2721
2722 HWND
2723 NTAPI
2724 NtUserSetParent(
2725 HWND hWndChild,
2726 HWND hWndNewParent);
2727
2728 BOOL
2729 NTAPI
2730 NtUserSetProcessWindowStation(
2731 HWINSTA hWindowStation);
2732
2733 BOOL NTAPI
2734 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2735
2736 DWORD
2737 NTAPI
2738 NtUserSetRipFlags(
2739 DWORD Unknown0,
2740 DWORD Unknown1);
2741
2742 DWORD
2743 NTAPI
2744 NtUserSetScrollInfo(
2745 HWND hwnd,
2746 int fnBar,
2747 LPCSCROLLINFO lpsi,
2748 BOOL bRedraw);
2749
2750 BOOL
2751 NTAPI
2752 NtUserSetShellWindowEx(
2753 HWND hwndShell,
2754 HWND hwndShellListView);
2755
2756 BOOL
2757 NTAPI
2758 NtUserSetSysColors(
2759 int cElements,
2760 IN CONST INT *lpaElements,
2761 IN CONST COLORREF *lpaRgbValues,
2762 FLONG Flags);
2763
2764 BOOL
2765 NTAPI
2766 NtUserSetSystemCursor(
2767 HCURSOR hcur,
2768 DWORD id);
2769
2770 BOOL
2771 NTAPI
2772 NtUserSetThreadDesktop(
2773 HDESK hDesktop);
2774
2775 DWORD
2776 NTAPI
2777 NtUserSetThreadState(
2778 DWORD Unknown0,
2779 DWORD Unknown1);
2780
2781 UINT_PTR
2782 NTAPI
2783 NtUserSetSystemTimer
2784 (
2785 HWND hWnd,
2786 UINT_PTR nIDEvent,
2787 UINT uElapse,
2788 TIMERPROC lpTimerFunc
2789 );
2790
2791 DWORD
2792 NTAPI
2793 NtUserSetThreadLayoutHandles(
2794 DWORD dwUnknown1,
2795 DWORD dwUnknown2);
2796
2797 UINT_PTR
2798 NTAPI
2799 NtUserSetTimer
2800 (
2801 HWND hWnd,
2802 UINT_PTR nIDEvent,
2803 UINT uElapse,
2804 TIMERPROC lpTimerFunc
2805 );
2806
2807 BOOL
2808 NTAPI
2809 NtUserSetWindowFNID(
2810 HWND hWnd,
2811 WORD fnID);
2812
2813 LONG
2814 NTAPI
2815 NtUserSetWindowLong(
2816 HWND hWnd,
2817 DWORD Index,
2818 LONG NewValue,
2819 BOOL Ansi);
2820
2821 BOOL
2822 NTAPI
2823 NtUserSetWindowPlacement(
2824 HWND hWnd,
2825 WINDOWPLACEMENT *lpwndpl);
2826
2827 BOOL
2828 NTAPI NtUserSetWindowPos(
2829 HWND hWnd,
2830 HWND hWndInsertAfter,
2831 int X,
2832 int Y,
2833 int cx,
2834 int cy,
2835 UINT uFlags
2836 );
2837
2838 INT
2839 NTAPI
2840 NtUserSetWindowRgn(
2841 HWND hWnd,
2842 HRGN hRgn,
2843 BOOL bRedraw);
2844
2845 HHOOK
2846 NTAPI
2847 NtUserSetWindowsHookAW(
2848 int idHook,
2849 HOOKPROC lpfn,
2850 BOOL Ansi);
2851
2852 HHOOK
2853 NTAPI
2854 NtUserSetWindowsHookEx(
2855 HINSTANCE Mod,
2856 PUNICODE_STRING ModuleName,
2857 DWORD ThreadId,
2858 int HookId,
2859 HOOKPROC HookProc,
2860 BOOL Ansi);
2861
2862 DWORD
2863 NTAPI
2864 NtUserSetWindowStationUser(
2865 DWORD Unknown0,
2866 DWORD Unknown1,
2867 DWORD Unknown2,
2868 DWORD Unknown3);
2869
2870 WORD NTAPI
2871 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
2872
2873 HWINEVENTHOOK
2874 NTAPI
2875 NtUserSetWinEventHook(
2876 UINT eventMin,
2877 UINT eventMax,
2878 HMODULE hmodWinEventProc,
2879 PUNICODE_STRING puString,
2880 WINEVENTPROC lpfnWinEventProc,
2881 DWORD idProcess,
2882 DWORD idThread,
2883 UINT dwflags);
2884
2885 BOOL
2886 NTAPI
2887 NtUserShowCaret(
2888 HWND hWnd);
2889
2890 BOOL
2891 NTAPI
2892 NtUserHideCaret(
2893 HWND hWnd);
2894
2895 DWORD
2896 NTAPI
2897 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
2898
2899 BOOL
2900 NTAPI
2901 NtUserShowWindow(
2902 HWND hWnd,
2903 LONG nCmdShow);
2904
2905 BOOL
2906 NTAPI
2907 NtUserShowWindowAsync(
2908 HWND hWnd,
2909 LONG nCmdShow);
2910
2911 BOOL
2912 NTAPI
2913 NtUserSoundSentry(VOID);
2914
2915 BOOL
2916 NTAPI
2917 NtUserSwitchDesktop(
2918 HDESK hDesktop);
2919
2920 BOOL
2921 NTAPI
2922 NtUserSystemParametersInfo(
2923 UINT uiAction,
2924 UINT uiParam,
2925 PVOID pvParam,
2926 UINT fWinIni);
2927
2928 DWORD
2929 NTAPI
2930 NtUserTestForInteractiveUser(
2931 DWORD dwUnknown1);
2932
2933 INT
2934 NTAPI
2935 NtUserToUnicodeEx(
2936 UINT wVirtKey,
2937 UINT wScanCode,
2938 PBYTE lpKeyState,
2939 LPWSTR pwszBuff,
2940 int cchBuff,
2941 UINT wFlags,
2942 HKL dwhkl );
2943
2944 BOOL
2945 NTAPI
2946 NtUserTrackMouseEvent(
2947 LPTRACKMOUSEEVENT lpEventTrack);
2948
2949 int
2950 NTAPI
2951 NtUserTranslateAccelerator(
2952 HWND Window,
2953 HACCEL Table,
2954 LPMSG Message);
2955
2956 BOOL
2957 NTAPI
2958 NtUserTranslateMessage(
2959 LPMSG lpMsg,
2960 UINT flags );
2961
2962 BOOL
2963 NTAPI
2964 NtUserUnhookWindowsHookEx(
2965 HHOOK Hook);
2966
2967 BOOL
2968 NTAPI
2969 NtUserUnhookWinEvent(
2970 HWINEVENTHOOK hWinEventHook);
2971
2972 BOOL
2973 NTAPI
2974 NtUserUnloadKeyboardLayout(
2975 HKL hKl);
2976
2977 BOOL
2978 NTAPI
2979 NtUserUnlockWindowStation(
2980 HWINSTA hWindowStation);
2981
2982 BOOL
2983 NTAPI
2984 NtUserUnregisterClass(
2985 PUNICODE_STRING ClassNameOrAtom,
2986 HINSTANCE hInstance,
2987 PCLSMENUNAME pClassMenuName);
2988
2989 BOOL
2990 NTAPI
2991 NtUserUnregisterHotKey(HWND hWnd,
2992 int id);
2993
2994 BOOL
2995 NTAPI
2996 NtUserUnregisterUserApiHook(VOID);
2997
2998 DWORD
2999 NTAPI
3000 NtUserUpdateInputContext(
3001 DWORD Unknown0,
3002 DWORD Unknown1,
3003 DWORD Unknown2);
3004
3005 DWORD
3006 NTAPI
3007 NtUserUpdateInstance(
3008 DWORD Unknown0,
3009 DWORD Unknown1,
3010 DWORD Unknown2);
3011
3012 BOOL
3013 NTAPI
3014 NtUserUpdateLayeredWindow(
3015 HWND hwnd,
3016 HDC hdcDst,
3017 POINT *pptDst,
3018 SIZE *psize,
3019 HDC hdcSrc,
3020 POINT *pptSrc,
3021 COLORREF crKey,
3022 BLENDFUNCTION *pblend,
3023 DWORD dwFlags,
3024 RECT *prcDirty);
3025
3026 BOOL
3027 NTAPI
3028 NtUserUpdatePerUserSystemParameters(
3029 DWORD dwReserved,
3030 BOOL bEnable);
3031
3032 BOOL
3033 NTAPI
3034 NtUserUserHandleGrantAccess(
3035 IN HANDLE hUserHandle,
3036 IN HANDLE hJob,
3037 IN BOOL bGrant);
3038
3039 BOOL
3040 NTAPI
3041 NtUserValidateHandleSecure(
3042 HANDLE hHdl,
3043 BOOL Restricted);
3044
3045 BOOL
3046 NTAPI
3047 NtUserValidateRect(
3048 HWND hWnd,
3049 CONST RECT *lpRect);
3050
3051 BOOL
3052 APIENTRY
3053 NtUserValidateTimerCallback(
3054 HWND hWnd,
3055 WPARAM wParam,
3056 LPARAM lParam);
3057
3058 DWORD
3059 NTAPI
3060 NtUserVkKeyScanEx(
3061 WCHAR wChar,
3062 HKL KeyboardLayout,
3063 BOOL bUsehHK);
3064
3065 DWORD
3066 NTAPI
3067 NtUserWaitForInputIdle(
3068 IN HANDLE hProcess,
3069 IN DWORD dwMilliseconds,
3070 IN BOOL Unknown2); // Always FALSE
3071
3072 DWORD
3073 NTAPI
3074 NtUserWaitForMsgAndEvent(
3075 DWORD Unknown0);
3076
3077 BOOL
3078 NTAPI
3079 NtUserWaitMessage(VOID);
3080
3081 DWORD
3082 NTAPI
3083 NtUserWin32PoolAllocationStats(
3084 DWORD Unknown0,
3085 DWORD Unknown1,
3086 DWORD Unknown2,
3087 DWORD Unknown3,
3088 DWORD Unknown4,
3089 DWORD Unknown5);
3090
3091 HWND
3092 NTAPI
3093 NtUserWindowFromPhysicalPoint(
3094 POINT Point);
3095
3096 HWND
3097 NTAPI
3098 NtUserWindowFromPoint(
3099 LONG X,
3100 LONG Y);
3101
3102 DWORD
3103 NTAPI
3104 NtUserYieldTask(VOID);
3105
3106 /* lParam of DDE messages */
3107 typedef struct tagKMDDEEXECUTEDATA
3108 {
3109 HWND Sender;
3110 HGLOBAL ClientMem;
3111 /* BYTE Data[DataSize] */
3112 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
3113
3114 typedef struct tagKMDDELPARAM
3115 {
3116 BOOL Packed;
3117 union
3118 {
3119 struct
3120 {
3121 UINT_PTR uiLo;
3122 UINT_PTR uiHi;
3123 } Packed;
3124 LPARAM Unpacked;
3125 } Value;
3126 } KMDDELPARAM, *PKMDDELPARAM;
3127
3128
3129
3130
3131
3132 /* NtUserBad
3133 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
3134 */
3135
3136 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
3137 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
3138 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
3139 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
3140 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
3141 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
3142 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
3143 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
3144 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
3145 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
3146 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
3147 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
3148 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
3149 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
3150 #define MSQ_STATE_CAPTURE 0x1
3151 #define MSQ_STATE_ACTIVE 0x2
3152 #define MSQ_STATE_FOCUS 0x3
3153 #define MSQ_STATE_MENUOWNER 0x4
3154 #define MSQ_STATE_MOVESIZE 0x5
3155 #define MSQ_STATE_CARET 0x6
3156 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
3157 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
3158 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
3159
3160 DWORD
3161 NTAPI
3162 NtUserBuildMenuItemList(
3163 HMENU hMenu,
3164 PVOID Buffer,
3165 ULONG nBufSize,
3166 DWORD Reserved);
3167
3168
3169 /* Should be done in usermode and use NtUserGetCPD. */
3170 ULONG_PTR
3171 NTAPI
3172 NtUserGetClassLong(HWND hWnd, INT Offset, BOOL Ansi);
3173
3174 UINT
3175 NTAPI
3176 NtUserGetMenuDefaultItem(
3177 HMENU hMenu,
3178 UINT fByPos,
3179 UINT gmdiFlags);
3180
3181 BOOL
3182 NTAPI
3183 NtUserGetLastInputInfo(
3184 PLASTINPUTINFO plii);
3185
3186 BOOL
3187 NTAPI
3188 NtUserGetMinMaxInfo(
3189 HWND hwnd,
3190 MINMAXINFO *MinMaxInfo,
3191 BOOL SendMessage);
3192
3193 BOOL
3194 NTAPI
3195 NtUserGetMonitorInfo(
3196 IN HMONITOR hMonitor,
3197 OUT LPMONITORINFO pMonitorInfo);
3198
3199 /* Should be done in usermode */
3200
3201 /* (other FocusedItem values give the position of the focused item) */
3202 #define NO_SELECTED_ITEM 0xffff
3203
3204 typedef struct tagROSMENUINFO
3205 {
3206 /* ----------- MENUINFO ----------- */
3207 DWORD cbSize;
3208 DWORD fMask;
3209 DWORD dwStyle;
3210 UINT cyMax;
3211 HBRUSH hbrBack;
3212 DWORD dwContextHelpID;
3213 ULONG_PTR dwMenuData;
3214 /* ----------- Extra ----------- */
3215 HMENU Self; /* Handle of this menu */
3216 WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
3217 UINT FocusedItem; /* Currently focused item */
3218 UINT MenuItemCount; /* Number of items in the menu */
3219 HWND Wnd; /* Window containing the menu */
3220 WORD Width; /* Width of the whole menu */
3221 WORD Height; /* Height of the whole menu */
3222 HWND WndOwner; /* window receiving the messages for ownerdraw */
3223 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
3224 SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
3225 } ROSMENUINFO, *PROSMENUINFO;
3226
3227 BOOL
3228 NTAPI
3229 NtUserMenuInfo(
3230 HMENU hmenu,
3231 PROSMENUINFO lpmi,
3232 BOOL fsog
3233 );
3234
3235
3236
3237 typedef struct tagROSMENUITEMINFO
3238 {
3239 /* ----------- MENUITEMINFOW ----------- */
3240 UINT cbSize;
3241 UINT fMask;
3242 UINT fType;
3243 UINT fState;
3244 UINT wID;
3245 HMENU hSubMenu;
3246 HBITMAP hbmpChecked;
3247 HBITMAP hbmpUnchecked;
3248 DWORD dwItemData;
3249 LPWSTR dwTypeData;
3250 UINT cch;
3251 HBITMAP hbmpItem;
3252 /* ----------- Extra ----------- */
3253 RECT Rect; /* Item area (relative to menu window) */
3254 UINT dxTab; /* X position of text after Tab */
3255 LPWSTR lpstr; /* Copy of the text pointer in MenuItem->Text */
3256 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
3257
3258 BOOL
3259 NTAPI
3260 NtUserMenuItemInfo(
3261 HMENU hMenu,
3262 UINT uItem,
3263 BOOL fByPosition,
3264 PROSMENUITEMINFO lpmii,
3265 BOOL fsog
3266 );
3267
3268 HMONITOR
3269 NTAPI
3270 NtUserMonitorFromPoint(
3271 IN POINT point,
3272 IN DWORD dwFlags);
3273
3274 HMONITOR
3275 NTAPI
3276 NtUserMonitorFromRect(
3277 IN LPCRECT pRect,
3278 IN DWORD dwFlags);
3279
3280 HMONITOR
3281 NTAPI
3282 NtUserMonitorFromWindow(
3283 IN HWND hWnd,
3284 IN DWORD dwFlags);
3285
3286
3287 typedef struct tagNTUSERSENDMESSAGEINFO
3288 {
3289 BOOL HandledByKernel;
3290 BOOL Ansi;
3291 WNDPROC Proc;
3292 } NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO;
3293
3294 /* use NtUserMessageCall */
3295 LRESULT NTAPI
3296 NtUserSendMessage(HWND hWnd,
3297 UINT Msg,
3298 WPARAM wParam,
3299 LPARAM lParam,
3300 PNTUSERSENDMESSAGEINFO Info);
3301
3302 /* use NtUserMessageCall */
3303 LRESULT NTAPI
3304 NtUserSendMessageTimeout(HWND hWnd,
3305 UINT Msg,
3306 WPARAM wParam,
3307 LPARAM lParam,
3308 UINT uFlags,
3309 UINT uTimeout,
3310 ULONG_PTR *uResult,
3311 PNTUSERSENDMESSAGEINFO Info);
3312
3313 typedef struct _SETSCROLLBARINFO
3314 {
3315 int nTrackPos;
3316 int reserved;
3317 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
3318 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3319
3320 BOOL
3321 NTAPI
3322 NtUserSetScrollBarInfo(
3323 HWND hwnd,
3324 LONG idObject,
3325 SETSCROLLBARINFO *info);
3326
3327
3328
3329 #endif /* __WIN32K_NTUSER_H */
3330
3331 /* EOF */