include: Import IAccessible2 headers.
[wine.git] / include / ntuser.h
blob0904aadff0f0b90232ff0137a51427a01f6328b3
1 /*
2 * Copyright 2021 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _NTUSER_
20 #define _NTUSER_
22 #include <winuser.h>
23 #include <wingdi.h>
24 #include <winternl.h>
26 /* KernelCallbackTable codes, not compatible with Windows */
27 enum
29 /* user32 callbacks */
30 NtUserCallEnumDisplayMonitor,
31 NtUserCallSendAsyncCallback,
32 NtUserCallWinEventHook,
33 NtUserCallWinProc,
34 NtUserCallWindowsHook,
35 NtUserCopyImage,
36 NtUserDrawText,
37 NtUserFreeCachedClipboardData,
38 NtUserLoadDriver,
39 NtUserLoadImage,
40 NtUserRegisterBuiltinClasses,
41 NtUserRenderSynthesizedFormat,
42 /* win16 hooks */
43 NtUserCallFreeIcon,
44 NtUserThunkLock,
45 /* Vulkan support */
46 NtUserCallVulkanDebugReportCallback,
47 NtUserCallVulkanDebugUtilsCallback,
48 /* Driver-specific callbacks */
49 NtUserDriverCallbackFirst,
50 NtUserDriverCallbackLast = NtUserDriverCallbackFirst + 10,
51 NtUserCallCount
54 /* TEB thread info, not compatible with Windows */
55 struct ntuser_thread_info
57 void *driver_data; /* driver-specific data */
58 DWORD message_time; /* value for GetMessageTime */
59 DWORD message_pos; /* value for GetMessagePos */
60 ULONG_PTR message_extra; /* value for GetMessageExtraInfo */
61 HWND top_window; /* desktop window */
62 HWND msg_window; /* HWND_MESSAGE parent window */
65 static inline struct ntuser_thread_info *NtUserGetThreadInfo(void)
67 return (struct ntuser_thread_info *)NtCurrentTeb()->Win32ClientInfo;
70 /* NtUserCallEnumDisplayMonitor params */
71 struct enum_display_monitor_params
73 MONITORENUMPROC proc;
74 HMONITOR monitor;
75 HDC hdc;
76 RECT rect;
77 LPARAM lparam;
80 /* NtUserCallSendAsyncCallback params */
81 struct send_async_params
83 SENDASYNCPROC callback;
84 HWND hwnd;
85 UINT msg;
86 ULONG_PTR data;
87 LRESULT result;
90 /* NtUserCallWinEventHook params */
91 struct win_event_hook_params
93 DWORD event;
94 HWND hwnd;
95 LONG object_id;
96 LONG child_id;
97 void *handle;
98 DWORD tid;
99 DWORD time;
100 WINEVENTPROC proc;
101 WCHAR module[MAX_PATH];
104 /* type of message-sending functions that need special WM_CHAR handling */
105 enum wm_char_mapping
107 WMCHAR_MAP_POSTMESSAGE,
108 WMCHAR_MAP_SENDMESSAGE,
109 WMCHAR_MAP_SENDMESSAGETIMEOUT,
110 WMCHAR_MAP_RECVMESSAGE,
111 WMCHAR_MAP_DISPATCHMESSAGE,
112 WMCHAR_MAP_CALLWINDOWPROC,
113 WMCHAR_MAP_COUNT,
114 WMCHAR_MAP_NOMAPPING = WMCHAR_MAP_COUNT
117 /* NtUserCallWindowProc params */
118 struct win_proc_params
120 WNDPROC func;
121 HWND hwnd;
122 UINT msg;
123 WPARAM wparam;
124 LPARAM lparam;
125 LRESULT *result;
126 BOOL ansi;
127 BOOL ansi_dst;
128 BOOL is_dialog;
129 BOOL needs_unpack;
130 enum wm_char_mapping mapping;
131 DPI_AWARENESS_CONTEXT dpi_awareness;
132 WNDPROC procA;
133 WNDPROC procW;
136 /* NtUserCallWindowsHook params */
137 struct win_hook_params
139 void *proc;
140 void *handle;
141 DWORD pid;
142 DWORD tid;
143 int id;
144 int code;
145 WPARAM wparam;
146 LPARAM lparam;
147 BOOL prev_unicode;
148 BOOL next_unicode;
149 WCHAR module[MAX_PATH];
152 /* NtUserCopyImage params */
153 struct copy_image_params
155 HANDLE hwnd;
156 UINT type;
157 INT dx;
158 INT dy;
159 UINT flags;
162 /* NtUserDrawText params */
163 struct draw_text_params
165 HDC hdc;
166 int count;
167 RECT *rect; /* FIXME: Use NtCallbackReturn instead */
168 UINT flags;
169 WCHAR str[1];
172 /* NtUserFreeCachedClipboardData params */
173 struct free_cached_data_params
175 UINT format;
176 HANDLE handle;
179 /* NtUserLoadImage params */
180 struct load_image_params
182 HINSTANCE hinst;
183 const WCHAR *name;
184 UINT type;
185 INT dx;
186 INT dy;
187 UINT flags;
190 /* NtUserRenderSynthesizedFormat params */
191 struct render_synthesized_format_params
193 UINT format;
194 UINT from;
197 /* process DPI awareness contexts */
198 #define NTUSER_DPI_UNAWARE 0x00006010
199 #define NTUSER_DPI_SYSTEM_AWARE 0x00006011
200 #define NTUSER_DPI_PER_MONITOR_AWARE 0x00000012
201 #define NTUSER_DPI_PER_MONITOR_AWARE_V2 0x00000022
202 #define NTUSER_DPI_PER_UNAWARE_GDISCALED 0x40006010
204 /* NtUserMessageCall codes */
205 enum
207 NtUserPopupMenuWndProc = 0x029c,
208 NtUserDesktopWindowProc = 0x029d,
209 NtUserDefWindowProc = 0x029e,
210 NtUserCallWindowProc = 0x02ab,
211 NtUserSendMessage = 0x02b1,
212 NtUserSendMessageTimeout = 0x02b3,
213 NtUserSendNotifyMessage = 0x02b7,
214 NtUserSendMessageCallback = 0x02b8,
215 /* Wine-specific exports */
216 NtUserClipboardWindowProc = 0x0300,
217 NtUserSpyEnter = 0x0301,
218 NtUserSpyExit = 0x0302,
221 /* NtUserThunkedMenuItemInfo codes */
222 enum
224 NtUserSetMenuItemInfo,
225 NtUserInsertMenuItem,
226 /* Wine extensions */
227 NtUserGetMenuState,
230 struct send_message_timeout_params
232 UINT flags;
233 UINT timeout;
234 DWORD_PTR result;
237 struct send_message_callback_params
239 SENDASYNCPROC callback;
240 ULONG_PTR data;
243 /* color index used to retrieve system 55aa brush */
244 #define COLOR_55AA_BRUSH 0x100
246 /* user object types */
247 #define NTUSER_OBJ_WINDOW 0x01
248 #define NTUSER_OBJ_MENU 0x02
249 #define NTUSER_OBJ_ICON 0x03
250 #define NTUSER_OBJ_WINPOS 0x04
251 #define NTUSER_OBJ_ACCEL 0x08
252 #define NTUSER_OBJ_HOOK 0x0f
254 /* NtUserScrollWindowEx flag */
255 #define SW_NODCCACHE 0x8000
257 /* NtUserInitializeClientPfnArrays parameter, not compatible with Windows */
258 struct user_client_procs
260 WNDPROC pButtonWndProc;
261 WNDPROC pComboWndProc;
262 WNDPROC pDefWindowProc;
263 WNDPROC pDefDlgProc;
264 WNDPROC pEditWndProc;
265 WNDPROC pListBoxWndProc;
266 WNDPROC pMDIClientWndProc;
267 WNDPROC pScrollBarWndProc;
268 WNDPROC pStaticWndProc;
269 WNDPROC pImeWndProc;
270 WNDPROC pDesktopWndProc;
271 WNDPROC pIconTitleWndProc;
272 WNDPROC pPopupMenuWndProc;
273 WNDPROC pMessageWndProc;
276 /* NtUserSetCursorIconData parameter, not compatible with Windows */
277 struct cursoricon_frame
279 UINT width; /* frame-specific width */
280 UINT height; /* frame-specific height */
281 HBITMAP color; /* color bitmap */
282 HBITMAP alpha; /* pre-multiplied alpha bitmap for 32-bpp icons */
283 HBITMAP mask; /* mask bitmap (followed by color for 1-bpp icons) */
284 POINT hotspot;
287 struct cursoricon_desc
289 UINT flags;
290 UINT num_steps;
291 UINT num_frames;
292 UINT delay;
293 struct cursoricon_frame *frames;
294 DWORD *frame_seq;
295 DWORD *frame_rates;
296 HRSRC rsrc;
299 struct client_menu_name
301 char *nameA;
302 WCHAR *nameW;
303 UNICODE_STRING *nameUS;
306 /* NtUserGetClipboardData params, not compatible with Windows */
307 struct get_clipboard_params
309 void *data;
310 size_t size;
311 size_t data_size;
312 UINT seqno;
313 BOOL data_only;
316 /* NtUserSetClipboardData params, not compatible with Windows */
317 struct set_clipboard_params
319 void *data;
320 size_t size;
321 BOOL cache_only;
322 UINT seqno;
325 /* internal messages codes */
326 enum wine_internal_message
328 WM_WINE_DESTROYWINDOW = 0x80000000,
329 WM_WINE_SETWINDOWPOS,
330 WM_WINE_SHOWWINDOW,
331 WM_WINE_SETPARENT,
332 WM_WINE_SETWINDOWLONG,
333 WM_WINE_SETSTYLE,
334 WM_WINE_SETACTIVEWINDOW,
335 WM_WINE_KEYBOARD_LL_HOOK,
336 WM_WINE_MOUSE_LL_HOOK,
337 WM_WINE_CLIPCURSOR,
338 WM_WINE_UPDATEWINDOWSTATE,
339 WM_WINE_FIRST_DRIVER_MSG = 0x80001000, /* range of messages reserved for the USER driver */
340 WM_WINE_LAST_DRIVER_MSG = 0x80001fff
343 /* the various structures that can be sent in messages, in platform-independent layout */
344 struct packed_CREATESTRUCTW
346 ULONGLONG lpCreateParams;
347 ULONGLONG hInstance;
348 UINT hMenu;
349 DWORD __pad1;
350 UINT hwndParent;
351 DWORD __pad2;
352 INT cy;
353 INT cx;
354 INT y;
355 INT x;
356 LONG style;
357 ULONGLONG lpszName;
358 ULONGLONG lpszClass;
359 DWORD dwExStyle;
360 DWORD __pad3;
363 struct packed_DRAWITEMSTRUCT
365 UINT CtlType;
366 UINT CtlID;
367 UINT itemID;
368 UINT itemAction;
369 UINT itemState;
370 UINT hwndItem;
371 DWORD __pad1;
372 UINT hDC;
373 DWORD __pad2;
374 RECT rcItem;
375 ULONGLONG itemData;
378 struct packed_MEASUREITEMSTRUCT
380 UINT CtlType;
381 UINT CtlID;
382 UINT itemID;
383 UINT itemWidth;
384 UINT itemHeight;
385 ULONGLONG itemData;
388 struct packed_DELETEITEMSTRUCT
390 UINT CtlType;
391 UINT CtlID;
392 UINT itemID;
393 UINT hwndItem;
394 DWORD __pad;
395 ULONGLONG itemData;
398 struct packed_COMPAREITEMSTRUCT
400 UINT CtlType;
401 UINT CtlID;
402 UINT hwndItem;
403 DWORD __pad1;
404 UINT itemID1;
405 ULONGLONG itemData1;
406 UINT itemID2;
407 ULONGLONG itemData2;
408 DWORD dwLocaleId;
409 DWORD __pad2;
412 struct packed_WINDOWPOS
414 UINT hwnd;
415 DWORD __pad1;
416 UINT hwndInsertAfter;
417 DWORD __pad2;
418 INT x;
419 INT y;
420 INT cx;
421 INT cy;
422 UINT flags;
423 DWORD __pad3;
426 struct packed_COPYDATASTRUCT
428 ULONGLONG dwData;
429 DWORD cbData;
430 ULONGLONG lpData;
433 struct packed_HELPINFO
435 UINT cbSize;
436 INT iContextType;
437 INT iCtrlId;
438 UINT hItemHandle;
439 DWORD __pad;
440 ULONGLONG dwContextId;
441 POINT MousePos;
444 struct packed_NCCALCSIZE_PARAMS
446 RECT rgrc[3];
447 ULONGLONG __pad1;
448 UINT hwnd;
449 DWORD __pad2;
450 UINT hwndInsertAfter;
451 DWORD __pad3;
452 INT x;
453 INT y;
454 INT cx;
455 INT cy;
456 UINT flags;
457 DWORD __pad4;
460 struct packed_MSG
462 UINT hwnd;
463 DWORD __pad1;
464 UINT message;
465 ULONGLONG wParam;
466 ULONGLONG lParam;
467 DWORD time;
468 POINT pt;
469 DWORD __pad2;
472 struct packed_MDINEXTMENU
474 UINT hmenuIn;
475 DWORD __pad1;
476 UINT hmenuNext;
477 DWORD __pad2;
478 UINT hwndNext;
479 DWORD __pad3;
482 struct packed_MDICREATESTRUCTW
484 ULONGLONG szClass;
485 ULONGLONG szTitle;
486 ULONGLONG hOwner;
487 INT x;
488 INT y;
489 INT cx;
490 INT cy;
491 DWORD style;
492 ULONGLONG lParam;
496 HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags );
497 BOOL WINAPI NtUserAddClipboardFormatListener( HWND hwnd );
498 BOOL WINAPI NtUserAttachThreadInput( DWORD from, DWORD to, BOOL attach );
499 HDC WINAPI NtUserBeginPaint( HWND hwnd, PAINTSTRUCT *ps );
500 NTSTATUS WINAPI NtUserBuildHwndList( HDESK desktop, ULONG unk2, ULONG unk3, ULONG unk4,
501 ULONG thread_id, ULONG count, HWND *buffer, ULONG *size );
502 ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code );
503 ULONG_PTR WINAPI NtUserCallHwndParam( HWND hwnd, DWORD_PTR param, DWORD code );
504 LRESULT WINAPI NtUserCallNextHookEx( HHOOK hhook, INT code, WPARAM wparam, LPARAM lparam );
505 BOOL WINAPI NtUserCallMsgFilter( MSG *msg, INT code );
506 ULONG_PTR WINAPI NtUserCallNoParam( ULONG code );
507 ULONG_PTR WINAPI NtUserCallOneParam( ULONG_PTR arg, ULONG code );
508 ULONG_PTR WINAPI NtUserCallTwoParam( ULONG_PTR arg1, ULONG_PTR arg2, ULONG code );
509 BOOL WINAPI NtUserChangeClipboardChain( HWND hwnd, HWND next );
510 LONG WINAPI NtUserChangeDisplaySettings( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd,
511 DWORD flags, void *lparam );
512 DWORD WINAPI NtUserCheckMenuItem( HMENU handle, UINT id, UINT flags );
513 HWND WINAPI NtUserChildWindowFromPointEx( HWND parent, LONG x, LONG y, UINT flags );
514 BOOL WINAPI NtUserClipCursor( const RECT *rect );
515 BOOL WINAPI NtUserCloseClipboard(void);
516 BOOL WINAPI NtUserCloseDesktop( HDESK handle );
517 BOOL WINAPI NtUserCloseWindowStation( HWINSTA handle );
518 INT WINAPI NtUserCopyAcceleratorTable( HACCEL src, ACCEL *dst, INT count );
519 INT WINAPI NtUserCountClipboardFormats(void);
520 HACCEL WINAPI NtUserCreateAcceleratorTable( ACCEL *table, INT count );
521 BOOL WINAPI NtUserCreateCaret( HWND hwnd, HBITMAP bitmap, int width, int height );
522 HDESK WINAPI NtUserCreateDesktopEx( OBJECT_ATTRIBUTES *attr, UNICODE_STRING *device,
523 DEVMODEW *devmode, DWORD flags, ACCESS_MASK access,
524 ULONG heap_size );
525 HWND WINAPI NtUserCreateWindowEx( DWORD ex_style, UNICODE_STRING *class_name,
526 UNICODE_STRING *version, UNICODE_STRING *window_name,
527 DWORD style, INT x, INT y, INT cx, INT cy,
528 HWND parent, HMENU menu, HINSTANCE instance, void *params,
529 DWORD flags, CBT_CREATEWNDW *cbtc, DWORD unk, BOOL ansi );
530 HWINSTA WINAPI NtUserCreateWindowStation( OBJECT_ATTRIBUTES *attr, ACCESS_MASK mask, ULONG arg3,
531 ULONG arg4, ULONG arg5, ULONG arg6, ULONG arg7 );
532 HDWP WINAPI NtUserDeferWindowPosAndBand( HDWP hdwp, HWND hwnd, HWND after, INT x, INT y,
533 INT cx, INT cy, UINT flags, UINT unk1, UINT unk2 );
534 BOOL WINAPI NtUserDeleteMenu( HMENU menu, UINT id, UINT flags );
535 BOOL WINAPI NtUserDestroyAcceleratorTable( HACCEL handle );
536 BOOL WINAPI NtUserDestroyCursor( HCURSOR cursor, ULONG arg );
537 BOOL WINAPI NtUserDestroyMenu( HMENU menu );
538 BOOL WINAPI NtUserDestroyWindow( HWND hwnd );
539 LRESULT WINAPI NtUserDispatchMessage( const MSG *msg );
540 BOOL WINAPI NtUserDragDetect( HWND hwnd, int x, int y );
541 BOOL WINAPI NtUserDrawIconEx( HDC hdc, INT x0, INT y0, HICON icon, INT width,
542 INT height, UINT istep, HBRUSH hbr, UINT flags );
543 DWORD WINAPI NtUserDrawMenuBarTemp( HWND hwnd, HDC hdc, RECT *rect, HMENU handle, HFONT font );
544 BOOL WINAPI NtUserEmptyClipboard(void);
545 BOOL WINAPI NtUserEnableMenuItem( HMENU handle, UINT id, UINT flags );
546 BOOL WINAPI NtUserEndDeferWindowPosEx( HDWP hdwp, BOOL async );
547 BOOL WINAPI NtUserEndPaint( HWND hwnd, const PAINTSTRUCT *ps );
548 NTSTATUS WINAPI NtUserEnumDisplayDevices( UNICODE_STRING *device, DWORD index,
549 DISPLAY_DEVICEW *info, DWORD flags );
550 BOOL WINAPI NtUserEnumDisplayMonitors( HDC hdc, RECT *rect, MONITORENUMPROC proc, LPARAM lp );
551 BOOL WINAPI NtUserEnumDisplaySettings( UNICODE_STRING *device, DWORD mode,
552 DEVMODEW *dev_mode, DWORD flags );
553 INT WINAPI NtUserExcludeUpdateRgn( HDC hdc, HWND hwnd );
554 HICON WINAPI NtUserFindExistingCursorIcon( UNICODE_STRING *module, UNICODE_STRING *res_name,
555 void *desc );
556 HWND WINAPI NtUserFindWindowEx( HWND parent, HWND child, UNICODE_STRING *class,
557 UNICODE_STRING *title, ULONG unk );
558 BOOL WINAPI NtUserFlashWindowEx( FLASHWINFO *info );
559 HWND WINAPI NtUserGetAncestor( HWND hwnd, UINT type );
560 SHORT WINAPI NtUserGetAsyncKeyState( INT key );
561 ULONG WINAPI NtUserGetAtomName( ATOM atom, UNICODE_STRING *name );
562 UINT WINAPI NtUserGetCaretBlinkTime(void);
563 BOOL WINAPI NtUserGetCaretPos( POINT *point );
564 ATOM WINAPI NtUserGetClassInfoEx( HINSTANCE instance, UNICODE_STRING *name, WNDCLASSEXW *wc,
565 struct client_menu_name *menu_name, BOOL ansi );
566 INT WINAPI NtUserGetClassName( HWND hwnd, BOOL real, UNICODE_STRING *name );
567 HANDLE WINAPI NtUserGetClipboardData( UINT format, struct get_clipboard_params *params );
568 INT WINAPI NtUserGetClipboardFormatName( UINT format, WCHAR *buffer, INT maxlen );
569 HWND WINAPI NtUserGetClipboardOwner(void);
570 DWORD WINAPI NtUserGetClipboardSequenceNumber(void);
571 HWND WINAPI NtUserGetClipboardViewer(void);
572 HCURSOR WINAPI NtUserGetCursor(void);
573 HCURSOR WINAPI NtUserGetCursorFrameInfo( HCURSOR hCursor, DWORD istep, DWORD *rate_jiffies,
574 DWORD *num_steps );
575 BOOL WINAPI NtUserGetCursorInfo( CURSORINFO *info );
576 HDC WINAPI NtUserGetDCEx( HWND hwnd, HRGN clip_rgn, DWORD flags );
577 LONG WINAPI NtUserGetDisplayConfigBufferSizes( UINT32 flags, UINT32 *num_path_info,
578 UINT32 *num_mode_info );
579 UINT WINAPI NtUserGetDoubleClickTime(void);
580 BOOL WINAPI NtUserGetDpiForMonitor( HMONITOR monitor, UINT type, UINT *x, UINT *y );
581 HWND WINAPI NtUserGetForegroundWindow(void);
582 BOOL WINAPI NtUserGetGUIThreadInfo( DWORD id, GUITHREADINFO *info );
583 BOOL WINAPI NtUserGetIconInfo( HICON icon, ICONINFO *info, UNICODE_STRING *module,
584 UNICODE_STRING *res_name, DWORD *bpp, LONG unk );
585 BOOL WINAPI NtUserGetIconSize( HICON handle, UINT step, LONG *width, LONG *height );
586 INT WINAPI NtUserGetKeyNameText( LONG lparam, WCHAR *buffer, INT size );
587 SHORT WINAPI NtUserGetKeyState( INT vkey );
588 HKL WINAPI NtUserGetKeyboardLayout( DWORD thread_id );
589 UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts );
590 BOOL WINAPI NtUserGetKeyboardLayoutName( WCHAR *name );
591 BOOL WINAPI NtUserGetKeyboardState( BYTE *state );
592 BOOL WINAPI NtUserGetLayeredWindowAttributes( HWND hwnd, COLORREF *key, BYTE *alpha, DWORD *flags );
593 BOOL WINAPI NtUserGetMenuItemRect( HWND hwnd, HMENU menu, UINT item, RECT *rect );
594 BOOL WINAPI NtUserGetMessage( MSG *msg, HWND hwnd, UINT first, UINT last );
595 int WINAPI NtUserGetMouseMovePointsEx( UINT size, MOUSEMOVEPOINT *ptin, MOUSEMOVEPOINT *ptout,
596 int count, DWORD resolution );
597 BOOL WINAPI NtUserGetObjectInformation( HANDLE handle, INT index, void *info,
598 DWORD len, DWORD *needed );
599 HWND WINAPI NtUserGetOpenClipboardWindow(void);
600 INT WINAPI NtUserGetPriorityClipboardFormat( UINT *list, INT count );
601 HWINSTA WINAPI NtUserGetProcessWindowStation(void);
602 HANDLE WINAPI NtUserGetProp( HWND hwnd, const WCHAR *str );
603 ULONG WINAPI NtUserGetProcessDpiAwarenessContext( HANDLE process );
604 DWORD WINAPI NtUserGetQueueStatus( UINT flags );
605 ULONG WINAPI NtUserGetSystemDpiForProcess( HANDLE process );
606 HMENU WINAPI NtUserGetSystemMenu( HWND hwnd, BOOL revert );
607 HDESK WINAPI NtUserGetThreadDesktop( DWORD thread );
608 INT WINAPI NtUserGetUpdateRgn( HWND hwnd, HRGN hrgn, BOOL erase );
609 BOOL WINAPI NtUserGetUpdatedClipboardFormats( UINT *formats, UINT size, UINT *out_size );
610 BOOL WINAPI NtUserGetUpdateRect( HWND hwnd, RECT *rect, BOOL erase );
611 BOOL WINAPI NtUserGetWindowPlacement( HWND hwnd, WINDOWPLACEMENT *placement );
612 int WINAPI NtUserGetWindowRgnEx( HWND hwnd, HRGN hrgn, UINT unk );
613 BOOL WINAPI NtUserHideCaret( HWND hwnd );
614 NTSTATUS WINAPI NtUserInitializeClientPfnArrays( const struct user_client_procs *client_procsA,
615 const struct user_client_procs *client_procsW,
616 const void *client_workers, HINSTANCE user_module );
617 HICON WINAPI NtUserInternalGetWindowIcon( HWND hwnd, UINT type );
618 INT WINAPI NtUserInternalGetWindowText( HWND hwnd, WCHAR *text, INT count );
619 BOOL WINAPI NtUserIsClipboardFormatAvailable( UINT format );
620 BOOL WINAPI NtUserInvalidateRect( HWND hwnd, const RECT *rect, BOOL erase );
621 BOOL WINAPI NtUserInvalidateRgn( HWND hwnd, HRGN hrgn, BOOL erase );
622 BOOL WINAPI NtUserKillTimer( HWND hwnd, UINT_PTR id );
623 BOOL WINAPI NtUserLockWindowUpdate( HWND hwnd );
624 UINT WINAPI NtUserMapVirtualKeyEx( UINT code, UINT type, HKL layout );
625 INT WINAPI NtUserMenuItemFromPoint( HWND hwnd, HMENU handle, int x, int y );
626 LRESULT WINAPI NtUserMessageCall( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam,
627 void *result_info, DWORD type, BOOL ansi );
628 BOOL WINAPI NtUserMoveWindow( HWND hwnd, INT x, INT y, INT cx, INT cy, BOOL repaint );
629 DWORD WINAPI NtUserMsgWaitForMultipleObjectsEx( DWORD count, const HANDLE *handles,
630 DWORD timeout, DWORD mask, DWORD flags );
631 void WINAPI NtUserNotifyWinEvent( DWORD event, HWND hwnd, LONG object_id, LONG child_id );
632 HWINSTA WINAPI NtUserOpenWindowStation( OBJECT_ATTRIBUTES *attr, ACCESS_MASK access );
633 BOOL WINAPI NtUserSetObjectInformation( HANDLE handle, INT index, void *info, DWORD len );
634 BOOL WINAPI NtUserOpenClipboard( HWND hwnd, ULONG unk );
635 HDESK WINAPI NtUserOpenDesktop( OBJECT_ATTRIBUTES *attr, DWORD flags, ACCESS_MASK access );
636 HDESK WINAPI NtUserOpenInputDesktop( DWORD flags, BOOL inherit, ACCESS_MASK access );
637 BOOL WINAPI NtUserPeekMessage( MSG *msg_out, HWND hwnd, UINT first, UINT last, UINT flags );
638 BOOL WINAPI NtUserPostMessage( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam );
639 BOOL WINAPI NtUserPostThreadMessage( DWORD thread, UINT msg, WPARAM wparam, LPARAM lparam );
640 BOOL WINAPI NtUserRedrawWindow( HWND hwnd, const RECT *rect, HRGN hrgn, UINT flags );
641 ATOM WINAPI NtUserRegisterClassExWOW( const WNDCLASSEXW *wc, UNICODE_STRING *name, UNICODE_STRING *version,
642 struct client_menu_name *client_menu_name, DWORD fnid, DWORD flags,
643 DWORD *wow );
644 BOOL WINAPI NtUserRegisterHotKey( HWND hwnd, INT id, UINT modifiers, UINT vk );
645 INT WINAPI NtUserReleaseDC( HWND hwnd, HDC hdc );
646 BOOL WINAPI NtUserRemoveClipboardFormatListener( HWND hwnd );
647 BOOL WINAPI NtUserRemoveMenu( HMENU menu, UINT id, UINT flags );
648 HANDLE WINAPI NtUserRemoveProp( HWND hwnd, const WCHAR *str );
649 BOOL WINAPI NtUserScrollDC( HDC hdc, INT dx, INT dy, const RECT *scroll, const RECT *clip,
650 HRGN ret_update_rgn, RECT *update_rect );
651 INT WINAPI NtUserScrollWindowEx( HWND hwnd, INT dx, INT dy, const RECT *rect,
652 const RECT *clip_rect, HRGN update_rgn,
653 RECT *update_rect, UINT flags ) DECLSPEC_HIDDEN;
654 HPALETTE WINAPI NtUserSelectPalette( HDC hdc, HPALETTE palette, WORD force_background );
655 UINT WINAPI NtUserSendInput( UINT count, INPUT *inputs, int size );
656 HWND WINAPI NtUserSetActiveWindow( HWND hwnd );
657 HWND WINAPI NtUserSetCapture( HWND hwnd );
658 DWORD WINAPI NtUserSetClassLong( HWND hwnd, INT offset, LONG newval, BOOL ansi );
659 ULONG_PTR WINAPI NtUserSetClassLongPtr( HWND hwnd, INT offset, LONG_PTR newval, BOOL ansi );
660 WORD WINAPI NtUserSetClassWord( HWND hwnd, INT offset, WORD newval );
661 NTSTATUS WINAPI NtUserSetClipboardData( UINT format, HANDLE handle, struct set_clipboard_params *params );
662 HWND WINAPI NtUserSetClipboardViewer( HWND hwnd );
663 HCURSOR WINAPI NtUserSetCursor( HCURSOR cursor );
664 BOOL WINAPI NtUserSetCursorIconData( HCURSOR cursor, UNICODE_STRING *module, UNICODE_STRING *res_name,
665 struct cursoricon_desc *desc );
666 BOOL WINAPI NtUserSetCursorPos( INT x, INT y );
667 HWND WINAPI NtUserSetFocus( HWND hwnd );
668 void WINAPI NtUserSetInternalWindowPos( HWND hwnd, UINT cmd, RECT *rect, POINT *pt );
669 BOOL WINAPI NtUserSetKeyboardState( BYTE *state );
670 BOOL WINAPI NtUserSetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags );
671 BOOL WINAPI NtUserSetMenu( HWND hwnd, HMENU menu );
672 BOOL WINAPI NtUserSetMenuContextHelpId( HMENU handle, DWORD id );
673 BOOL WINAPI NtUserSetMenuDefaultItem( HMENU handle, UINT item, UINT bypos );
674 HWND WINAPI NtUserSetParent( HWND hwnd, HWND parent );
675 BOOL WINAPI NtUserSetProcessDpiAwarenessContext( ULONG awareness, ULONG unknown );
676 BOOL WINAPI NtUserSetProcessWindowStation( HWINSTA handle );
677 BOOL WINAPI NtUserSetProp( HWND hwnd, const WCHAR *str, HANDLE handle );
678 BOOL WINAPI NtUserSetSysColors( INT count, const INT *colors, const COLORREF *values );
679 BOOL WINAPI NtUserSetSystemMenu( HWND hwnd, HMENU menu );
680 UINT_PTR WINAPI NtUserSetSystemTimer( HWND hwnd, UINT_PTR id, UINT timeout );
681 BOOL WINAPI NtUserSetThreadDesktop( HDESK handle );
682 UINT_PTR WINAPI NtUserSetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC proc, ULONG tolerance );
683 LONG WINAPI NtUserSetWindowLong( HWND hwnd, INT offset, LONG newval, BOOL ansi );
684 LONG_PTR WINAPI NtUserSetWindowLongPtr( HWND hwnd, INT offset, LONG_PTR newval, BOOL ansi );
685 BOOL WINAPI NtUserSetWindowPlacement( HWND hwnd, const WINDOWPLACEMENT *wpl );
686 BOOL WINAPI NtUserSetWindowPos( HWND hwnd, HWND after, INT x, INT y, INT cx, INT cy, UINT flags );
687 int WINAPI NtUserSetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw );
688 WORD WINAPI NtUserSetWindowWord( HWND hwnd, INT offset, WORD newval );
689 HHOOK WINAPI NtUserSetWindowsHookEx( HINSTANCE inst, UNICODE_STRING *module, DWORD tid, INT id,
690 HOOKPROC proc, BOOL ansi );
691 HWINEVENTHOOK WINAPI NtUserSetWinEventHook( DWORD event_min, DWORD event_max, HMODULE inst,
692 UNICODE_STRING *module, WINEVENTPROC proc,
693 DWORD pid, DWORD tid, DWORD flags );
694 BOOL WINAPI NtUserShowCaret( HWND hwnd );
695 INT WINAPI NtUserShowCursor( BOOL show );
696 BOOL WINAPI NtUserShowWindow( HWND hwnd, INT cmd );
697 BOOL WINAPI NtUserShowWindowAsync( HWND hwnd, INT cmd );
698 BOOL WINAPI NtUserSystemParametersInfo( UINT action, UINT val, void *ptr, UINT winini );
699 BOOL WINAPI NtUserSystemParametersInfoForDpi( UINT action, UINT val, PVOID ptr, UINT winini, UINT dpi );
700 BOOL WINAPI NtUserThunkedMenuInfo( HMENU menu, const MENUINFO *info );
701 UINT WINAPI NtUserThunkedMenuItemInfo( HMENU menu, UINT pos, UINT flags, UINT method,
702 MENUITEMINFOW *info, UNICODE_STRING *str );
703 INT WINAPI NtUserToUnicodeEx( UINT virt, UINT scan, const BYTE *state,
704 WCHAR *str, int size, UINT flags, HKL layout );
705 BOOL WINAPI NtUserTrackMouseEvent( TRACKMOUSEEVENT *info );
706 INT WINAPI NtUserTranslateAccelerator( HWND hwnd, HACCEL accel, MSG *msg );
707 BOOL WINAPI NtUserTranslateMessage( const MSG *msg, UINT flags );
708 BOOL WINAPI NtUserUnhookWinEvent( HWINEVENTHOOK hEventHook );
709 BOOL WINAPI NtUserUnhookWindowsHookEx( HHOOK handle );
710 BOOL WINAPI NtUserUnregisterClass( UNICODE_STRING *name, HINSTANCE instance,
711 struct client_menu_name *client_menu_name );
712 BOOL WINAPI NtUserUnregisterHotKey( HWND hwnd, INT id );
713 BOOL WINAPI NtUserUpdateLayeredWindow( HWND hwnd, HDC hdc_dst, const POINT *pts_dst, const SIZE *size,
714 HDC hdc_src, const POINT *pts_src, COLORREF key,
715 const BLENDFUNCTION *blend, DWORD flags, const RECT *dirty );
716 WORD WINAPI NtUserVkKeyScanEx( WCHAR chr, HKL layout );
717 DWORD WINAPI NtUserWaitForInputIdle( HANDLE process, DWORD timeout, BOOL wow );
718 HWND WINAPI NtUserWindowFromDC( HDC hdc );
719 HWND WINAPI NtUserWindowFromPoint( LONG x, LONG y );
721 /* NtUserCallNoParam codes, not compatible with Windows */
722 enum
724 NtUserCallNoParam_DestroyCaret,
725 NtUserCallNoParam_GetDesktopWindow,
726 NtUserCallNoParam_GetDialogBaseUnits,
727 NtUserCallNoParam_GetInputState,
728 NtUserCallNoParam_GetProcessDefaultLayout,
729 NtUserCallNoParam_ReleaseCapture,
730 /* temporary exports */
731 NtUserExitingThread,
732 NtUserThreadDetach,
735 static inline BOOL NtUserDestroyCaret(void)
737 return NtUserCallNoParam( NtUserCallNoParam_DestroyCaret );
740 static inline HWND NtUserGetDesktopWindow(void)
742 return UlongToHandle( NtUserCallNoParam( NtUserCallNoParam_GetDesktopWindow ));
745 static inline DWORD NtUserGetDialogBaseUnits(void)
747 return NtUserCallNoParam( NtUserCallNoParam_GetDialogBaseUnits );
750 static inline BOOL NtUserGetInputState(void)
752 return NtUserCallNoParam( NtUserCallNoParam_GetInputState );
755 static inline DWORD NtUserGetProcessDefaultLayout(void)
757 return NtUserCallNoParam( NtUserCallNoParam_GetProcessDefaultLayout );
760 static inline BOOL NtUserReleaseCapture(void)
762 return NtUserCallNoParam( NtUserCallNoParam_ReleaseCapture );
765 /* NtUserCallOneParam codes, not compatible with Windows */
766 enum
768 NtUserCallOneParam_BeginDeferWindowPos,
769 NtUserCallOneParam_CreateCursorIcon,
770 NtUserCallOneParam_CreateMenu,
771 NtUserCallOneParam_DispatchMessageA,
772 NtUserCallOneParam_EnableDC,
773 NtUserCallOneParam_EnableThunkLock,
774 NtUserCallOneParam_EnumClipboardFormats,
775 NtUserCallOneParam_GetClipCursor,
776 NtUserCallOneParam_GetCursorPos,
777 NtUserCallOneParam_GetIconParam,
778 NtUserCallOneParam_GetMenuItemCount,
779 NtUserCallOneParam_GetPrimaryMonitorRect,
780 NtUserCallOneParam_GetSysColor,
781 NtUserCallOneParam_GetSysColorBrush,
782 NtUserCallOneParam_GetSysColorPen,
783 NtUserCallOneParam_GetSystemMetrics,
784 NtUserCallOneParam_GetVirtualScreenRect,
785 NtUserCallOneParam_IsWindowRectFullScreen,
786 NtUserCallOneParam_MessageBeep,
787 NtUserCallOneParam_RealizePalette,
788 NtUserCallOneParam_SetCaretBlinkTime,
789 NtUserCallOneParam_SetProcessDefaultLayout,
790 /* temporary exports */
791 NtUserCallHooks,
792 NtUserGetDeskPattern,
793 NtUserGetWinProcPtr,
794 NtUserLock,
795 NtUserSetCallbacks,
796 NtUserSpyGetVKeyName,
799 static inline HDWP NtUserBeginDeferWindowPos( INT count )
801 return UlongToHandle( NtUserCallOneParam( count, NtUserCallOneParam_BeginDeferWindowPos ));
804 static inline HICON NtUserCreateCursorIcon( BOOL is_icon )
806 return UlongToHandle( NtUserCallOneParam( is_icon, NtUserCallOneParam_CreateCursorIcon ));
809 static inline HMENU NtUserCreateMenu( BOOL is_popup )
811 return UlongToHandle( NtUserCallOneParam( is_popup, NtUserCallOneParam_CreateMenu ));
814 static inline LRESULT NtUserDispatchMessageA( const MSG *msg )
816 return NtUserCallOneParam( (UINT_PTR)msg, NtUserCallOneParam_DispatchMessageA );
819 static inline WORD NtUserEnableDC( HDC hdc )
821 return NtUserCallOneParam( HandleToUlong(hdc), NtUserCallOneParam_EnableDC );
824 static inline void NtUserEnableThunkLock( BOOL enable )
826 NtUserCallOneParam( enable, NtUserCallOneParam_EnableThunkLock );
829 static inline UINT NtUserEnumClipboardFormats( UINT format )
831 return NtUserCallOneParam( format, NtUserCallOneParam_EnumClipboardFormats );
834 static inline BOOL NtUserGetClipCursor( RECT *rect )
836 return NtUserCallOneParam( (UINT_PTR)rect, NtUserCallOneParam_GetClipCursor );
839 static inline BOOL NtUserGetCursorPos( POINT *pt )
841 return NtUserCallOneParam( (UINT_PTR)pt, NtUserCallOneParam_GetCursorPos );
844 static inline UINT_PTR NtUserGetIconParam( HICON icon )
846 return NtUserCallOneParam( HandleToUlong(icon), NtUserCallOneParam_GetIconParam );
849 static inline UINT_PTR NtUserGetMenuItemCount( HMENU menu )
851 return NtUserCallOneParam( HandleToUlong(menu), NtUserCallOneParam_GetMenuItemCount );
854 static inline RECT NtUserGetPrimaryMonitorRect(void)
856 RECT primary;
857 NtUserCallOneParam( (UINT_PTR)&primary, NtUserCallOneParam_GetPrimaryMonitorRect );
858 return primary;
861 static inline BOOL NtUserSetCaretBlinkTime( unsigned int time )
863 return NtUserCallOneParam( time, NtUserCallOneParam_SetCaretBlinkTime );
866 static inline COLORREF NtUserGetSysColor( INT index )
868 return NtUserCallOneParam( index, NtUserCallOneParam_GetSysColor );
871 static inline HBRUSH NtUserGetSysColorBrush( INT index )
873 return UlongToHandle( NtUserCallOneParam( index, NtUserCallOneParam_GetSysColorBrush ));
876 static inline HPEN NtUserGetSysColorPen( INT index )
878 return UlongToHandle( NtUserCallOneParam( index, NtUserCallOneParam_GetSysColorPen ));
881 static inline INT NtUserGetSystemMetrics( INT index )
883 return NtUserCallOneParam( index, NtUserCallOneParam_GetSystemMetrics );
886 static inline RECT NtUserGetVirtualScreenRect(void)
888 RECT virtual;
889 NtUserCallOneParam( (UINT_PTR)&virtual, NtUserCallOneParam_GetVirtualScreenRect );
890 return virtual;
893 static inline BOOL NtUserIsWindowRectFullScreen( const RECT *rect )
895 return NtUserCallOneParam( (UINT_PTR)rect, NtUserCallOneParam_IsWindowRectFullScreen );
898 static inline BOOL NtUserMessageBeep( UINT i )
900 return NtUserCallOneParam( i, NtUserCallOneParam_MessageBeep );
903 static inline UINT NtUserRealizePalette( HDC hdc )
905 return NtUserCallOneParam( HandleToUlong(hdc), NtUserCallOneParam_RealizePalette );
908 static inline UINT NtUserSetProcessDefaultLayout( DWORD layout )
910 return NtUserCallOneParam( layout, NtUserCallOneParam_SetProcessDefaultLayout );
913 /* NtUserCallTwoParam codes, not compatible with Windows */
914 enum
916 NtUserCallTwoParam_GetMenuInfo,
917 NtUserCallTwoParam_GetMonitorInfo,
918 NtUserCallTwoParam_GetSystemMetricsForDpi,
919 NtUserCallTwoParam_MonitorFromRect,
920 NtUserCallTwoParam_ReplyMessage,
921 NtUserCallTwoParam_SetCaretPos,
922 NtUserCallTwoParam_SetIconParam,
923 NtUserCallTwoParam_UnhookWindowsHook,
924 /* temporary exports */
925 NtUserAllocWinProc,
926 NtUserGetHandlePtr,
929 static inline BOOL NtUserGetMenuInfo( HMENU menu, MENUINFO *info )
931 return NtUserCallTwoParam( HandleToUlong(menu), (ULONG_PTR)info,
932 NtUserCallTwoParam_GetMenuInfo );
935 static inline BOOL NtUserGetMonitorInfo( HMONITOR monitor, MONITORINFO *info )
937 return NtUserCallTwoParam( HandleToUlong(monitor), (ULONG_PTR)info,
938 NtUserCallTwoParam_GetMonitorInfo );
941 static inline INT NtUserGetSystemMetricsForDpi( INT index, UINT dpi )
943 return NtUserCallTwoParam( index, dpi, NtUserCallTwoParam_GetSystemMetricsForDpi );
946 static inline HMONITOR NtUserMonitorFromRect( const RECT *rect, DWORD flags )
948 ULONG ret = NtUserCallTwoParam( (LONG_PTR)rect, flags, NtUserCallTwoParam_MonitorFromRect );
949 return UlongToHandle( ret );
952 static inline BOOL NtUserReplyMessage( LRESULT result, MSG *msg )
954 return NtUserCallTwoParam( result, (UINT_PTR)msg, NtUserCallTwoParam_ReplyMessage );
957 static inline BOOL NtUserSetCaretPos( int x, int y )
959 return NtUserCallTwoParam( x, y, NtUserCallTwoParam_SetCaretPos );
962 static inline UINT_PTR NtUserSetIconParam( HICON icon, ULONG_PTR param )
964 return NtUserCallTwoParam( HandleToUlong(icon), param, NtUserCallTwoParam_SetIconParam );
967 static inline BOOL NtUserUnhookWindowsHook( INT id, HOOKPROC proc )
969 return NtUserCallTwoParam( id, (UINT_PTR)proc, NtUserCallTwoParam_UnhookWindowsHook );
972 /* NtUserCallHwnd codes, not compatible with Windows */
973 enum
975 NtUserCallHwnd_ArrangeIconicWindows,
976 NtUserCallHwnd_DrawMenuBar,
977 NtUserCallHwnd_GetDpiForWindow,
978 NtUserCallHwnd_GetParent,
979 NtUserCallHwnd_GetWindowContextHelpId,
980 NtUserCallHwnd_GetWindowDpiAwarenessContext,
981 NtUserCallHwnd_GetWindowTextLength,
982 NtUserCallHwnd_IsWindow,
983 NtUserCallHwnd_IsWindowEnabled,
984 NtUserCallHwnd_IsWindowUnicode,
985 NtUserCallHwnd_IsWindowVisible,
986 NtUserCallHwnd_SetForegroundWindow,
989 static inline UINT NtUserArrangeIconicWindows( HWND parent )
991 return NtUserCallHwnd( parent, NtUserCallHwnd_ArrangeIconicWindows );
994 static inline BOOL NtUserDrawMenuBar( HWND hwnd )
996 return NtUserCallHwnd( hwnd, NtUserCallHwnd_DrawMenuBar );
999 static inline DWORD NtUserGetWindowContextHelpId( HWND hwnd )
1001 return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetWindowContextHelpId );
1004 static inline UINT NtUserGetDpiForWindow( HWND hwnd )
1006 return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetDpiForWindow );
1009 static inline HWND NtUserGetParent( HWND hwnd )
1011 return UlongToHandle( NtUserCallHwnd( hwnd, NtUserCallHwnd_GetParent ));
1014 static inline DPI_AWARENESS_CONTEXT NtUserGetWindowDpiAwarenessContext( HWND hwnd )
1016 return (DPI_AWARENESS_CONTEXT)NtUserCallHwnd( hwnd,
1017 NtUserCallHwnd_GetWindowDpiAwarenessContext );
1020 static inline INT NtUserGetWindowTextLength( HWND hwnd )
1022 return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetWindowTextLength );
1025 static inline BOOL NtUserIsWindow( HWND hwnd )
1027 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindow );
1030 static inline BOOL NtUserIsWindowEnabled( HWND hwnd )
1032 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowEnabled );
1035 static inline BOOL NtUserIsWindowUnicode( HWND hwnd )
1037 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowUnicode );
1040 static inline BOOL NtUserIsWindowVisible( HWND hwnd )
1042 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowVisible );
1045 static inline BOOL NtUserSetForegroundWindow( HWND hwnd )
1047 return NtUserCallHwnd( hwnd, NtUserCallHwnd_SetForegroundWindow );
1050 /* NtUserCallHwndParam codes, not compatible with Windows */
1051 enum
1053 NtUserCallHwndParam_ClientToScreen,
1054 NtUserCallHwndParam_EnableWindow,
1055 NtUserCallHwndParam_GetClassLongA,
1056 NtUserCallHwndParam_GetClassLongW,
1057 NtUserCallHwndParam_GetClassLongPtrA,
1058 NtUserCallHwndParam_GetClassLongPtrW,
1059 NtUserCallHwndParam_GetClassWord,
1060 NtUserCallHwndParam_GetClientRect,
1061 NtUserCallHwndParam_GetWindowInfo,
1062 NtUserCallHwndParam_GetWindowLongA,
1063 NtUserCallHwndParam_GetWindowLongW,
1064 NtUserCallHwndParam_GetWindowLongPtrA,
1065 NtUserCallHwndParam_GetWindowLongPtrW,
1066 NtUserCallHwndParam_GetWindowRect,
1067 NtUserCallHwndParam_GetWindowRelative,
1068 NtUserCallHwndParam_GetWindowThread,
1069 NtUserCallHwndParam_GetWindowWord,
1070 NtUserCallHwndParam_IsChild,
1071 NtUserCallHwndParam_KillSystemTimer,
1072 NtUserCallHwndParam_MapWindowPoints,
1073 NtUserCallHwndParam_MirrorRgn,
1074 NtUserCallHwndParam_MonitorFromWindow,
1075 NtUserCallHwndParam_ScreenToClient,
1076 NtUserCallHwndParam_SetWindowContextHelpId,
1077 NtUserCallHwndParam_SetWindowPixelFormat,
1078 NtUserCallHwndParam_ShowOwnedPopups,
1079 /* temporary exports */
1080 NtUserIsWindowDrawable,
1081 NtUserSetCaptureWindow,
1082 NtUserSetWindowStyle,
1083 NtUserSpyGetMsgName,
1086 static inline BOOL NtUserClientToScreen( HWND hwnd, POINT *pt )
1088 return NtUserCallHwndParam( hwnd, (UINT_PTR)pt, NtUserCallHwndParam_ClientToScreen );
1091 static inline BOOL NtUserEnableWindow( HWND hwnd, BOOL enable )
1093 return NtUserCallHwndParam( hwnd, enable, NtUserCallHwndParam_EnableWindow );
1096 static inline DWORD NtUserGetClassLongA( HWND hwnd, INT offset )
1098 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongA );
1101 static inline ULONG_PTR NtUserGetClassLongPtrA( HWND hwnd, INT offset )
1103 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongPtrA );
1106 static inline ULONG_PTR NtUserGetClassLongPtrW( HWND hwnd, INT offset )
1108 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongPtrW );
1111 static inline DWORD NtUserGetClassLongW( HWND hwnd, INT offset )
1113 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongW );
1116 static inline WORD NtUserGetClassWord( HWND hwnd, INT offset )
1118 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassWord );
1121 static inline BOOL NtUserGetClientRect( HWND hwnd, RECT *rect )
1123 return NtUserCallHwndParam( hwnd, (UINT_PTR)rect, NtUserCallHwndParam_GetClientRect );
1126 static inline BOOL NtUserGetWindowInfo( HWND hwnd, WINDOWINFO *info )
1128 return NtUserCallHwndParam( hwnd, (UINT_PTR)info, NtUserCallHwndParam_GetWindowInfo );
1131 static inline LONG NtUserGetWindowLongA( HWND hwnd, INT offset )
1133 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongA );
1136 static inline LONG_PTR NtUserGetWindowLongPtrA( HWND hwnd, INT offset )
1138 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongPtrA );
1141 static inline LONG_PTR NtUserGetWindowLongPtrW( HWND hwnd, INT offset )
1143 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongPtrW );
1146 static inline LONG NtUserGetWindowLongW( HWND hwnd, INT offset )
1148 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongW );
1151 static inline BOOL NtUserGetWindowRect( HWND hwnd, RECT *rect )
1153 return NtUserCallHwndParam( hwnd, (UINT_PTR)rect, NtUserCallHwndParam_GetWindowRect );
1156 static inline HWND NtUserGetWindowRelative( HWND hwnd, UINT rel )
1158 return UlongToHandle( NtUserCallHwndParam( hwnd, rel,
1159 NtUserCallHwndParam_GetWindowRelative ));
1162 static inline DWORD NtUserGetWindowThread( HWND hwnd, DWORD *process )
1164 return NtUserCallHwndParam( hwnd, (UINT_PTR)process, NtUserCallHwndParam_GetWindowThread );
1167 static inline WORD NtUserGetWindowWord( HWND hwnd, INT offset )
1169 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowWord );
1172 static inline BOOL NtUserIsChild( HWND parent, HWND child )
1174 return NtUserCallHwndParam( parent, HandleToUlong(child), NtUserCallHwndParam_IsChild );
1177 static inline BOOL NtUserKillSystemTimer( HWND hwnd, UINT_PTR id )
1179 return NtUserCallHwndParam( hwnd, id, NtUserCallHwndParam_KillSystemTimer );
1182 struct map_window_points_params
1184 HWND hwnd_to;
1185 POINT *points;
1186 UINT count;
1189 static inline int NtUserMapWindowPoints( HWND hwnd_from, HWND hwnd_to, POINT *points, UINT count )
1191 struct map_window_points_params params;
1192 params.hwnd_to = hwnd_to;
1193 params.points = points;
1194 params.count = count;
1195 return NtUserCallHwndParam( hwnd_from, (UINT_PTR)&params,
1196 NtUserCallHwndParam_MapWindowPoints );
1199 static inline BOOL NtUserMirrorRgn( HWND hwnd, HRGN hrgn )
1201 return NtUserCallHwndParam( hwnd, HandleToUlong(hrgn), NtUserCallHwndParam_MirrorRgn );
1204 static inline HMONITOR NtUserMonitorFromWindow( HWND hwnd, DWORD flags )
1206 ULONG ret = NtUserCallHwndParam( hwnd, flags, NtUserCallHwndParam_MonitorFromWindow );
1207 return UlongToHandle( ret );
1210 static inline BOOL NtUserScreenToClient( HWND hwnd, POINT *pt )
1212 return NtUserCallHwndParam( hwnd, (UINT_PTR)pt, NtUserCallHwndParam_ScreenToClient );
1215 static inline BOOL NtUserSetWindowContextHelpId( HWND hwnd, DWORD id )
1217 return NtUserCallHwndParam( hwnd, id, NtUserCallHwndParam_SetWindowContextHelpId );
1220 static inline BOOL NtUserSetWindowPixelFormat( HWND hwnd, int format )
1222 return NtUserCallHwndParam( hwnd, format, NtUserCallHwndParam_SetWindowPixelFormat );
1225 static inline BOOL NtUserShowOwnedPopups( HWND hwnd, BOOL show )
1227 return NtUserCallHwndParam( hwnd, show, NtUserCallHwndParam_ShowOwnedPopups );
1230 #endif /* _NTUSER_ */