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
26 /* KernelCallbackTable codes, not compatible with Windows */
29 /* user32 callbacks */
30 NtUserCallEnumDisplayMonitor
,
31 NtUserCallSendAsyncCallback
,
32 NtUserCallWinEventHook
,
34 NtUserCallWindowsHook
,
36 NtUserFreeCachedClipboardData
,
38 NtUserRegisterBuiltinClasses
,
39 NtUserRenderSynthesizedFormat
,
44 NtUserCallVulkanDebugReportCallback
,
45 NtUserCallVulkanDebugUtilsCallback
,
46 /* Driver-specific callbacks */
47 NtUserDriverCallbackFirst
,
48 NtUserDriverCallbackLast
= NtUserDriverCallbackFirst
+ 10,
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
78 /* NtUserCallSendAsyncCallback params */
79 struct send_async_params
81 SENDASYNCPROC callback
;
88 /* NtUserCallWinEventHook params */
89 struct win_event_hook_params
99 WCHAR module
[MAX_PATH
];
102 /* type of message-sending functions that need special WM_CHAR handling */
105 WMCHAR_MAP_POSTMESSAGE
,
106 WMCHAR_MAP_SENDMESSAGE
,
107 WMCHAR_MAP_SENDMESSAGETIMEOUT
,
108 WMCHAR_MAP_RECVMESSAGE
,
109 WMCHAR_MAP_DISPATCHMESSAGE
,
110 WMCHAR_MAP_CALLWINDOWPROC
,
112 WMCHAR_MAP_NOMAPPING
= WMCHAR_MAP_COUNT
115 /* NtUserCallWindowProc params */
116 struct win_proc_params
128 enum wm_char_mapping mapping
;
129 DPI_AWARENESS_CONTEXT dpi_awareness
;
134 /* NtUserCallWindowsHook params */
135 struct win_hook_params
147 WCHAR module
[MAX_PATH
];
150 /* NtUserCopyMessage params */
151 struct copy_image_params
160 /* NtUserFreeCachedClipboardData params */
161 struct free_cached_data_params
167 /* NtUserRenderSynthesizedFormat params */
168 struct render_synthesized_format_params
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 */
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 */
199 NtUserSetMenuItemInfo
,
200 NtUserInsertMenuItem
,
201 /* Wine extensions */
205 struct send_message_timeout_params
212 struct send_message_callback_params
214 SENDASYNCPROC callback
;
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
;
236 WNDPROC pEditWndProc
;
237 WNDPROC pListBoxWndProc
;
238 WNDPROC pMDIClientWndProc
;
239 WNDPROC pScrollBarWndProc
;
240 WNDPROC pStaticWndProc
;
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) */
259 struct cursoricon_desc
265 struct cursoricon_frame
*frames
;
271 struct client_menu_name
275 UNICODE_STRING
*nameUS
;
278 /* NtUserGetClipboardData params, not compatible with Windows */
279 struct get_clipboard_params
288 /* NtUserSetClipboardData params, not compatible with Windows */
289 struct set_clipboard_params
297 /* internal messages codes */
298 enum wine_internal_message
300 WM_WINE_DESTROYWINDOW
= 0x80000000,
301 WM_WINE_SETWINDOWPOS
,
304 WM_WINE_SETWINDOWLONG
,
306 WM_WINE_SETACTIVEWINDOW
,
307 WM_WINE_KEYBOARD_LL_HOOK
,
308 WM_WINE_MOUSE_LL_HOOK
,
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
;
335 struct packed_DRAWITEMSTRUCT
350 struct packed_MEASUREITEMSTRUCT
360 struct packed_DELETEITEMSTRUCT
370 struct packed_COMPAREITEMSTRUCT
384 struct packed_WINDOWPOS
388 UINT hwndInsertAfter
;
398 struct packed_COPYDATASTRUCT
405 struct packed_HELPINFO
412 ULONGLONG dwContextId
;
416 struct packed_NCCALCSIZE_PARAMS
422 UINT hwndInsertAfter
;
444 struct packed_MDINEXTMENU
454 struct packed_MDICREATESTRUCTW
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
,
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
,
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
,
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
,
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 */
686 NtUserCallNoParam_DestroyCaret
,
687 NtUserCallNoParam_GetDesktopWindow
,
688 NtUserCallNoParam_GetInputState
,
689 NtUserCallNoParam_ReleaseCapture
,
690 /* temporary exports */
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 */
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 */
741 NtUserGetDeskPattern
,
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)
806 NtUserCallOneParam( (UINT_PTR
)&primary
, NtUserCallOneParam_GetPrimaryMonitorRect
);
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)
838 NtUserCallOneParam( (UINT_PTR
)&virtual, NtUserCallOneParam_GetVirtualScreenRect
);
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 */
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 */
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 */
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 */
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
)
1068 NtUserCallHwndParam( hwnd
, (UINT_PTR
)&info
, NtUserCallHwndParam_GetMinMaxInfo
);
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
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
)¶ms
,
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_ */