winealsa: Handle MIDI running status.
[wine.git] / include / ntuser.h
blob29de027a33455a59bb0ef0586f5e5759d41a41ca
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 NtUserFreeCachedClipboardData,
37 NtUserLoadDriver,
38 NtUserRegisterBuiltinClasses,
39 NtUserRenderSynthesizedFormat,
40 /* win16 hooks */
41 NtUserCallFreeIcon,
42 NtUserThunkLock,
43 /* Vulkan support */
44 NtUserCallVulkanDebugReportCallback,
45 NtUserCallVulkanDebugUtilsCallback,
46 /* Driver-specific callbacks */
47 NtUserDriverCallbackFirst,
48 NtUserDriverCallbackLast = NtUserDriverCallbackFirst + 10,
49 NtUserCallCount
52 /* TEB thread info, not compatible with Windows */
53 struct ntuser_thread_info
55 void *driver_data; /* driver-specific data */
56 DWORD message_time; /* value for GetMessageTime */
57 DWORD message_pos; /* value for GetMessagePos */
58 ULONG_PTR message_extra; /* value for GetMessageExtraInfo */
59 HWND top_window; /* desktop window */
60 HWND msg_window; /* HWND_MESSAGE parent window */
63 static inline struct ntuser_thread_info *NtUserGetThreadInfo(void)
65 return (struct ntuser_thread_info *)NtCurrentTeb()->Win32ClientInfo;
68 /* NtUserCallEnumDisplayMonitor params */
69 struct enum_display_monitor_params
71 MONITORENUMPROC proc;
72 HMONITOR monitor;
73 HDC hdc;
74 RECT rect;
75 LPARAM lparam;
78 /* NtUserCallSendAsyncCallback params */
79 struct send_async_params
81 SENDASYNCPROC callback;
82 HWND hwnd;
83 UINT msg;
84 ULONG_PTR data;
85 LRESULT result;
88 /* NtUserCallWinEventHook params */
89 struct win_event_hook_params
91 DWORD event;
92 HWND hwnd;
93 LONG object_id;
94 LONG child_id;
95 void *handle;
96 DWORD tid;
97 DWORD time;
98 WINEVENTPROC proc;
99 WCHAR module[MAX_PATH];
102 /* type of message-sending functions that need special WM_CHAR handling */
103 enum wm_char_mapping
105 WMCHAR_MAP_POSTMESSAGE,
106 WMCHAR_MAP_SENDMESSAGE,
107 WMCHAR_MAP_SENDMESSAGETIMEOUT,
108 WMCHAR_MAP_RECVMESSAGE,
109 WMCHAR_MAP_DISPATCHMESSAGE,
110 WMCHAR_MAP_CALLWINDOWPROC,
111 WMCHAR_MAP_COUNT,
112 WMCHAR_MAP_NOMAPPING = WMCHAR_MAP_COUNT
115 /* NtUserCallWindowProc params */
116 struct win_proc_params
118 WNDPROC func;
119 HWND hwnd;
120 UINT msg;
121 WPARAM wparam;
122 LPARAM lparam;
123 LRESULT *result;
124 BOOL ansi;
125 BOOL ansi_dst;
126 BOOL is_dialog;
127 BOOL needs_unpack;
128 enum wm_char_mapping mapping;
129 DPI_AWARENESS_CONTEXT dpi_awareness;
130 WNDPROC procA;
131 WNDPROC procW;
134 /* NtUserCallWindowsHook params */
135 struct win_hook_params
137 void *proc;
138 void *handle;
139 DWORD pid;
140 DWORD tid;
141 int id;
142 int code;
143 WPARAM wparam;
144 LPARAM lparam;
145 BOOL prev_unicode;
146 BOOL next_unicode;
147 WCHAR module[MAX_PATH];
150 /* NtUserCopyMessage params */
151 struct copy_image_params
153 HANDLE hwnd;
154 UINT type;
155 INT dx;
156 INT dy;
157 UINT flags;
160 /* NtUserFreeCachedClipboardData params */
161 struct free_cached_data_params
163 UINT format;
164 HANDLE handle;
167 /* NtUserRenderSynthesizedFormat params */
168 struct render_synthesized_format_params
170 UINT format;
171 UINT from;
174 /* process DPI awareness contexts */
175 #define NTUSER_DPI_UNAWARE 0x00006010
176 #define NTUSER_DPI_SYSTEM_AWARE 0x00006011
177 #define NTUSER_DPI_PER_MONITOR_AWARE 0x00000012
178 #define NTUSER_DPI_PER_MONITOR_AWARE_V2 0x00000022
179 #define NTUSER_DPI_PER_UNAWARE_GDISCALED 0x40006010
181 /* NtUserMessageCall codes */
182 enum
184 NtUserDesktopWindowProc = 0x029d,
185 NtUserDefWindowProc = 0x029e,
186 NtUserCallWindowProc = 0x02ab,
187 NtUserSendMessage = 0x02b1,
188 NtUserSendMessageTimeout = 0x02b3,
189 NtUserSendNotifyMessage = 0x02b7,
190 NtUserSendMessageCallback = 0x02b8,
191 /* Wine-specific exports */
192 NtUserSpyEnter = 0x0300,
193 NtUserSpyExit = 0x0301,
196 /* NtUserThunkedMenuItemInfo codes */
197 enum
199 NtUserSetMenuItemInfo,
200 NtUserInsertMenuItem,
201 /* Wine extensions */
202 NtUserGetMenuState,
205 struct send_message_timeout_params
207 UINT flags;
208 UINT timeout;
209 DWORD_PTR result;
212 struct send_message_callback_params
214 SENDASYNCPROC callback;
215 ULONG_PTR data;
218 /* color index used to retrieve system 55aa brush */
219 #define COLOR_55AA_BRUSH 0x100
221 /* user object types */
222 #define NTUSER_OBJ_WINDOW 0x01
223 #define NTUSER_OBJ_MENU 0x02
224 #define NTUSER_OBJ_ICON 0x03
225 #define NTUSER_OBJ_WINPOS 0x04
226 #define NTUSER_OBJ_ACCEL 0x08
227 #define NTUSER_OBJ_HOOK 0x0f
229 /* NtUserInitializeClientPfnArrays parameter, not compatible with Windows */
230 struct user_client_procs
232 WNDPROC pButtonWndProc;
233 WNDPROC pComboWndProc;
234 WNDPROC pDefWindowProc;
235 WNDPROC pDefDlgProc;
236 WNDPROC pEditWndProc;
237 WNDPROC pListBoxWndProc;
238 WNDPROC pMDIClientWndProc;
239 WNDPROC pScrollBarWndProc;
240 WNDPROC pStaticWndProc;
241 WNDPROC pImeWndProc;
242 WNDPROC pDesktopWndProc;
243 WNDPROC pIconTitleWndProc;
244 WNDPROC pPopupMenuWndProc;
245 WNDPROC pMessageWndProc;
248 /* NtUserSetCursorIconData parameter, not compatible with Windows */
249 struct cursoricon_frame
251 UINT width; /* frame-specific width */
252 UINT height; /* frame-specific height */
253 HBITMAP color; /* color bitmap */
254 HBITMAP alpha; /* pre-multiplied alpha bitmap for 32-bpp icons */
255 HBITMAP mask; /* mask bitmap (followed by color for 1-bpp icons) */
256 POINT hotspot;
259 struct cursoricon_desc
261 UINT flags;
262 UINT num_steps;
263 UINT num_frames;
264 UINT delay;
265 struct cursoricon_frame *frames;
266 DWORD *frame_seq;
267 DWORD *frame_rates;
268 HRSRC rsrc;
271 struct client_menu_name
273 char *nameA;
274 WCHAR *nameW;
275 UNICODE_STRING *nameUS;
278 /* NtUserGetClipboardData params, not compatible with Windows */
279 struct get_clipboard_params
281 void *data;
282 size_t size;
283 size_t data_size;
284 UINT seqno;
285 BOOL data_only;
288 /* NtUserSetClipboardData params, not compatible with Windows */
289 struct set_clipboard_params
291 void *data;
292 size_t size;
293 BOOL cache_only;
294 UINT seqno;
297 /* internal messages codes */
298 enum wine_internal_message
300 WM_WINE_DESTROYWINDOW = 0x80000000,
301 WM_WINE_SETWINDOWPOS,
302 WM_WINE_SHOWWINDOW,
303 WM_WINE_SETPARENT,
304 WM_WINE_SETWINDOWLONG,
305 WM_WINE_SETSTYLE,
306 WM_WINE_SETACTIVEWINDOW,
307 WM_WINE_KEYBOARD_LL_HOOK,
308 WM_WINE_MOUSE_LL_HOOK,
309 WM_WINE_CLIPCURSOR,
310 WM_WINE_UPDATEWINDOWSTATE,
311 WM_WINE_FIRST_DRIVER_MSG = 0x80001000, /* range of messages reserved for the USER driver */
312 WM_WINE_LAST_DRIVER_MSG = 0x80001fff
315 /* the various structures that can be sent in messages, in platform-independent layout */
316 struct packed_CREATESTRUCTW
318 ULONGLONG lpCreateParams;
319 ULONGLONG hInstance;
320 UINT hMenu;
321 DWORD __pad1;
322 UINT hwndParent;
323 DWORD __pad2;
324 INT cy;
325 INT cx;
326 INT y;
327 INT x;
328 LONG style;
329 ULONGLONG lpszName;
330 ULONGLONG lpszClass;
331 DWORD dwExStyle;
332 DWORD __pad3;
335 struct packed_DRAWITEMSTRUCT
337 UINT CtlType;
338 UINT CtlID;
339 UINT itemID;
340 UINT itemAction;
341 UINT itemState;
342 UINT hwndItem;
343 DWORD __pad1;
344 UINT hDC;
345 DWORD __pad2;
346 RECT rcItem;
347 ULONGLONG itemData;
350 struct packed_MEASUREITEMSTRUCT
352 UINT CtlType;
353 UINT CtlID;
354 UINT itemID;
355 UINT itemWidth;
356 UINT itemHeight;
357 ULONGLONG itemData;
360 struct packed_DELETEITEMSTRUCT
362 UINT CtlType;
363 UINT CtlID;
364 UINT itemID;
365 UINT hwndItem;
366 DWORD __pad;
367 ULONGLONG itemData;
370 struct packed_COMPAREITEMSTRUCT
372 UINT CtlType;
373 UINT CtlID;
374 UINT hwndItem;
375 DWORD __pad1;
376 UINT itemID1;
377 ULONGLONG itemData1;
378 UINT itemID2;
379 ULONGLONG itemData2;
380 DWORD dwLocaleId;
381 DWORD __pad2;
384 struct packed_WINDOWPOS
386 UINT hwnd;
387 DWORD __pad1;
388 UINT hwndInsertAfter;
389 DWORD __pad2;
390 INT x;
391 INT y;
392 INT cx;
393 INT cy;
394 UINT flags;
395 DWORD __pad3;
398 struct packed_COPYDATASTRUCT
400 ULONGLONG dwData;
401 DWORD cbData;
402 ULONGLONG lpData;
405 struct packed_HELPINFO
407 UINT cbSize;
408 INT iContextType;
409 INT iCtrlId;
410 UINT hItemHandle;
411 DWORD __pad;
412 ULONGLONG dwContextId;
413 POINT MousePos;
416 struct packed_NCCALCSIZE_PARAMS
418 RECT rgrc[3];
419 ULONGLONG __pad1;
420 UINT hwnd;
421 DWORD __pad2;
422 UINT hwndInsertAfter;
423 DWORD __pad3;
424 INT x;
425 INT y;
426 INT cx;
427 INT cy;
428 UINT flags;
429 DWORD __pad4;
432 struct packed_MSG
434 UINT hwnd;
435 DWORD __pad1;
436 UINT message;
437 ULONGLONG wParam;
438 ULONGLONG lParam;
439 DWORD time;
440 POINT pt;
441 DWORD __pad2;
444 struct packed_MDINEXTMENU
446 UINT hmenuIn;
447 DWORD __pad1;
448 UINT hmenuNext;
449 DWORD __pad2;
450 UINT hwndNext;
451 DWORD __pad3;
454 struct packed_MDICREATESTRUCTW
456 ULONGLONG szClass;
457 ULONGLONG szTitle;
458 ULONGLONG hOwner;
459 INT x;
460 INT y;
461 INT cx;
462 INT cy;
463 DWORD style;
464 ULONGLONG lParam;
468 HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags );
469 BOOL WINAPI NtUserAddClipboardFormatListener( HWND hwnd );
470 BOOL WINAPI NtUserAttachThreadInput( DWORD from, DWORD to, BOOL attach );
471 HDC WINAPI NtUserBeginPaint( HWND hwnd, PAINTSTRUCT *ps );
472 NTSTATUS WINAPI NtUserBuildHwndList( HDESK desktop, ULONG unk2, ULONG unk3, ULONG unk4,
473 ULONG thread_id, ULONG count, HWND *buffer, ULONG *size );
474 ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code );
475 ULONG_PTR WINAPI NtUserCallHwndParam( HWND hwnd, DWORD_PTR param, DWORD code );
476 LRESULT WINAPI NtUserCallNextHookEx( HHOOK hhook, INT code, WPARAM wparam, LPARAM lparam );
477 BOOL WINAPI NtUserCallMsgFilter( MSG *msg, INT code );
478 ULONG_PTR WINAPI NtUserCallNoParam( ULONG code );
479 ULONG_PTR WINAPI NtUserCallOneParam( ULONG_PTR arg, ULONG code );
480 ULONG_PTR WINAPI NtUserCallTwoParam( ULONG_PTR arg1, ULONG_PTR arg2, ULONG code );
481 BOOL WINAPI NtUserChangeClipboardChain( HWND hwnd, HWND next );
482 LONG WINAPI NtUserChangeDisplaySettings( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd,
483 DWORD flags, void *lparam );
484 DWORD WINAPI NtUserCheckMenuItem( HMENU handle, UINT id, UINT flags );
485 HWND WINAPI NtUserChildWindowFromPointEx( HWND parent, LONG x, LONG y, UINT flags );
486 BOOL WINAPI NtUserClipCursor( const RECT *rect );
487 BOOL WINAPI NtUserCloseClipboard(void);
488 BOOL WINAPI NtUserCloseDesktop( HDESK handle );
489 BOOL WINAPI NtUserCloseWindowStation( HWINSTA handle );
490 INT WINAPI NtUserCopyAcceleratorTable( HACCEL src, ACCEL *dst, INT count );
491 INT WINAPI NtUserCountClipboardFormats(void);
492 HACCEL WINAPI NtUserCreateAcceleratorTable( ACCEL *table, INT count );
493 BOOL WINAPI NtUserCreateCaret( HWND hwnd, HBITMAP bitmap, int width, int height );
494 HDESK WINAPI NtUserCreateDesktopEx( OBJECT_ATTRIBUTES *attr, UNICODE_STRING *device,
495 DEVMODEW *devmode, DWORD flags, ACCESS_MASK access,
496 ULONG heap_size );
497 HWND WINAPI NtUserCreateWindowEx( DWORD ex_style, UNICODE_STRING *class_name,
498 UNICODE_STRING *version, UNICODE_STRING *window_name,
499 DWORD style, INT x, INT y, INT cx, INT cy,
500 HWND parent, HMENU menu, HINSTANCE instance, void *params,
501 DWORD flags, CBT_CREATEWNDW *cbtc, DWORD unk, BOOL ansi );
502 HWINSTA WINAPI NtUserCreateWindowStation( OBJECT_ATTRIBUTES *attr, ACCESS_MASK mask, ULONG arg3,
503 ULONG arg4, ULONG arg5, ULONG arg6, ULONG arg7 );
504 HDWP WINAPI NtUserDeferWindowPosAndBand( HDWP hdwp, HWND hwnd, HWND after, INT x, INT y,
505 INT cx, INT cy, UINT flags, UINT unk1, UINT unk2 );
506 BOOL WINAPI NtUserDeleteMenu( HMENU menu, UINT id, UINT flags );
507 BOOL WINAPI NtUserDestroyAcceleratorTable( HACCEL handle );
508 BOOL WINAPI NtUserDestroyCursor( HCURSOR cursor, ULONG arg );
509 BOOL WINAPI NtUserDestroyMenu( HMENU menu );
510 BOOL WINAPI NtUserDestroyWindow( HWND hwnd );
511 LRESULT WINAPI NtUserDispatchMessage( const MSG *msg );
512 BOOL WINAPI NtUserDrawIconEx( HDC hdc, INT x0, INT y0, HICON icon, INT width,
513 INT height, UINT istep, HBRUSH hbr, UINT flags );
514 BOOL WINAPI NtUserEmptyClipboard(void);
515 BOOL WINAPI NtUserEnableMenuItem( HMENU handle, UINT id, UINT flags );
516 BOOL WINAPI NtUserEndDeferWindowPosEx( HDWP hdwp, BOOL async );
517 BOOL WINAPI NtUserEndPaint( HWND hwnd, const PAINTSTRUCT *ps );
518 NTSTATUS WINAPI NtUserEnumDisplayDevices( UNICODE_STRING *device, DWORD index,
519 DISPLAY_DEVICEW *info, DWORD flags );
520 BOOL WINAPI NtUserEnumDisplayMonitors( HDC hdc, RECT *rect, MONITORENUMPROC proc, LPARAM lp );
521 BOOL WINAPI NtUserEnumDisplaySettings( UNICODE_STRING *device, DWORD mode,
522 DEVMODEW *dev_mode, DWORD flags );
523 INT WINAPI NtUserExcludeUpdateRgn( HDC hdc, HWND hwnd );
524 HICON WINAPI NtUserFindExistingCursorIcon( UNICODE_STRING *module, UNICODE_STRING *res_name,
525 void *desc );
526 HWND WINAPI NtUserFindWindowEx( HWND parent, HWND child, UNICODE_STRING *class,
527 UNICODE_STRING *title, ULONG unk );
528 BOOL WINAPI NtUserFlashWindowEx( FLASHWINFO *info );
529 HWND WINAPI NtUserGetAncestor( HWND hwnd, UINT type );
530 SHORT WINAPI NtUserGetAsyncKeyState( INT key );
531 ULONG WINAPI NtUserGetAtomName( ATOM atom, UNICODE_STRING *name );
532 UINT WINAPI NtUserGetCaretBlinkTime(void);
533 BOOL WINAPI NtUserGetCaretPos( POINT *point );
534 ATOM WINAPI NtUserGetClassInfoEx( HINSTANCE instance, UNICODE_STRING *name, WNDCLASSEXW *wc,
535 struct client_menu_name *menu_name, BOOL ansi );
536 INT WINAPI NtUserGetClassName( HWND hwnd, BOOL real, UNICODE_STRING *name );
537 HANDLE WINAPI NtUserGetClipboardData( UINT format, struct get_clipboard_params *params );
538 INT WINAPI NtUserGetClipboardFormatName( UINT format, WCHAR *buffer, INT maxlen );
539 HWND WINAPI NtUserGetClipboardOwner(void);
540 DWORD WINAPI NtUserGetClipboardSequenceNumber(void);
541 HWND WINAPI NtUserGetClipboardViewer(void);
542 HCURSOR WINAPI NtUserGetCursor(void);
543 HCURSOR WINAPI NtUserGetCursorFrameInfo( HCURSOR hCursor, DWORD istep, DWORD *rate_jiffies,
544 DWORD *num_steps );
545 BOOL WINAPI NtUserGetCursorInfo( CURSORINFO *info );
546 HDC WINAPI NtUserGetDCEx( HWND hwnd, HRGN clip_rgn, DWORD flags );
547 LONG WINAPI NtUserGetDisplayConfigBufferSizes( UINT32 flags, UINT32 *num_path_info,
548 UINT32 *num_mode_info );
549 UINT WINAPI NtUserGetDoubleClickTime(void);
550 BOOL WINAPI NtUserGetDpiForMonitor( HMONITOR monitor, UINT type, UINT *x, UINT *y );
551 HWND WINAPI NtUserGetForegroundWindow(void);
552 BOOL WINAPI NtUserGetGUIThreadInfo( DWORD id, GUITHREADINFO *info );
553 BOOL WINAPI NtUserGetIconInfo( HICON icon, ICONINFO *info, UNICODE_STRING *module,
554 UNICODE_STRING *res_name, DWORD *bpp, LONG unk );
555 BOOL WINAPI NtUserGetIconSize( HICON handle, UINT step, LONG *width, LONG *height );
556 INT WINAPI NtUserGetKeyNameText( LONG lparam, WCHAR *buffer, INT size );
557 SHORT WINAPI NtUserGetKeyState( INT vkey );
558 HKL WINAPI NtUserGetKeyboardLayout( DWORD thread_id );
559 UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts );
560 BOOL WINAPI NtUserGetKeyboardLayoutName( WCHAR *name );
561 BOOL WINAPI NtUserGetKeyboardState( BYTE *state );
562 BOOL WINAPI NtUserGetLayeredWindowAttributes( HWND hwnd, COLORREF *key, BYTE *alpha, DWORD *flags );
563 BOOL WINAPI NtUserGetMenuItemRect( HWND hwnd, HMENU menu, UINT item, RECT *rect );
564 BOOL WINAPI NtUserGetMessage( MSG *msg, HWND hwnd, UINT first, UINT last );
565 int WINAPI NtUserGetMouseMovePointsEx( UINT size, MOUSEMOVEPOINT *ptin, MOUSEMOVEPOINT *ptout,
566 int count, DWORD resolution );
567 BOOL WINAPI NtUserGetObjectInformation( HANDLE handle, INT index, void *info,
568 DWORD len, DWORD *needed );
569 HWND WINAPI NtUserGetOpenClipboardWindow(void);
570 INT WINAPI NtUserGetPriorityClipboardFormat( UINT *list, INT count );
571 HWINSTA WINAPI NtUserGetProcessWindowStation(void);
572 HANDLE WINAPI NtUserGetProp( HWND hwnd, const WCHAR *str );
573 ULONG WINAPI NtUserGetProcessDpiAwarenessContext( HANDLE process );
574 DWORD WINAPI NtUserGetQueueStatus( UINT flags );
575 ULONG WINAPI NtUserGetSystemDpiForProcess( HANDLE process );
576 HMENU WINAPI NtUserGetSystemMenu( HWND hwnd, BOOL revert );
577 HDESK WINAPI NtUserGetThreadDesktop( DWORD thread );
578 INT WINAPI NtUserGetUpdateRgn( HWND hwnd, HRGN hrgn, BOOL erase );
579 BOOL WINAPI NtUserGetUpdatedClipboardFormats( UINT *formats, UINT size, UINT *out_size );
580 BOOL WINAPI NtUserGetUpdateRect( HWND hwnd, RECT *rect, BOOL erase );
581 BOOL WINAPI NtUserGetWindowPlacement( HWND hwnd, WINDOWPLACEMENT *placement );
582 int WINAPI NtUserGetWindowRgnEx( HWND hwnd, HRGN hrgn, UINT unk );
583 BOOL WINAPI NtUserHideCaret( HWND hwnd );
584 NTSTATUS WINAPI NtUserInitializeClientPfnArrays( const struct user_client_procs *client_procsA,
585 const struct user_client_procs *client_procsW,
586 const void *client_workers, HINSTANCE user_module );
587 INT WINAPI NtUserInternalGetWindowText( HWND hwnd, WCHAR *text, INT count );
588 BOOL WINAPI NtUserIsClipboardFormatAvailable( UINT format );
589 BOOL WINAPI NtUserKillTimer( HWND hwnd, UINT_PTR id );
590 UINT WINAPI NtUserMapVirtualKeyEx( UINT code, UINT type, HKL layout );
591 LRESULT WINAPI NtUserMessageCall( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam,
592 void *result_info, DWORD type, BOOL ansi );
593 BOOL WINAPI NtUserMoveWindow( HWND hwnd, INT x, INT y, INT cx, INT cy, BOOL repaint );
594 DWORD WINAPI NtUserMsgWaitForMultipleObjectsEx( DWORD count, const HANDLE *handles,
595 DWORD timeout, DWORD mask, DWORD flags );
596 void WINAPI NtUserNotifyWinEvent( DWORD event, HWND hwnd, LONG object_id, LONG child_id );
597 HWINSTA WINAPI NtUserOpenWindowStation( OBJECT_ATTRIBUTES *attr, ACCESS_MASK access );
598 BOOL WINAPI NtUserSetObjectInformation( HANDLE handle, INT index, void *info, DWORD len );
599 BOOL WINAPI NtUserOpenClipboard( HWND hwnd, ULONG unk );
600 HDESK WINAPI NtUserOpenDesktop( OBJECT_ATTRIBUTES *attr, DWORD flags, ACCESS_MASK access );
601 HDESK WINAPI NtUserOpenInputDesktop( DWORD flags, BOOL inherit, ACCESS_MASK access );
602 BOOL WINAPI NtUserPeekMessage( MSG *msg_out, HWND hwnd, UINT first, UINT last, UINT flags );
603 BOOL WINAPI NtUserPostMessage( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam );
604 BOOL WINAPI NtUserPostThreadMessage( DWORD thread, UINT msg, WPARAM wparam, LPARAM lparam );
605 BOOL WINAPI NtUserRedrawWindow( HWND hwnd, const RECT *rect, HRGN hrgn, UINT flags );
606 ATOM WINAPI NtUserRegisterClassExWOW( const WNDCLASSEXW *wc, UNICODE_STRING *name, UNICODE_STRING *version,
607 struct client_menu_name *client_menu_name, DWORD fnid, DWORD flags,
608 DWORD *wow );
609 BOOL WINAPI NtUserRegisterHotKey( HWND hwnd, INT id, UINT modifiers, UINT vk );
610 INT WINAPI NtUserReleaseDC( HWND hwnd, HDC hdc );
611 BOOL WINAPI NtUserRemoveClipboardFormatListener( HWND hwnd );
612 BOOL WINAPI NtUserRemoveMenu( HMENU menu, UINT id, UINT flags );
613 HANDLE WINAPI NtUserRemoveProp( HWND hwnd, const WCHAR *str );
614 BOOL WINAPI NtUserScrollDC( HDC hdc, INT dx, INT dy, const RECT *scroll, const RECT *clip,
615 HRGN ret_update_rgn, RECT *update_rect );
616 HPALETTE WINAPI NtUserSelectPalette( HDC hdc, HPALETTE palette, WORD force_background );
617 UINT WINAPI NtUserSendInput( UINT count, INPUT *inputs, int size );
618 HWND WINAPI NtUserSetActiveWindow( HWND hwnd );
619 HWND WINAPI NtUserSetCapture( HWND hwnd );
620 DWORD WINAPI NtUserSetClassLong( HWND hwnd, INT offset, LONG newval, BOOL ansi );
621 ULONG_PTR WINAPI NtUserSetClassLongPtr( HWND hwnd, INT offset, LONG_PTR newval, BOOL ansi );
622 WORD WINAPI NtUserSetClassWord( HWND hwnd, INT offset, WORD newval );
623 NTSTATUS WINAPI NtUserSetClipboardData( UINT format, HANDLE handle, struct set_clipboard_params *params );
624 HWND WINAPI NtUserSetClipboardViewer( HWND hwnd );
625 HCURSOR WINAPI NtUserSetCursor( HCURSOR cursor );
626 BOOL WINAPI NtUserSetCursorIconData( HCURSOR cursor, UNICODE_STRING *module, UNICODE_STRING *res_name,
627 struct cursoricon_desc *desc );
628 BOOL WINAPI NtUserSetCursorPos( INT x, INT y );
629 HWND WINAPI NtUserSetFocus( HWND hwnd );
630 void WINAPI NtUserSetInternalWindowPos( HWND hwnd, UINT cmd, RECT *rect, POINT *pt );
631 BOOL WINAPI NtUserSetKeyboardState( BYTE *state );
632 BOOL WINAPI NtUserSetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags );
633 BOOL WINAPI NtUserSetMenu( HWND hwnd, HMENU menu );
634 BOOL WINAPI NtUserSetMenuContextHelpId( HMENU handle, DWORD id );
635 BOOL WINAPI NtUserSetMenuDefaultItem( HMENU handle, UINT item, UINT bypos );
636 HWND WINAPI NtUserSetParent( HWND hwnd, HWND parent );
637 BOOL WINAPI NtUserSetProcessDpiAwarenessContext( ULONG awareness, ULONG unknown );
638 BOOL WINAPI NtUserSetProcessWindowStation( HWINSTA handle );
639 BOOL WINAPI NtUserSetProp( HWND hwnd, const WCHAR *str, HANDLE handle );
640 BOOL WINAPI NtUserSetSysColors( INT count, const INT *colors, const COLORREF *values );
641 BOOL WINAPI NtUserSetSystemMenu( HWND hwnd, HMENU menu );
642 UINT_PTR WINAPI NtUserSetSystemTimer( HWND hwnd, UINT_PTR id, UINT timeout );
643 BOOL WINAPI NtUserSetThreadDesktop( HDESK handle );
644 UINT_PTR WINAPI NtUserSetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC proc, ULONG tolerance );
645 LONG WINAPI NtUserSetWindowLong( HWND hwnd, INT offset, LONG newval, BOOL ansi );
646 LONG_PTR WINAPI NtUserSetWindowLongPtr( HWND hwnd, INT offset, LONG_PTR newval, BOOL ansi );
647 BOOL WINAPI NtUserSetWindowPlacement( HWND hwnd, const WINDOWPLACEMENT *wpl );
648 BOOL WINAPI NtUserSetWindowPos( HWND hwnd, HWND after, INT x, INT y, INT cx, INT cy, UINT flags );
649 int WINAPI NtUserSetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw );
650 WORD WINAPI NtUserSetWindowWord( HWND hwnd, INT offset, WORD newval );
651 HHOOK WINAPI NtUserSetWindowsHookEx( HINSTANCE inst, UNICODE_STRING *module, DWORD tid, INT id,
652 HOOKPROC proc, BOOL ansi );
653 HWINEVENTHOOK WINAPI NtUserSetWinEventHook( DWORD event_min, DWORD event_max, HMODULE inst,
654 UNICODE_STRING *module, WINEVENTPROC proc,
655 DWORD pid, DWORD tid, DWORD flags );
656 BOOL WINAPI NtUserShowCaret( HWND hwnd );
657 INT WINAPI NtUserShowCursor( BOOL show );
658 BOOL WINAPI NtUserShowWindow( HWND hwnd, INT cmd );
659 BOOL WINAPI NtUserShowWindowAsync( HWND hwnd, INT cmd );
660 BOOL WINAPI NtUserSystemParametersInfo( UINT action, UINT val, void *ptr, UINT winini );
661 BOOL WINAPI NtUserSystemParametersInfoForDpi( UINT action, UINT val, PVOID ptr, UINT winini, UINT dpi );
662 BOOL WINAPI NtUserThunkedMenuInfo( HMENU menu, const MENUINFO *info );
663 UINT WINAPI NtUserThunkedMenuItemInfo( HMENU menu, UINT pos, UINT flags, UINT method,
664 MENUITEMINFOW *info, UNICODE_STRING *str );
665 INT WINAPI NtUserToUnicodeEx( UINT virt, UINT scan, const BYTE *state,
666 WCHAR *str, int size, UINT flags, HKL layout );
667 BOOL WINAPI NtUserTrackMouseEvent( TRACKMOUSEEVENT *info );
668 INT WINAPI NtUserTranslateAccelerator( HWND hwnd, HACCEL accel, MSG *msg );
669 BOOL WINAPI NtUserTranslateMessage( const MSG *msg, UINT flags );
670 BOOL WINAPI NtUserUnhookWinEvent( HWINEVENTHOOK hEventHook );
671 BOOL WINAPI NtUserUnhookWindowsHookEx( HHOOK handle );
672 BOOL WINAPI NtUserUnregisterClass( UNICODE_STRING *name, HINSTANCE instance,
673 struct client_menu_name *client_menu_name );
674 BOOL WINAPI NtUserUnregisterHotKey( HWND hwnd, INT id );
675 BOOL WINAPI NtUserUpdateLayeredWindow( HWND hwnd, HDC hdc_dst, const POINT *pts_dst, const SIZE *size,
676 HDC hdc_src, const POINT *pts_src, COLORREF key,
677 const BLENDFUNCTION *blend, DWORD flags, const RECT *dirty );
678 WORD WINAPI NtUserVkKeyScanEx( WCHAR chr, HKL layout );
679 DWORD WINAPI NtUserWaitForInputIdle( HANDLE process, DWORD timeout, BOOL wow );
680 HWND WINAPI NtUserWindowFromDC( HDC hdc );
681 HWND WINAPI NtUserWindowFromPoint( LONG x, LONG y );
683 /* NtUserCallNoParam codes, not compatible with Windows */
684 enum
686 NtUserCallNoParam_DestroyCaret,
687 NtUserCallNoParam_GetDesktopWindow,
688 NtUserCallNoParam_GetInputState,
689 NtUserCallNoParam_ReleaseCapture,
690 /* temporary exports */
691 NtUserExitingThread,
692 NtUserThreadDetach,
695 static inline BOOL NtUserDestroyCaret(void)
697 return NtUserCallNoParam( NtUserCallNoParam_DestroyCaret );
700 static inline HWND NtUserGetDesktopWindow(void)
702 return UlongToHandle( NtUserCallNoParam( NtUserCallNoParam_GetDesktopWindow ));
705 static inline BOOL NtUserGetInputState(void)
707 return NtUserCallNoParam( NtUserCallNoParam_GetInputState );
710 static inline BOOL NtUserReleaseCapture(void)
712 return NtUserCallNoParam( NtUserCallNoParam_ReleaseCapture );
715 /* NtUserCallOneParam codes, not compatible with Windows */
716 enum
718 NtUserCallOneParam_BeginDeferWindowPos,
719 NtUserCallOneParam_CreateCursorIcon,
720 NtUserCallOneParam_CreateMenu,
721 NtUserCallOneParam_DispatchMessageA,
722 NtUserCallOneParam_EnableDC,
723 NtUserCallOneParam_EnableThunkLock,
724 NtUserCallOneParam_EnumClipboardFormats,
725 NtUserCallOneParam_GetClipCursor,
726 NtUserCallOneParam_GetCursorPos,
727 NtUserCallOneParam_GetIconParam,
728 NtUserCallOneParam_GetMenuItemCount,
729 NtUserCallOneParam_GetPrimaryMonitorRect,
730 NtUserCallOneParam_GetSysColor,
731 NtUserCallOneParam_GetSysColorBrush,
732 NtUserCallOneParam_GetSysColorPen,
733 NtUserCallOneParam_GetSystemMetrics,
734 NtUserCallOneParam_GetVirtualScreenRect,
735 NtUserCallOneParam_IsWindowRectFullScreen,
736 NtUserCallOneParam_MessageBeep,
737 NtUserCallOneParam_RealizePalette,
738 NtUserCallOneParam_SetCaretBlinkTime,
739 /* temporary exports */
740 NtUserCallHooks,
741 NtUserGetDeskPattern,
742 NtUserGetWinProcPtr,
743 NtUserLock,
744 NtUserSetCallbacks,
745 NtUserSpyGetVKeyName,
748 static inline HDWP NtUserBeginDeferWindowPos( INT count )
750 return UlongToHandle( NtUserCallOneParam( count, NtUserCallOneParam_BeginDeferWindowPos ));
753 static inline HICON NtUserCreateCursorIcon( BOOL is_icon )
755 return UlongToHandle( NtUserCallOneParam( is_icon, NtUserCallOneParam_CreateCursorIcon ));
758 static inline HMENU NtUserCreateMenu( BOOL is_popup )
760 return UlongToHandle( NtUserCallOneParam( is_popup, NtUserCallOneParam_CreateMenu ));
763 static inline LRESULT NtUserDispatchMessageA( const MSG *msg )
765 return NtUserCallOneParam( (UINT_PTR)msg, NtUserCallOneParam_DispatchMessageA );
768 static inline WORD NtUserEnableDC( HDC hdc )
770 return NtUserCallOneParam( HandleToUlong(hdc), NtUserCallOneParam_EnableDC );
773 static inline void NtUserEnableThunkLock( BOOL enable )
775 NtUserCallOneParam( enable, NtUserCallOneParam_EnableThunkLock );
778 static inline UINT NtUserEnumClipboardFormats( UINT format )
780 return NtUserCallOneParam( format, NtUserCallOneParam_EnumClipboardFormats );
783 static inline BOOL NtUserGetClipCursor( RECT *rect )
785 return NtUserCallOneParam( (UINT_PTR)rect, NtUserCallOneParam_GetClipCursor );
788 static inline BOOL NtUserGetCursorPos( POINT *pt )
790 return NtUserCallOneParam( (UINT_PTR)pt, NtUserCallOneParam_GetCursorPos );
793 static inline UINT_PTR NtUserGetIconParam( HICON icon )
795 return NtUserCallOneParam( HandleToUlong(icon), NtUserCallOneParam_GetIconParam );
798 static inline UINT_PTR NtUserGetMenuItemCount( HMENU menu )
800 return NtUserCallOneParam( HandleToUlong(menu), NtUserCallOneParam_GetMenuItemCount );
803 static inline RECT NtUserGetPrimaryMonitorRect(void)
805 RECT primary;
806 NtUserCallOneParam( (UINT_PTR)&primary, NtUserCallOneParam_GetPrimaryMonitorRect );
807 return primary;
810 static inline BOOL NtUserSetCaretBlinkTime( unsigned int time )
812 return NtUserCallOneParam( time, NtUserCallOneParam_SetCaretBlinkTime );
815 static inline COLORREF NtUserGetSysColor( INT index )
817 return NtUserCallOneParam( index, NtUserCallOneParam_GetSysColor );
820 static inline HBRUSH NtUserGetSysColorBrush( INT index )
822 return UlongToHandle( NtUserCallOneParam( index, NtUserCallOneParam_GetSysColorBrush ));
825 static inline HPEN NtUserGetSysColorPen( INT index )
827 return UlongToHandle( NtUserCallOneParam( index, NtUserCallOneParam_GetSysColorPen ));
830 static inline INT NtUserGetSystemMetrics( INT index )
832 return NtUserCallOneParam( index, NtUserCallOneParam_GetSystemMetrics );
835 static inline RECT NtUserGetVirtualScreenRect(void)
837 RECT virtual;
838 NtUserCallOneParam( (UINT_PTR)&virtual, NtUserCallOneParam_GetVirtualScreenRect );
839 return virtual;
842 static inline BOOL NtUserIsWindowRectFullScreen( const RECT *rect )
844 return NtUserCallOneParam( (UINT_PTR)rect, NtUserCallOneParam_IsWindowRectFullScreen );
847 static inline BOOL NtUserMessageBeep( UINT i )
849 return NtUserCallOneParam( i, NtUserCallOneParam_MessageBeep );
852 static inline UINT NtUserRealizePalette( HDC hdc )
854 return NtUserCallOneParam( HandleToUlong(hdc), NtUserCallOneParam_RealizePalette );
857 /* NtUserCallTwoParam codes, not compatible with Windows */
858 enum
860 NtUserCallTwoParam_GetMenuInfo,
861 NtUserCallTwoParam_GetMonitorInfo,
862 NtUserCallTwoParam_GetSystemMetricsForDpi,
863 NtUserCallTwoParam_MonitorFromRect,
864 NtUserCallTwoParam_ReplyMessage,
865 NtUserCallTwoParam_SetCaretPos,
866 NtUserCallTwoParam_SetIconParam,
867 NtUserCallTwoParam_UnhookWindowsHook,
868 /* temporary exports */
869 NtUserAllocWinProc,
870 NtUserGetHandlePtr,
873 static inline BOOL NtUserGetMenuInfo( HMENU menu, MENUINFO *info )
875 return NtUserCallTwoParam( HandleToUlong(menu), (ULONG_PTR)info,
876 NtUserCallTwoParam_GetMenuInfo );
879 static inline BOOL NtUserGetMonitorInfo( HMONITOR monitor, MONITORINFO *info )
881 return NtUserCallTwoParam( HandleToUlong(monitor), (ULONG_PTR)info,
882 NtUserCallTwoParam_GetMonitorInfo );
885 static inline INT NtUserGetSystemMetricsForDpi( INT index, UINT dpi )
887 return NtUserCallTwoParam( index, dpi, NtUserCallTwoParam_GetSystemMetricsForDpi );
890 static inline HMONITOR NtUserMonitorFromRect( const RECT *rect, DWORD flags )
892 ULONG ret = NtUserCallTwoParam( (LONG_PTR)rect, flags, NtUserCallTwoParam_MonitorFromRect );
893 return UlongToHandle( ret );
896 static inline BOOL NtUserReplyMessage( LRESULT result, MSG *msg )
898 return NtUserCallTwoParam( result, (UINT_PTR)msg, NtUserCallTwoParam_ReplyMessage );
901 static inline BOOL NtUserSetCaretPos( int x, int y )
903 return NtUserCallTwoParam( x, y, NtUserCallTwoParam_SetCaretPos );
906 static inline UINT_PTR NtUserSetIconParam( HICON icon, ULONG_PTR param )
908 return NtUserCallTwoParam( HandleToUlong(icon), param, NtUserCallTwoParam_SetIconParam );
911 static inline BOOL NtUserUnhookWindowsHook( INT id, HOOKPROC proc )
913 return NtUserCallTwoParam( id, (UINT_PTR)proc, NtUserCallTwoParam_UnhookWindowsHook );
916 /* NtUserCallHwnd codes, not compatible with Windows */
917 enum
919 NtUserCallHwnd_ArrangeIconicWindows,
920 NtUserCallHwnd_DrawMenuBar,
921 NtUserCallHwnd_GetDpiForWindow,
922 NtUserCallHwnd_GetParent,
923 NtUserCallHwnd_GetWindowContextHelpId,
924 NtUserCallHwnd_GetWindowDpiAwarenessContext,
925 NtUserCallHwnd_GetWindowTextLength,
926 NtUserCallHwnd_IsWindow,
927 NtUserCallHwnd_IsWindowEnabled,
928 NtUserCallHwnd_IsWindowUnicode,
929 NtUserCallHwnd_IsWindowVisible,
932 static inline UINT NtUserArrangeIconicWindows( HWND parent )
934 return NtUserCallHwnd( parent, NtUserCallHwnd_ArrangeIconicWindows );
937 static inline BOOL NtUserDrawMenuBar( HWND hwnd )
939 return NtUserCallHwnd( hwnd, NtUserCallHwnd_DrawMenuBar );
942 static inline DWORD NtUserGetWindowContextHelpId( HWND hwnd )
944 return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetWindowContextHelpId );
947 static inline UINT NtUserGetDpiForWindow( HWND hwnd )
949 return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetDpiForWindow );
952 static inline HWND NtUserGetParent( HWND hwnd )
954 return UlongToHandle( NtUserCallHwnd( hwnd, NtUserCallHwnd_GetParent ));
957 static inline DPI_AWARENESS_CONTEXT NtUserGetWindowDpiAwarenessContext( HWND hwnd )
959 return (DPI_AWARENESS_CONTEXT)NtUserCallHwnd( hwnd,
960 NtUserCallHwnd_GetWindowDpiAwarenessContext );
963 static inline INT NtUserGetWindowTextLength( HWND hwnd )
965 return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetWindowTextLength );
968 static inline BOOL NtUserIsWindow( HWND hwnd )
970 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindow );
973 static inline BOOL NtUserIsWindowEnabled( HWND hwnd )
975 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowEnabled );
978 static inline BOOL NtUserIsWindowUnicode( HWND hwnd )
980 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowUnicode );
983 static inline BOOL NtUserIsWindowVisible( HWND hwnd )
985 return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowVisible );
988 /* NtUserCallHwndParam codes, not compatible with Windows */
989 enum
991 NtUserCallHwndParam_ClientToScreen,
992 NtUserCallHwndParam_EnableWindow,
993 NtUserCallHwndParam_GetClassLongA,
994 NtUserCallHwndParam_GetClassLongW,
995 NtUserCallHwndParam_GetClassLongPtrA,
996 NtUserCallHwndParam_GetClassLongPtrW,
997 NtUserCallHwndParam_GetClassWord,
998 NtUserCallHwndParam_GetClientRect,
999 NtUserCallHwndParam_GetMinMaxInfo,
1000 NtUserCallHwndParam_GetWindowInfo,
1001 NtUserCallHwndParam_GetWindowLongA,
1002 NtUserCallHwndParam_GetWindowLongW,
1003 NtUserCallHwndParam_GetWindowLongPtrA,
1004 NtUserCallHwndParam_GetWindowLongPtrW,
1005 NtUserCallHwndParam_GetWindowRect,
1006 NtUserCallHwndParam_GetWindowRelative,
1007 NtUserCallHwndParam_GetWindowThread,
1008 NtUserCallHwndParam_GetWindowWord,
1009 NtUserCallHwndParam_IsChild,
1010 NtUserCallHwndParam_KillSystemTimer,
1011 NtUserCallHwndParam_MapWindowPoints,
1012 NtUserCallHwndParam_MirrorRgn,
1013 NtUserCallHwndParam_MonitorFromWindow,
1014 NtUserCallHwndParam_ScreenToClient,
1015 NtUserCallHwndParam_SetForegroundWindow,
1016 NtUserCallHwndParam_SetWindowPixelFormat,
1017 NtUserCallHwndParam_ShowOwnedPopups,
1018 /* temporary exports */
1019 NtUserIsWindowDrawable,
1020 NtUserSetCaptureWindow,
1021 NtUserSetWindowStyle,
1022 NtUserSpyGetMsgName,
1025 static inline BOOL NtUserClientToScreen( HWND hwnd, POINT *pt )
1027 return NtUserCallHwndParam( hwnd, (UINT_PTR)pt, NtUserCallHwndParam_ClientToScreen );
1030 static inline BOOL NtUserEnableWindow( HWND hwnd, BOOL enable )
1032 return NtUserCallHwndParam( hwnd, enable, NtUserCallHwndParam_EnableWindow );
1035 static inline DWORD NtUserGetClassLongA( HWND hwnd, INT offset )
1037 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongA );
1040 static inline ULONG_PTR NtUserGetClassLongPtrA( HWND hwnd, INT offset )
1042 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongPtrA );
1045 static inline ULONG_PTR NtUserGetClassLongPtrW( HWND hwnd, INT offset )
1047 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongPtrW );
1050 static inline DWORD NtUserGetClassLongW( HWND hwnd, INT offset )
1052 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassLongW );
1055 static inline WORD NtUserGetClassWord( HWND hwnd, INT offset )
1057 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetClassWord );
1060 static inline BOOL NtUserGetClientRect( HWND hwnd, RECT *rect )
1062 return NtUserCallHwndParam( hwnd, (UINT_PTR)rect, NtUserCallHwndParam_GetClientRect );
1065 static inline MINMAXINFO NtUserGetMinMaxInfo( HWND hwnd )
1067 MINMAXINFO info;
1068 NtUserCallHwndParam( hwnd, (UINT_PTR)&info, NtUserCallHwndParam_GetMinMaxInfo );
1069 return info;
1072 static inline BOOL NtUserGetWindowInfo( HWND hwnd, WINDOWINFO *info )
1074 return NtUserCallHwndParam( hwnd, (UINT_PTR)info, NtUserCallHwndParam_GetWindowInfo );
1077 static inline LONG NtUserGetWindowLongA( HWND hwnd, INT offset )
1079 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongA );
1082 static inline LONG_PTR NtUserGetWindowLongPtrA( HWND hwnd, INT offset )
1084 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongPtrA );
1087 static inline LONG_PTR NtUserGetWindowLongPtrW( HWND hwnd, INT offset )
1089 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongPtrW );
1092 static inline LONG NtUserGetWindowLongW( HWND hwnd, INT offset )
1094 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowLongW );
1097 static inline BOOL NtUserGetWindowRect( HWND hwnd, RECT *rect )
1099 return NtUserCallHwndParam( hwnd, (UINT_PTR)rect, NtUserCallHwndParam_GetWindowRect );
1102 static inline HWND NtUserGetWindowRelative( HWND hwnd, UINT rel )
1104 return UlongToHandle( NtUserCallHwndParam( hwnd, rel,
1105 NtUserCallHwndParam_GetWindowRelative ));
1108 static inline DWORD NtUserGetWindowThread( HWND hwnd, DWORD *process )
1110 return NtUserCallHwndParam( hwnd, (UINT_PTR)process, NtUserCallHwndParam_GetWindowThread );
1113 static inline WORD NtUserGetWindowWord( HWND hwnd, INT offset )
1115 return NtUserCallHwndParam( hwnd, offset, NtUserCallHwndParam_GetWindowWord );
1118 static inline BOOL NtUserIsChild( HWND parent, HWND child )
1120 return NtUserCallHwndParam( parent, HandleToUlong(child), NtUserCallHwndParam_IsChild );
1123 static inline BOOL NtUserKillSystemTimer( HWND hwnd, UINT_PTR id )
1125 return NtUserCallHwndParam( hwnd, id, NtUserCallHwndParam_KillSystemTimer );
1128 struct map_window_points_params
1130 HWND hwnd_to;
1131 POINT *points;
1132 UINT count;
1135 static inline int NtUserMapWindowPoints( HWND hwnd_from, HWND hwnd_to, POINT *points, UINT count )
1137 struct map_window_points_params params;
1138 params.hwnd_to = hwnd_to;
1139 params.points = points;
1140 params.count = count;
1141 return NtUserCallHwndParam( hwnd_from, (UINT_PTR)&params,
1142 NtUserCallHwndParam_MapWindowPoints );
1145 static inline BOOL NtUserMirrorRgn( HWND hwnd, HRGN hrgn )
1147 return NtUserCallHwndParam( hwnd, HandleToUlong(hrgn), NtUserCallHwndParam_MirrorRgn );
1150 static inline HMONITOR NtUserMonitorFromWindow( HWND hwnd, DWORD flags )
1152 ULONG ret = NtUserCallHwndParam( hwnd, flags, NtUserCallHwndParam_MonitorFromWindow );
1153 return UlongToHandle( ret );
1156 static inline BOOL NtUserScreenToClient( HWND hwnd, POINT *pt )
1158 return NtUserCallHwndParam( hwnd, (UINT_PTR)pt, NtUserCallHwndParam_ScreenToClient );
1161 static inline BOOL NtUserSetForegroundWindow( HWND hwnd, BOOL mouse )
1163 return NtUserCallHwndParam( hwnd, mouse, NtUserCallHwndParam_SetForegroundWindow );
1166 static inline BOOL NtUserSetWindowPixelFormat( HWND hwnd, int format )
1168 return NtUserCallHwndParam( hwnd, format, NtUserCallHwndParam_SetWindowPixelFormat );
1171 static inline BOOL NtUserShowOwnedPopups( HWND hwnd, BOOL show )
1173 return NtUserCallHwndParam( hwnd, show, NtUserCallHwndParam_ShowOwnedPopups );
1176 #endif /* _NTUSER_ */