win32u: Move process_sent_messages implementation from user32.
[wine.git] / include / ntuser.h
blob536f246df42b1139acf887946cb4cc72cfa2ea01
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 NtUserCallWindowProc,
34 NtUserCallWindowsHook,
35 NtUserLoadDriver,
36 /* win16 hooks */
37 NtUserCallFreeIcon,
38 /* Vulkan support */
39 NtUserCallVulkanDebugReportCallback,
40 NtUserCallVulkanDebugUtilsCallback,
41 NtUserCallCount
44 /* NtUserCallEnumDisplayMonitor params */
45 struct enum_display_monitor_params
47 MONITORENUMPROC proc;
48 HMONITOR monitor;
49 HDC hdc;
50 RECT rect;
51 LPARAM lparam;
54 /* NtUserCallSendAsyncCallback params */
55 struct send_async_params
57 SENDASYNCPROC callback;
58 HWND hwnd;
59 UINT msg;
60 ULONG_PTR data;
61 LRESULT result;
64 /* NtUserCallWinEventHook params */
65 struct win_event_hook_params
67 DWORD event;
68 HWND hwnd;
69 LONG object_id;
70 LONG child_id;
71 void *handle;
72 DWORD tid;
73 DWORD time;
74 WINEVENTPROC proc;
75 WCHAR module[MAX_PATH];
78 /* type of message-sending functions that need special WM_CHAR handling */
79 enum wm_char_mapping
81 WMCHAR_MAP_POSTMESSAGE,
82 WMCHAR_MAP_SENDMESSAGE,
83 WMCHAR_MAP_SENDMESSAGETIMEOUT,
84 WMCHAR_MAP_RECVMESSAGE,
85 WMCHAR_MAP_DISPATCHMESSAGE,
86 WMCHAR_MAP_CALLWINDOWPROC,
87 WMCHAR_MAP_COUNT,
88 WMCHAR_MAP_NOMAPPING = WMCHAR_MAP_COUNT
91 /* NtUserCallWindowProc params */
92 struct win_proc_params
94 WNDPROC func;
95 HWND hwnd;
96 UINT msg;
97 WPARAM wparam;
98 LPARAM lparam;
99 LRESULT *result;
100 BOOL ansi;
101 BOOL ansi_dst;
102 BOOL is_dialog;
103 BOOL needs_unpack;
104 enum wm_char_mapping mapping;
105 DPI_AWARENESS_CONTEXT dpi_awareness;
106 WNDPROC procA;
107 WNDPROC procW;
110 /* NtUserCallWindowsHook params */
111 struct win_hook_params
113 void *proc;
114 void *handle;
115 DWORD pid;
116 DWORD tid;
117 int id;
118 int code;
119 WPARAM wparam;
120 LPARAM lparam;
121 BOOL prev_unicode;
122 BOOL next_unicode;
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 */
134 enum
136 NtUserCreateMenu,
137 NtUserGetDesktopWindow,
138 NtUserGetInputState,
139 NtUserReleaseCapture,
140 /* temporary exports */
141 NtUserExitingThread,
142 NtUserProcessSentMessages,
143 NtUserThreadDetach,
146 /* NtUserCallOneParam codes, not compatible with Windows */
147 enum
149 NtUserBeginDeferWindowPos,
150 NtUserCreateCursorIcon,
151 NtUserDispatchMessageA,
152 NtUserEnableDC,
153 NtUserGetClipCursor,
154 NtUserGetCursorPos,
155 NtUserGetIconParam,
156 NtUserGetPrimaryMonitorRect,
157 NtUserGetSysColor,
158 NtUserGetSysColorBrush,
159 NtUserGetSysColorPen,
160 NtUserGetSystemMetrics,
161 NtUserGetVirtualScreenRect,
162 NtUserMessageBeep,
163 NtUserRealizePalette,
164 /* temporary exports */
165 NtUserCallHooks,
166 NtUserFlushWindowSurfaces,
167 NtUserGetDeskPattern,
168 NtUserGetWinProcPtr,
169 NtUserHandleInternalMessage,
170 NtUserIncrementKeyStateCounter,
171 NtUserLock,
172 NtUserSetCallbacks,
173 NtUserSpyGetVKeyName,
176 /* NtUserCallTwoParam codes, not compatible with Windows */
177 enum
179 NtUserGetMonitorInfo,
180 NtUserGetSystemMetricsForDpi,
181 NtUserMirrorRgn,
182 NtUserMonitorFromRect,
183 NtUserReplyMessage,
184 NtUserSetIconParam,
185 NtUserUnhookWindowsHook,
186 /* temporary exports */
187 NtUserAllocWinProc,
188 NtUserGetHandlePtr,
191 /* NtUserCallHwnd codes, not compatible with Windows */
192 enum
194 NtUserArrangeIconicWindows,
195 NtUserGetDpiForWindow,
196 NtUserGetParent,
197 NtUserGetWindowContextHelpId,
198 NtUserGetWindowDpiAwarenessContext,
199 NtUserGetWindowTextLength,
200 NtUserIsWindow,
201 NtUserIsWindowUnicode,
202 NtUserIsWindowVisible,
205 /* NtUserCallHwndParam codes, not compatible with Windows */
206 enum
208 NtUserGetClassLongA,
209 NtUserGetClassLongW,
210 NtUserGetClassLongPtrA,
211 NtUserGetClassLongPtrW,
212 NtUserGetClassWord,
213 NtUserGetClientRect,
214 NtUserGetMinMaxInfo,
215 NtUserGetWindowInfo,
216 NtUserGetWindowLongA,
217 NtUserGetWindowLongW,
218 NtUserGetWindowLongPtrA,
219 NtUserGetWindowLongPtrW,
220 NtUserGetWindowPlacement,
221 NtUserGetWindowRect,
222 NtUserGetWindowRelative,
223 NtUserGetWindowThread,
224 NtUserGetWindowWord,
225 NtUserIsChild,
226 NtUserKillSystemTimer,
227 NtUserMonitorFromWindow,
228 NtUserScreenToClient,
229 NtUserSetCaptureWindow,
230 NtUserSetForegroundWindow,
231 NtUserSetWindowPixelFormat,
232 /* temporary exports */
233 NtUserIsWindowDrawable,
234 NtUserSetWindowStyle,
235 NtUserSpyGetMsgName,
238 /* NtUserMessageCall codes */
239 enum
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;
266 WNDPROC pDefDlgProc;
267 WNDPROC pEditWndProc;
268 WNDPROC pListBoxWndProc;
269 WNDPROC pMDIClientWndProc;
270 WNDPROC pScrollBarWndProc;
271 WNDPROC pStaticWndProc;
272 WNDPROC pImeWndProc;
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) */
287 POINT hotspot;
290 struct cursoricon_desc
292 UINT flags;
293 UINT num_steps;
294 UINT num_frames;
295 UINT delay;
296 struct cursoricon_frame *frames;
297 DWORD *frame_seq;
298 DWORD *frame_rates;
299 HRSRC rsrc;
302 struct client_menu_name
304 char *nameA;
305 WCHAR *nameW;
306 UNICODE_STRING *nameUS;
309 /* internal messages codes */
310 enum wine_internal_message
312 WM_WINE_DESTROYWINDOW = 0x80000000,
313 WM_WINE_SETWINDOWPOS,
314 WM_WINE_SHOWWINDOW,
315 WM_WINE_SETPARENT,
316 WM_WINE_SETWINDOWLONG,
317 WM_WINE_SETSTYLE,
318 WM_WINE_SETACTIVEWINDOW,
319 WM_WINE_KEYBOARD_LL_HOOK,
320 WM_WINE_MOUSE_LL_HOOK,
321 WM_WINE_CLIPCURSOR,
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;
331 ULONGLONG hInstance;
332 UINT hMenu;
333 DWORD __pad1;
334 UINT hwndParent;
335 DWORD __pad2;
336 INT cy;
337 INT cx;
338 INT y;
339 INT x;
340 LONG style;
341 ULONGLONG lpszName;
342 ULONGLONG lpszClass;
343 DWORD dwExStyle;
344 DWORD __pad3;
347 struct packed_DRAWITEMSTRUCT
349 UINT CtlType;
350 UINT CtlID;
351 UINT itemID;
352 UINT itemAction;
353 UINT itemState;
354 UINT hwndItem;
355 DWORD __pad1;
356 UINT hDC;
357 DWORD __pad2;
358 RECT rcItem;
359 ULONGLONG itemData;
362 struct packed_MEASUREITEMSTRUCT
364 UINT CtlType;
365 UINT CtlID;
366 UINT itemID;
367 UINT itemWidth;
368 UINT itemHeight;
369 ULONGLONG itemData;
372 struct packed_DELETEITEMSTRUCT
374 UINT CtlType;
375 UINT CtlID;
376 UINT itemID;
377 UINT hwndItem;
378 DWORD __pad;
379 ULONGLONG itemData;
382 struct packed_COMPAREITEMSTRUCT
384 UINT CtlType;
385 UINT CtlID;
386 UINT hwndItem;
387 DWORD __pad1;
388 UINT itemID1;
389 ULONGLONG itemData1;
390 UINT itemID2;
391 ULONGLONG itemData2;
392 DWORD dwLocaleId;
393 DWORD __pad2;
396 struct packed_WINDOWPOS
398 UINT hwnd;
399 DWORD __pad1;
400 UINT hwndInsertAfter;
401 DWORD __pad2;
402 INT x;
403 INT y;
404 INT cx;
405 INT cy;
406 UINT flags;
407 DWORD __pad3;
410 struct packed_COPYDATASTRUCT
412 ULONGLONG dwData;
413 DWORD cbData;
414 ULONGLONG lpData;
417 struct packed_HELPINFO
419 UINT cbSize;
420 INT iContextType;
421 INT iCtrlId;
422 UINT hItemHandle;
423 DWORD __pad;
424 ULONGLONG dwContextId;
425 POINT MousePos;
428 struct packed_NCCALCSIZE_PARAMS
430 RECT rgrc[3];
431 ULONGLONG __pad1;
432 UINT hwnd;
433 DWORD __pad2;
434 UINT hwndInsertAfter;
435 DWORD __pad3;
436 INT x;
437 INT y;
438 INT cx;
439 INT cy;
440 UINT flags;
441 DWORD __pad4;
444 struct packed_MSG
446 UINT hwnd;
447 DWORD __pad1;
448 UINT message;
449 ULONGLONG wParam;
450 ULONGLONG lParam;
451 DWORD time;
452 POINT pt;
453 DWORD __pad2;
456 struct packed_MDINEXTMENU
458 UINT hmenuIn;
459 DWORD __pad1;
460 UINT hmenuNext;
461 DWORD __pad2;
462 UINT hwndNext;
463 DWORD __pad3;
466 struct packed_MDICREATESTRUCTW
468 ULONGLONG szClass;
469 ULONGLONG szTitle;
470 ULONGLONG hOwner;
471 INT x;
472 INT y;
473 INT cx;
474 INT cy;
475 DWORD style;
476 ULONGLONG lParam;
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,
502 ULONG heap_size );
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,
527 void *desc );
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,
541 DWORD *num_steps );
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,
594 DWORD *wow );
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_ */