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