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 NtUserCallEnumDisplayMonitor
,
30 NtUserCallVulkanDebugReportCallback
,
31 NtUserCallVulkanDebugUtilsCallback
,
35 /* NtUserCallEnumDisplayMonitor params */
36 struct enum_display_monitor_params
45 /* process DPI awareness contexts */
46 #define NTUSER_DPI_UNAWARE 0x00006010
47 #define NTUSER_DPI_SYSTEM_AWARE 0x00006011
48 #define NTUSER_DPI_PER_MONITOR_AWARE 0x00000012
49 #define NTUSER_DPI_PER_MONITOR_AWARE_V2 0x00000022
50 #define NTUSER_DPI_PER_UNAWARE_GDISCALED 0x40006010
52 /* NtUserCallOneParam codes, not compatible with Windows */
56 NtUserGetSysColorBrush
,
58 NtUserGetSystemMetrics
,
60 /* temporary exports */
64 /* NtUserCallTwoParam codes, not compatible with Windows */
68 NtUserGetSystemMetricsForDpi
,
72 /* color index used to retrieve system 55aa brush */
73 #define COLOR_55AA_BRUSH 0x100
75 /* this is the structure stored in TEB->Win32ClientInfo */
76 /* no attempt is made to keep the layout compatible with the Windows one */
77 struct user_thread_info
79 HANDLE server_queue
; /* Handle to server-side queue */
80 DWORD wake_mask
; /* Current queue wake mask */
81 DWORD changed_mask
; /* Current queue changed mask */
82 WORD recursion_count
; /* SendMessage recursion counter */
83 WORD message_count
; /* Get/PeekMessage loop counter */
84 WORD hook_call_depth
; /* Number of recursively called hook procs */
85 WORD hook_unicode
; /* Is current hook unicode? */
86 HHOOK hook
; /* Current hook */
87 UINT active_hooks
; /* Bitmap of active hooks */
88 DPI_AWARENESS dpi_awareness
; /* DPI awareness */
89 INPUT_MESSAGE_SOURCE msg_source
; /* Message source for current message */
90 struct received_message_info
*receive_info
; /* Message being currently received */
91 struct wm_char_mapping_data
*wmchar_data
; /* Data for WM_CHAR mappings */
92 DWORD GetMessageTimeVal
; /* Value for GetMessageTime */
93 DWORD GetMessagePosVal
; /* Value for GetMessagePos */
94 ULONG_PTR GetMessageExtraInfoVal
; /* Value for GetMessageExtraInfo */
95 struct user_key_state_info
*key_state
; /* Cache of global key state */
96 HKL kbd_layout
; /* Current keyboard layout */
97 DWORD kbd_layout_id
; /* Current keyboard layout ID */
98 HWND top_window
; /* Desktop window */
99 HWND msg_window
; /* HWND_MESSAGE parent window */
100 struct rawinput_thread_data
*rawinput
; /* RawInput thread local data / buffer */
103 C_ASSERT( sizeof(struct user_thread_info
) <= sizeof(((TEB
*)0)->Win32ClientInfo
) );
105 HKL WINAPI
NtUserActivateKeyboardLayout( HKL layout
, UINT flags
);
106 BOOL WINAPI
NtUserAddClipboardFormatListener( HWND hwnd
);
107 BOOL WINAPI
NtUserAttachThreadInput( DWORD from
, DWORD to
, BOOL attach
);
108 NTSTATUS WINAPI
NtUserBuildHwndList( HDESK desktop
, ULONG unk2
, ULONG unk3
, ULONG unk4
,
109 ULONG thread_id
, ULONG count
, HWND
*buffer
, ULONG
*size
);
110 ULONG_PTR WINAPI
NtUserCallOneParam( ULONG_PTR arg
, ULONG code
);
111 ULONG_PTR WINAPI
NtUserCallTwoParam( ULONG_PTR arg1
, ULONG_PTR arg2
, ULONG code
);
112 LONG WINAPI
NtUserChangeDisplaySettings( UNICODE_STRING
*devname
, DEVMODEW
*devmode
, HWND hwnd
,
113 DWORD flags
, void *lparam
);
114 BOOL WINAPI
NtUserCloseDesktop( HDESK handle
);
115 BOOL WINAPI
NtUserCloseWindowStation( HWINSTA handle
);
116 INT WINAPI
NtUserCountClipboardFormats(void);
117 HDESK WINAPI
NtUserCreateDesktopEx( OBJECT_ATTRIBUTES
*attr
, UNICODE_STRING
*device
,
118 DEVMODEW
*devmode
, DWORD flags
, ACCESS_MASK access
,
120 HWINSTA WINAPI
NtUserCreateWindowStation( OBJECT_ATTRIBUTES
*attr
, ACCESS_MASK mask
, ULONG arg3
,
121 ULONG arg4
, ULONG arg5
, ULONG arg6
, ULONG arg7
);
122 NTSTATUS WINAPI
NtUserEnumDisplayDevices( UNICODE_STRING
*device
, DWORD index
,
123 DISPLAY_DEVICEW
*info
, DWORD flags
);
124 BOOL WINAPI
NtUserEnumDisplayMonitors( HDC hdc
, RECT
*rect
, MONITORENUMPROC proc
, LPARAM lp
);
125 BOOL WINAPI
NtUserEnumDisplaySettings( UNICODE_STRING
*device
, DWORD mode
,
126 DEVMODEW
*dev_mode
, DWORD flags
);
127 INT WINAPI
NtUserGetClipboardFormatName( UINT format
, WCHAR
*buffer
, INT maxlen
);
128 HWND WINAPI
NtUserGetClipboardOwner(void);
129 DWORD WINAPI
NtUserGetClipboardSequenceNumber(void);
130 HWND WINAPI
NtUserGetClipboardViewer(void);
131 HCURSOR WINAPI
NtUserGetCursor(void);
132 LONG WINAPI
NtUserGetDisplayConfigBufferSizes( UINT32 flags
, UINT32
*num_path_info
,
133 UINT32
*num_mode_info
);
134 UINT WINAPI
NtUserGetDoubleClickTime(void);
135 BOOL WINAPI
NtUserGetDpiForMonitor( HMONITOR monitor
, UINT type
, UINT
*x
, UINT
*y
);
136 INT WINAPI
NtUserGetKeyNameText( LONG lparam
, WCHAR
*buffer
, INT size
);
137 SHORT WINAPI
NtUserGetKeyState( INT vkey
);
138 HKL WINAPI
NtUserGetKeyboardLayout( DWORD thread_id
);
139 UINT WINAPI
NtUserGetKeyboardLayoutList( INT size
, HKL
*layouts
);
140 BOOL WINAPI
NtUserGetKeyboardLayoutName( WCHAR
*name
);
141 BOOL WINAPI
NtUserGetKeyboardState( BYTE
*state
);
142 BOOL WINAPI
NtUserGetLayeredWindowAttributes( HWND hwnd
, COLORREF
*key
, BYTE
*alpha
, DWORD
*flags
);
143 int WINAPI
NtUserGetMouseMovePointsEx( UINT size
, MOUSEMOVEPOINT
*ptin
, MOUSEMOVEPOINT
*ptout
,
144 int count
, DWORD resolution
);
145 BOOL WINAPI
NtUserGetObjectInformation( HANDLE handle
, INT index
, void *info
,
146 DWORD len
, DWORD
*needed
);
147 HWND WINAPI
NtUserGetOpenClipboardWindow(void);
148 INT WINAPI
NtUserGetPriorityClipboardFormat( UINT
*list
, INT count
);
149 HWINSTA WINAPI
NtUserGetProcessWindowStation(void);
150 HANDLE WINAPI
NtUserGetProp( HWND hwnd
, const WCHAR
*str
);
151 ULONG WINAPI
NtUserGetProcessDpiAwarenessContext( HANDLE process
);
152 ULONG WINAPI
NtUserGetSystemDpiForProcess( HANDLE process
);
153 HDESK WINAPI
NtUserGetThreadDesktop( DWORD thread
);
154 BOOL WINAPI
NtUserGetUpdatedClipboardFormats( UINT
*formats
, UINT size
, UINT
*out_size
);
155 BOOL WINAPI
NtUserIsClipboardFormatAvailable( UINT format
);
156 UINT WINAPI
NtUserMapVirtualKeyEx( UINT code
, UINT type
, HKL layout
);
157 HWINSTA WINAPI
NtUserOpenWindowStation( OBJECT_ATTRIBUTES
*attr
, ACCESS_MASK access
);
158 BOOL WINAPI
NtUserSetObjectInformation( HANDLE handle
, INT index
, void *info
, DWORD len
);
159 HDESK WINAPI
NtUserOpenDesktop( OBJECT_ATTRIBUTES
*attr
, DWORD flags
, ACCESS_MASK access
);
160 HDESK WINAPI
NtUserOpenInputDesktop( DWORD flags
, BOOL inherit
, ACCESS_MASK access
);
161 BOOL WINAPI
NtUserRemoveClipboardFormatListener( HWND hwnd
);
162 HANDLE WINAPI
NtUserRemoveProp( HWND hwnd
, const WCHAR
*str
);
163 BOOL WINAPI
NtUserScrollDC( HDC hdc
, INT dx
, INT dy
, const RECT
*scroll
, const RECT
*clip
,
164 HRGN ret_update_rgn
, RECT
*update_rect
);
165 HPALETTE WINAPI
NtUserSelectPalette( HDC hdc
, HPALETTE palette
, WORD force_background
);
166 BOOL WINAPI
NtUserSetKeyboardState( BYTE
*state
);
167 BOOL WINAPI
NtUserSetProcessDpiAwarenessContext( ULONG awareness
, ULONG unknown
);
168 BOOL WINAPI
NtUserSetProcessWindowStation( HWINSTA handle
);
169 BOOL WINAPI
NtUserSetProp( HWND hwnd
, const WCHAR
*str
, HANDLE handle
);
170 BOOL WINAPI
NtUserSetSysColors( INT count
, const INT
*colors
, const COLORREF
*values
);
171 BOOL WINAPI
NtUserSetThreadDesktop( HDESK handle
);
172 INT WINAPI
NtUserShowCursor( BOOL show
);
173 BOOL WINAPI
NtUserSystemParametersInfo( UINT action
, UINT val
, void *ptr
, UINT winini
);
174 BOOL WINAPI
NtUserSystemParametersInfoForDpi( UINT action
, UINT val
, PVOID ptr
, UINT winini
, UINT dpi
);
175 INT WINAPI
NtUserToUnicodeEx( UINT virt
, UINT scan
, const BYTE
*state
,
176 WCHAR
*str
, int size
, UINT flags
, HKL layout
);
177 BOOL WINAPI
NtUserUnregisterHotKey( HWND hwnd
, INT id
);
178 WORD WINAPI
NtUserVkKeyScanEx( WCHAR chr
, HKL layout
);
180 #endif /* _NTUSER_ */