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
,
40 NtUserCallVulkanDebugReportCallback
,
41 NtUserCallVulkanDebugUtilsCallback
,
45 /* NtUserCallEnumDisplayMonitor params */
46 struct enum_display_monitor_params
55 /* NtUserCallSendAsyncCallback params */
56 struct send_async_params
58 SENDASYNCPROC callback
;
65 /* NtUserCallWinEventHook params */
66 struct win_event_hook_params
76 WCHAR module
[MAX_PATH
];
79 /* type of message-sending functions that need special WM_CHAR handling */
82 WMCHAR_MAP_POSTMESSAGE
,
83 WMCHAR_MAP_SENDMESSAGE
,
84 WMCHAR_MAP_SENDMESSAGETIMEOUT
,
85 WMCHAR_MAP_RECVMESSAGE
,
86 WMCHAR_MAP_DISPATCHMESSAGE
,
87 WMCHAR_MAP_CALLWINDOWPROC
,
89 WMCHAR_MAP_NOMAPPING
= WMCHAR_MAP_COUNT
92 /* NtUserCallWindowProc params */
93 struct win_proc_params
105 enum wm_char_mapping mapping
;
106 DPI_AWARENESS_CONTEXT dpi_awareness
;
111 /* NtUserCallWindowsHook params */
112 struct win_hook_params
124 WCHAR module
[MAX_PATH
];
127 /* process DPI awareness contexts */
128 #define NTUSER_DPI_UNAWARE 0x00006010
129 #define NTUSER_DPI_SYSTEM_AWARE 0x00006011
130 #define NTUSER_DPI_PER_MONITOR_AWARE 0x00000012
131 #define NTUSER_DPI_PER_MONITOR_AWARE_V2 0x00000022
132 #define NTUSER_DPI_PER_UNAWARE_GDISCALED 0x40006010
134 /* NtUserCallNoParam codes, not compatible with Windows */
138 NtUserGetDesktopWindow
,
140 NtUserReleaseCapture
,
141 /* temporary exports */
143 NtUserProcessSentMessages
,
147 /* NtUserCallOneParam codes, not compatible with Windows */
150 NtUserBeginDeferWindowPos
,
151 NtUserCreateCursorIcon
,
152 NtUserDispatchMessageA
,
154 NtUserEnableThunkLock
,
158 NtUserGetPrimaryMonitorRect
,
160 NtUserGetSysColorBrush
,
161 NtUserGetSysColorPen
,
162 NtUserGetSystemMetrics
,
163 NtUserGetVirtualScreenRect
,
165 NtUserRealizePalette
,
166 /* temporary exports */
168 NtUserFlushWindowSurfaces
,
169 NtUserGetDeskPattern
,
171 NtUserHandleInternalMessage
,
172 NtUserIncrementKeyStateCounter
,
175 NtUserSpyGetVKeyName
,
178 /* NtUserCallTwoParam codes, not compatible with Windows */
181 NtUserGetMonitorInfo
,
182 NtUserGetSystemMetricsForDpi
,
184 NtUserMonitorFromRect
,
187 NtUserUnhookWindowsHook
,
188 /* temporary exports */
193 /* NtUserCallHwnd codes, not compatible with Windows */
196 NtUserArrangeIconicWindows
,
197 NtUserGetDpiForWindow
,
199 NtUserGetWindowContextHelpId
,
200 NtUserGetWindowDpiAwarenessContext
,
201 NtUserGetWindowTextLength
,
203 NtUserIsWindowUnicode
,
204 NtUserIsWindowVisible
,
207 /* NtUserCallHwndParam codes, not compatible with Windows */
212 NtUserGetClassLongPtrA
,
213 NtUserGetClassLongPtrW
,
218 NtUserGetWindowLongA
,
219 NtUserGetWindowLongW
,
220 NtUserGetWindowLongPtrA
,
221 NtUserGetWindowLongPtrW
,
222 NtUserGetWindowPlacement
,
224 NtUserGetWindowRelative
,
225 NtUserGetWindowThread
,
228 NtUserKillSystemTimer
,
229 NtUserMonitorFromWindow
,
230 NtUserScreenToClient
,
231 NtUserSetCaptureWindow
,
232 NtUserSetForegroundWindow
,
233 NtUserSetWindowPixelFormat
,
234 /* temporary exports */
235 NtUserIsWindowDrawable
,
236 NtUserSetWindowStyle
,
240 /* NtUserMessageCall codes */
243 FNID_CALLWNDPROC
= 0x02ab,
244 FNID_SENDMESSAGE
= 0x02b1,
245 FNID_SENDNOTIFYMESSAGE
= 0x02b7,
246 /* Wine-specific exports */
247 FNID_SPYENTER
= 0x0300,
248 FNID_SPYEXIT
= 0x0301,
251 /* color index used to retrieve system 55aa brush */
252 #define COLOR_55AA_BRUSH 0x100
254 /* user object types */
255 #define NTUSER_OBJ_WINDOW 0x01
256 #define NTUSER_OBJ_MENU 0x02
257 #define NTUSER_OBJ_ICON 0x03
258 #define NTUSER_OBJ_WINPOS 0x04
259 #define NTUSER_OBJ_ACCEL 0x08
260 #define NTUSER_OBJ_HOOK 0x0f
262 /* NtUserInitializeClientPfnArrays parameter, not compatible with Windows */
263 struct user_client_procs
265 WNDPROC pButtonWndProc
;
266 WNDPROC pComboWndProc
;
267 WNDPROC pDefWindowProc
;
269 WNDPROC pEditWndProc
;
270 WNDPROC pListBoxWndProc
;
271 WNDPROC pMDIClientWndProc
;
272 WNDPROC pScrollBarWndProc
;
273 WNDPROC pStaticWndProc
;
275 WNDPROC pDesktopWndProc
;
276 WNDPROC pIconTitleWndProc
;
277 WNDPROC pPopupMenuWndProc
;
278 WNDPROC pMessageWndProc
;
281 /* NtUserSetCursorIconData parameter, not compatible with Windows */
282 struct cursoricon_frame
284 UINT width
; /* frame-specific width */
285 UINT height
; /* frame-specific height */
286 HBITMAP color
; /* color bitmap */
287 HBITMAP alpha
; /* pre-multiplied alpha bitmap for 32-bpp icons */
288 HBITMAP mask
; /* mask bitmap (followed by color for 1-bpp icons) */
292 struct cursoricon_desc
298 struct cursoricon_frame
*frames
;
304 struct client_menu_name
308 UNICODE_STRING
*nameUS
;
311 /* internal messages codes */
312 enum wine_internal_message
314 WM_WINE_DESTROYWINDOW
= 0x80000000,
315 WM_WINE_SETWINDOWPOS
,
318 WM_WINE_SETWINDOWLONG
,
320 WM_WINE_SETACTIVEWINDOW
,
321 WM_WINE_KEYBOARD_LL_HOOK
,
322 WM_WINE_MOUSE_LL_HOOK
,
324 WM_WINE_UPDATEWINDOWSTATE
,
325 WM_WINE_FIRST_DRIVER_MSG
= 0x80001000, /* range of messages reserved for the USER driver */
326 WM_WINE_LAST_DRIVER_MSG
= 0x80001fff
329 /* the various structures that can be sent in messages, in platform-independent layout */
330 struct packed_CREATESTRUCTW
332 ULONGLONG lpCreateParams
;
349 struct packed_DRAWITEMSTRUCT
364 struct packed_MEASUREITEMSTRUCT
374 struct packed_DELETEITEMSTRUCT
384 struct packed_COMPAREITEMSTRUCT
398 struct packed_WINDOWPOS
402 UINT hwndInsertAfter
;
412 struct packed_COPYDATASTRUCT
419 struct packed_HELPINFO
426 ULONGLONG dwContextId
;
430 struct packed_NCCALCSIZE_PARAMS
436 UINT hwndInsertAfter
;
458 struct packed_MDINEXTMENU
468 struct packed_MDICREATESTRUCTW
482 HKL WINAPI
NtUserActivateKeyboardLayout( HKL layout
, UINT flags
);
483 BOOL WINAPI
NtUserAddClipboardFormatListener( HWND hwnd
);
484 BOOL WINAPI
NtUserAttachThreadInput( DWORD from
, DWORD to
, BOOL attach
);
485 HDC WINAPI
NtUserBeginPaint( HWND hwnd
, PAINTSTRUCT
*ps
);
486 NTSTATUS WINAPI
NtUserBuildHwndList( HDESK desktop
, ULONG unk2
, ULONG unk3
, ULONG unk4
,
487 ULONG thread_id
, ULONG count
, HWND
*buffer
, ULONG
*size
);
488 ULONG_PTR WINAPI
NtUserCallHwnd( HWND hwnd
, DWORD code
);
489 ULONG_PTR WINAPI
NtUserCallHwndParam( HWND hwnd
, DWORD_PTR param
, DWORD code
);
490 LRESULT WINAPI
NtUserCallNextHookEx( HHOOK hhook
, INT code
, WPARAM wparam
, LPARAM lparam
);
491 ULONG_PTR WINAPI
NtUserCallNoParam( ULONG code
);
492 ULONG_PTR WINAPI
NtUserCallOneParam( ULONG_PTR arg
, ULONG code
);
493 ULONG_PTR WINAPI
NtUserCallTwoParam( ULONG_PTR arg1
, ULONG_PTR arg2
, ULONG code
);
494 LONG WINAPI
NtUserChangeDisplaySettings( UNICODE_STRING
*devname
, DEVMODEW
*devmode
, HWND hwnd
,
495 DWORD flags
, void *lparam
);
496 BOOL WINAPI
NtUserClipCursor( const RECT
*rect
);
497 BOOL WINAPI
NtUserCloseDesktop( HDESK handle
);
498 BOOL WINAPI
NtUserCloseWindowStation( HWINSTA handle
);
499 INT WINAPI
NtUserCopyAcceleratorTable( HACCEL src
, ACCEL
*dst
, INT count
);
500 INT WINAPI
NtUserCountClipboardFormats(void);
501 HACCEL WINAPI
NtUserCreateAcceleratorTable( ACCEL
*table
, INT count
);
502 HDESK WINAPI
NtUserCreateDesktopEx( OBJECT_ATTRIBUTES
*attr
, UNICODE_STRING
*device
,
503 DEVMODEW
*devmode
, DWORD flags
, ACCESS_MASK access
,
505 HWND WINAPI
NtUserCreateWindowEx( DWORD ex_style
, UNICODE_STRING
*class_name
,
506 UNICODE_STRING
*version
, UNICODE_STRING
*window_name
,
507 DWORD style
, INT x
, INT y
, INT cx
, INT cy
,
508 HWND parent
, HMENU menu
, HINSTANCE instance
, void *params
,
509 DWORD flags
, CBT_CREATEWNDW
*cbtc
, DWORD unk
, BOOL ansi
);
510 HWINSTA WINAPI
NtUserCreateWindowStation( OBJECT_ATTRIBUTES
*attr
, ACCESS_MASK mask
, ULONG arg3
,
511 ULONG arg4
, ULONG arg5
, ULONG arg6
, ULONG arg7
);
512 HDWP WINAPI
NtUserDeferWindowPosAndBand( HDWP hdwp
, HWND hwnd
, HWND after
, INT x
, INT y
,
513 INT cx
, INT cy
, UINT flags
, UINT unk1
, UINT unk2
);
514 BOOL WINAPI
NtUserDestroyAcceleratorTable( HACCEL handle
);
515 BOOL WINAPI
NtUserDestroyCursor( HCURSOR cursor
, ULONG arg
);
516 BOOL WINAPI
NtUserDestroyMenu( HMENU menu
);
517 BOOL WINAPI
NtUserDestroyWindow( HWND hwnd
);
518 LRESULT WINAPI
NtUserDispatchMessage( const MSG
*msg
);
519 BOOL WINAPI
NtUserDrawIconEx( HDC hdc
, INT x0
, INT y0
, HICON icon
, INT width
,
520 INT height
, UINT istep
, HBRUSH hbr
, UINT flags
);
521 BOOL WINAPI
NtUserEndDeferWindowPosEx( HDWP hdwp
, BOOL async
);
522 BOOL WINAPI
NtUserEndPaint( HWND hwnd
, const PAINTSTRUCT
*ps
);
523 NTSTATUS WINAPI
NtUserEnumDisplayDevices( UNICODE_STRING
*device
, DWORD index
,
524 DISPLAY_DEVICEW
*info
, DWORD flags
);
525 BOOL WINAPI
NtUserEnumDisplayMonitors( HDC hdc
, RECT
*rect
, MONITORENUMPROC proc
, LPARAM lp
);
526 BOOL WINAPI
NtUserEnumDisplaySettings( UNICODE_STRING
*device
, DWORD mode
,
527 DEVMODEW
*dev_mode
, DWORD flags
);
528 HICON WINAPI
NtUserFindExistingCursorIcon( UNICODE_STRING
*module
, UNICODE_STRING
*res_name
,
530 BOOL WINAPI
NtUserFlashWindowEx( FLASHWINFO
*info
);
531 HWND WINAPI
NtUserGetAncestor( HWND hwnd
, UINT type
);
532 SHORT WINAPI
NtUserGetAsyncKeyState( INT key
);
533 ULONG WINAPI
NtUserGetAtomName( ATOM atom
, UNICODE_STRING
*name
);
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 INT WINAPI
NtUserGetClipboardFormatName( UINT format
, WCHAR
*buffer
, INT maxlen
);
538 HWND WINAPI
NtUserGetClipboardOwner(void);
539 DWORD WINAPI
NtUserGetClipboardSequenceNumber(void);
540 HWND WINAPI
NtUserGetClipboardViewer(void);
541 HCURSOR WINAPI
NtUserGetCursor(void);
542 HCURSOR WINAPI
NtUserGetCursorFrameInfo( HCURSOR hCursor
, DWORD istep
, DWORD
*rate_jiffies
,
544 BOOL WINAPI
NtUserGetCursorInfo( CURSORINFO
*info
);
545 HDC WINAPI
NtUserGetDCEx( HWND hwnd
, HRGN clip_rgn
, DWORD flags
);
546 LONG WINAPI
NtUserGetDisplayConfigBufferSizes( UINT32 flags
, UINT32
*num_path_info
,
547 UINT32
*num_mode_info
);
548 UINT WINAPI
NtUserGetDoubleClickTime(void);
549 BOOL WINAPI
NtUserGetDpiForMonitor( HMONITOR monitor
, UINT type
, UINT
*x
, UINT
*y
);
550 HWND WINAPI
NtUserGetForegroundWindow(void);
551 BOOL WINAPI
NtUserGetGUIThreadInfo( DWORD id
, GUITHREADINFO
*info
);
552 BOOL WINAPI
NtUserGetIconInfo( HICON icon
, ICONINFO
*info
, UNICODE_STRING
*module
,
553 UNICODE_STRING
*res_name
, DWORD
*bpp
, LONG unk
);
554 BOOL WINAPI
NtUserGetIconSize( HICON handle
, UINT step
, LONG
*width
, LONG
*height
);
555 INT WINAPI
NtUserGetKeyNameText( LONG lparam
, WCHAR
*buffer
, INT size
);
556 SHORT WINAPI
NtUserGetKeyState( INT vkey
);
557 HKL WINAPI
NtUserGetKeyboardLayout( DWORD thread_id
);
558 UINT WINAPI
NtUserGetKeyboardLayoutList( INT size
, HKL
*layouts
);
559 BOOL WINAPI
NtUserGetKeyboardLayoutName( WCHAR
*name
);
560 BOOL WINAPI
NtUserGetKeyboardState( BYTE
*state
);
561 BOOL WINAPI
NtUserGetLayeredWindowAttributes( HWND hwnd
, COLORREF
*key
, BYTE
*alpha
, DWORD
*flags
);
562 BOOL WINAPI
NtUserGetMessage( MSG
*msg
, HWND hwnd
, UINT first
, UINT last
);
563 int WINAPI
NtUserGetMouseMovePointsEx( UINT size
, MOUSEMOVEPOINT
*ptin
, MOUSEMOVEPOINT
*ptout
,
564 int count
, DWORD resolution
);
565 BOOL WINAPI
NtUserGetObjectInformation( HANDLE handle
, INT index
, void *info
,
566 DWORD len
, DWORD
*needed
);
567 HWND WINAPI
NtUserGetOpenClipboardWindow(void);
568 INT WINAPI
NtUserGetPriorityClipboardFormat( UINT
*list
, INT count
);
569 HWINSTA WINAPI
NtUserGetProcessWindowStation(void);
570 HANDLE WINAPI
NtUserGetProp( HWND hwnd
, const WCHAR
*str
);
571 ULONG WINAPI
NtUserGetProcessDpiAwarenessContext( HANDLE process
);
572 DWORD WINAPI
NtUserGetQueueStatus( UINT flags
);
573 ULONG WINAPI
NtUserGetSystemDpiForProcess( HANDLE process
);
574 HDESK WINAPI
NtUserGetThreadDesktop( DWORD thread
);
575 INT WINAPI
NtUserGetUpdateRgn( HWND hwnd
, HRGN hrgn
, BOOL erase
);
576 BOOL WINAPI
NtUserGetUpdatedClipboardFormats( UINT
*formats
, UINT size
, UINT
*out_size
);
577 BOOL WINAPI
NtUserGetUpdateRect( HWND hwnd
, RECT
*rect
, BOOL erase
);
578 int WINAPI
NtUserGetWindowRgnEx( HWND hwnd
, HRGN hrgn
, UINT unk
);
579 NTSTATUS WINAPI
NtUserInitializeClientPfnArrays( const struct user_client_procs
*client_procsA
,
580 const struct user_client_procs
*client_procsW
,
581 const void *client_workers
, HINSTANCE user_module
);
582 INT WINAPI
NtUserInternalGetWindowText( HWND hwnd
, WCHAR
*text
, INT count
);
583 BOOL WINAPI
NtUserIsClipboardFormatAvailable( UINT format
);
584 BOOL WINAPI
NtUserKillTimer( HWND hwnd
, UINT_PTR id
);
585 UINT WINAPI
NtUserMapVirtualKeyEx( UINT code
, UINT type
, HKL layout
);
586 BOOL WINAPI
NtUserMessageCall( HWND hwnd
, UINT msg
, WPARAM wparam
, LPARAM lparam
,
587 ULONG_PTR result_info
, DWORD type
, BOOL ansi
);
588 BOOL WINAPI
NtUserMoveWindow( HWND hwnd
, INT x
, INT y
, INT cx
, INT cy
, BOOL repaint
);
589 void WINAPI
NtUserNotifyWinEvent( DWORD event
, HWND hwnd
, LONG object_id
, LONG child_id
);
590 HWINSTA WINAPI
NtUserOpenWindowStation( OBJECT_ATTRIBUTES
*attr
, ACCESS_MASK access
);
591 BOOL WINAPI
NtUserSetObjectInformation( HANDLE handle
, INT index
, void *info
, DWORD len
);
592 HDESK WINAPI
NtUserOpenDesktop( OBJECT_ATTRIBUTES
*attr
, DWORD flags
, ACCESS_MASK access
);
593 HDESK WINAPI
NtUserOpenInputDesktop( DWORD flags
, BOOL inherit
, ACCESS_MASK access
);
594 BOOL WINAPI
NtUserPeekMessage( MSG
*msg_out
, HWND hwnd
, UINT first
, UINT last
, UINT flags
);
595 BOOL WINAPI
NtUserRedrawWindow( HWND hwnd
, const RECT
*rect
, HRGN hrgn
, UINT flags
);
596 ATOM WINAPI
NtUserRegisterClassExWOW( const WNDCLASSEXW
*wc
, UNICODE_STRING
*name
, UNICODE_STRING
*version
,
597 struct client_menu_name
*client_menu_name
, DWORD fnid
, DWORD flags
,
599 BOOL WINAPI
NtUserRegisterHotKey( HWND hwnd
, INT id
, UINT modifiers
, UINT vk
);
600 INT WINAPI
NtUserReleaseDC( HWND hwnd
, HDC hdc
);
601 BOOL WINAPI
NtUserRemoveClipboardFormatListener( HWND hwnd
);
602 HANDLE WINAPI
NtUserRemoveProp( HWND hwnd
, const WCHAR
*str
);
603 BOOL WINAPI
NtUserScrollDC( HDC hdc
, INT dx
, INT dy
, const RECT
*scroll
, const RECT
*clip
,
604 HRGN ret_update_rgn
, RECT
*update_rect
);
605 HPALETTE WINAPI
NtUserSelectPalette( HDC hdc
, HPALETTE palette
, WORD force_background
);
606 HWND WINAPI
NtUserSetActiveWindow( HWND hwnd
);
607 HWND WINAPI
NtUserSetCapture( HWND hwnd
);
608 DWORD WINAPI
NtUserSetClassLong( HWND hwnd
, INT offset
, LONG newval
, BOOL ansi
);
609 ULONG_PTR WINAPI
NtUserSetClassLongPtr( HWND hwnd
, INT offset
, LONG_PTR newval
, BOOL ansi
);
610 WORD WINAPI
NtUserSetClassWord( HWND hwnd
, INT offset
, WORD newval
);
611 HCURSOR WINAPI
NtUserSetCursor( HCURSOR cursor
);
612 BOOL WINAPI
NtUserSetCursorIconData( HCURSOR cursor
, UNICODE_STRING
*module
, UNICODE_STRING
*res_name
,
613 struct cursoricon_desc
*desc
);
614 BOOL WINAPI
NtUserSetCursorPos( INT x
, INT y
);
615 HWND WINAPI
NtUserSetFocus( HWND hwnd
);
616 BOOL WINAPI
NtUserSetKeyboardState( BYTE
*state
);
617 BOOL WINAPI
NtUserSetLayeredWindowAttributes( HWND hwnd
, COLORREF key
, BYTE alpha
, DWORD flags
);
618 HWND WINAPI
NtUserSetParent( HWND hwnd
, HWND parent
);
619 BOOL WINAPI
NtUserSetProcessDpiAwarenessContext( ULONG awareness
, ULONG unknown
);
620 BOOL WINAPI
NtUserSetProcessWindowStation( HWINSTA handle
);
621 BOOL WINAPI
NtUserSetProp( HWND hwnd
, const WCHAR
*str
, HANDLE handle
);
622 BOOL WINAPI
NtUserSetSysColors( INT count
, const INT
*colors
, const COLORREF
*values
);
623 BOOL WINAPI
NtUserSetSystemMenu( HWND hwnd
, HMENU menu
);
624 UINT_PTR WINAPI
NtUserSetSystemTimer( HWND hwnd
, UINT_PTR id
, UINT timeout
, TIMERPROC proc
);
625 BOOL WINAPI
NtUserSetThreadDesktop( HDESK handle
);
626 UINT_PTR WINAPI
NtUserSetTimer( HWND hwnd
, UINT_PTR id
, UINT timeout
, TIMERPROC proc
, ULONG tolerance
);
627 LONG WINAPI
NtUserSetWindowLong( HWND hwnd
, INT offset
, LONG newval
, BOOL ansi
);
628 LONG_PTR WINAPI
NtUserSetWindowLongPtr( HWND hwnd
, INT offset
, LONG_PTR newval
, BOOL ansi
);
629 BOOL WINAPI
NtUserSetWindowPos( HWND hwnd
, HWND after
, INT x
, INT y
, INT cx
, INT cy
, UINT flags
);
630 int WINAPI
NtUserSetWindowRgn( HWND hwnd
, HRGN hrgn
, BOOL redraw
);
631 WORD WINAPI
NtUserSetWindowWord( HWND hwnd
, INT offset
, WORD newval
);
632 HHOOK WINAPI
NtUserSetWindowsHookEx( HINSTANCE inst
, UNICODE_STRING
*module
, DWORD tid
, INT id
,
633 HOOKPROC proc
, BOOL ansi
);
634 HWINEVENTHOOK WINAPI
NtUserSetWinEventHook( DWORD event_min
, DWORD event_max
, HMODULE inst
,
635 UNICODE_STRING
*module
, WINEVENTPROC proc
,
636 DWORD pid
, DWORD tid
, DWORD flags
);
637 INT WINAPI
NtUserShowCursor( BOOL show
);
638 BOOL WINAPI
NtUserShowWindow( HWND hwnd
, INT cmd
);
639 BOOL WINAPI
NtUserShowWindowAsync( HWND hwnd
, INT cmd
);
640 BOOL WINAPI
NtUserSystemParametersInfo( UINT action
, UINT val
, void *ptr
, UINT winini
);
641 BOOL WINAPI
NtUserSystemParametersInfoForDpi( UINT action
, UINT val
, PVOID ptr
, UINT winini
, UINT dpi
);
642 INT WINAPI
NtUserToUnicodeEx( UINT virt
, UINT scan
, const BYTE
*state
,
643 WCHAR
*str
, int size
, UINT flags
, HKL layout
);
644 BOOL WINAPI
NtUserUnhookWinEvent( HWINEVENTHOOK hEventHook
);
645 BOOL WINAPI
NtUserUnhookWindowsHookEx( HHOOK handle
);
646 BOOL WINAPI
NtUserUnregisterClass( UNICODE_STRING
*name
, HINSTANCE instance
,
647 struct client_menu_name
*client_menu_name
);
648 BOOL WINAPI
NtUserUnregisterHotKey( HWND hwnd
, INT id
);
649 BOOL WINAPI
NtUserUpdateLayeredWindow( HWND hwnd
, HDC hdc_dst
, const POINT
*pts_dst
, const SIZE
*size
,
650 HDC hdc_src
, const POINT
*pts_src
, COLORREF key
,
651 const BLENDFUNCTION
*blend
, DWORD flags
, const RECT
*dirty
);
652 WORD WINAPI
NtUserVkKeyScanEx( WCHAR chr
, HKL layout
);
653 DWORD WINAPI
NtUserWaitForInputIdle( HANDLE process
, DWORD timeout
, BOOL wow
);
654 HWND WINAPI
NtUserWindowFromDC( HDC hdc
);
655 HWND WINAPI
NtUserWindowFromPoint( LONG x
, LONG y
);
657 #endif /* _NTUSER_ */