wrc: Store version and characteristics as simple integers.
[wine.git] / include / ntuser.h
blob7afc930438e99c3dab8d0a168c0965b23e6a03c8
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 NtUserThunkLock,
39 /* Vulkan support */
40 NtUserCallVulkanDebugReportCallback,
41 NtUserCallVulkanDebugUtilsCallback,
42 NtUserCallCount
45 /* NtUserCallEnumDisplayMonitor params */
46 struct enum_display_monitor_params
48 MONITORENUMPROC proc;
49 HMONITOR monitor;
50 HDC hdc;
51 RECT rect;
52 LPARAM lparam;
55 /* NtUserCallSendAsyncCallback params */
56 struct send_async_params
58 SENDASYNCPROC callback;
59 HWND hwnd;
60 UINT msg;
61 ULONG_PTR data;
62 LRESULT result;
65 /* NtUserCallWinEventHook params */
66 struct win_event_hook_params
68 DWORD event;
69 HWND hwnd;
70 LONG object_id;
71 LONG child_id;
72 void *handle;
73 DWORD tid;
74 DWORD time;
75 WINEVENTPROC proc;
76 WCHAR module[MAX_PATH];
79 /* type of message-sending functions that need special WM_CHAR handling */
80 enum wm_char_mapping
82 WMCHAR_MAP_POSTMESSAGE,
83 WMCHAR_MAP_SENDMESSAGE,
84 WMCHAR_MAP_SENDMESSAGETIMEOUT,
85 WMCHAR_MAP_RECVMESSAGE,
86 WMCHAR_MAP_DISPATCHMESSAGE,
87 WMCHAR_MAP_CALLWINDOWPROC,
88 WMCHAR_MAP_COUNT,
89 WMCHAR_MAP_NOMAPPING = WMCHAR_MAP_COUNT
92 /* NtUserCallWindowProc params */
93 struct win_proc_params
95 WNDPROC func;
96 HWND hwnd;
97 UINT msg;
98 WPARAM wparam;
99 LPARAM lparam;
100 LRESULT *result;
101 BOOL ansi;
102 BOOL ansi_dst;
103 BOOL is_dialog;
104 BOOL needs_unpack;
105 enum wm_char_mapping mapping;
106 DPI_AWARENESS_CONTEXT dpi_awareness;
107 WNDPROC procA;
108 WNDPROC procW;
111 /* NtUserCallWindowsHook params */
112 struct win_hook_params
114 void *proc;
115 void *handle;
116 DWORD pid;
117 DWORD tid;
118 int id;
119 int code;
120 WPARAM wparam;
121 LPARAM lparam;
122 BOOL prev_unicode;
123 BOOL next_unicode;
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 */
135 enum
137 NtUserCreateMenu,
138 NtUserGetDesktopWindow,
139 NtUserGetInputState,
140 NtUserReleaseCapture,
141 /* temporary exports */
142 NtUserExitingThread,
143 NtUserProcessSentMessages,
144 NtUserThreadDetach,
147 /* NtUserCallOneParam codes, not compatible with Windows */
148 enum
150 NtUserBeginDeferWindowPos,
151 NtUserCreateCursorIcon,
152 NtUserDispatchMessageA,
153 NtUserEnableDC,
154 NtUserEnableThunkLock,
155 NtUserGetClipCursor,
156 NtUserGetCursorPos,
157 NtUserGetIconParam,
158 NtUserGetPrimaryMonitorRect,
159 NtUserGetSysColor,
160 NtUserGetSysColorBrush,
161 NtUserGetSysColorPen,
162 NtUserGetSystemMetrics,
163 NtUserGetVirtualScreenRect,
164 NtUserMessageBeep,
165 NtUserRealizePalette,
166 /* temporary exports */
167 NtUserCallHooks,
168 NtUserFlushWindowSurfaces,
169 NtUserGetDeskPattern,
170 NtUserGetWinProcPtr,
171 NtUserHandleInternalMessage,
172 NtUserIncrementKeyStateCounter,
173 NtUserLock,
174 NtUserSetCallbacks,
175 NtUserSpyGetVKeyName,
178 /* NtUserCallTwoParam codes, not compatible with Windows */
179 enum
181 NtUserGetMonitorInfo,
182 NtUserGetSystemMetricsForDpi,
183 NtUserMirrorRgn,
184 NtUserMonitorFromRect,
185 NtUserReplyMessage,
186 NtUserSetIconParam,
187 NtUserUnhookWindowsHook,
188 /* temporary exports */
189 NtUserAllocWinProc,
190 NtUserGetHandlePtr,
193 /* NtUserCallHwnd codes, not compatible with Windows */
194 enum
196 NtUserArrangeIconicWindows,
197 NtUserGetDpiForWindow,
198 NtUserGetParent,
199 NtUserGetWindowContextHelpId,
200 NtUserGetWindowDpiAwarenessContext,
201 NtUserGetWindowTextLength,
202 NtUserIsWindow,
203 NtUserIsWindowUnicode,
204 NtUserIsWindowVisible,
207 /* NtUserCallHwndParam codes, not compatible with Windows */
208 enum
210 NtUserGetClassLongA,
211 NtUserGetClassLongW,
212 NtUserGetClassLongPtrA,
213 NtUserGetClassLongPtrW,
214 NtUserGetClassWord,
215 NtUserGetClientRect,
216 NtUserGetMinMaxInfo,
217 NtUserGetWindowInfo,
218 NtUserGetWindowLongA,
219 NtUserGetWindowLongW,
220 NtUserGetWindowLongPtrA,
221 NtUserGetWindowLongPtrW,
222 NtUserGetWindowPlacement,
223 NtUserGetWindowRect,
224 NtUserGetWindowRelative,
225 NtUserGetWindowThread,
226 NtUserGetWindowWord,
227 NtUserIsChild,
228 NtUserKillSystemTimer,
229 NtUserMonitorFromWindow,
230 NtUserScreenToClient,
231 NtUserSetCaptureWindow,
232 NtUserSetForegroundWindow,
233 NtUserSetWindowPixelFormat,
234 /* temporary exports */
235 NtUserIsWindowDrawable,
236 NtUserSetWindowStyle,
237 NtUserSpyGetMsgName,
240 /* NtUserMessageCall codes */
241 enum
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;
268 WNDPROC pDefDlgProc;
269 WNDPROC pEditWndProc;
270 WNDPROC pListBoxWndProc;
271 WNDPROC pMDIClientWndProc;
272 WNDPROC pScrollBarWndProc;
273 WNDPROC pStaticWndProc;
274 WNDPROC pImeWndProc;
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) */
289 POINT hotspot;
292 struct cursoricon_desc
294 UINT flags;
295 UINT num_steps;
296 UINT num_frames;
297 UINT delay;
298 struct cursoricon_frame *frames;
299 DWORD *frame_seq;
300 DWORD *frame_rates;
301 HRSRC rsrc;
304 struct client_menu_name
306 char *nameA;
307 WCHAR *nameW;
308 UNICODE_STRING *nameUS;
311 /* internal messages codes */
312 enum wine_internal_message
314 WM_WINE_DESTROYWINDOW = 0x80000000,
315 WM_WINE_SETWINDOWPOS,
316 WM_WINE_SHOWWINDOW,
317 WM_WINE_SETPARENT,
318 WM_WINE_SETWINDOWLONG,
319 WM_WINE_SETSTYLE,
320 WM_WINE_SETACTIVEWINDOW,
321 WM_WINE_KEYBOARD_LL_HOOK,
322 WM_WINE_MOUSE_LL_HOOK,
323 WM_WINE_CLIPCURSOR,
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;
333 ULONGLONG hInstance;
334 UINT hMenu;
335 DWORD __pad1;
336 UINT hwndParent;
337 DWORD __pad2;
338 INT cy;
339 INT cx;
340 INT y;
341 INT x;
342 LONG style;
343 ULONGLONG lpszName;
344 ULONGLONG lpszClass;
345 DWORD dwExStyle;
346 DWORD __pad3;
349 struct packed_DRAWITEMSTRUCT
351 UINT CtlType;
352 UINT CtlID;
353 UINT itemID;
354 UINT itemAction;
355 UINT itemState;
356 UINT hwndItem;
357 DWORD __pad1;
358 UINT hDC;
359 DWORD __pad2;
360 RECT rcItem;
361 ULONGLONG itemData;
364 struct packed_MEASUREITEMSTRUCT
366 UINT CtlType;
367 UINT CtlID;
368 UINT itemID;
369 UINT itemWidth;
370 UINT itemHeight;
371 ULONGLONG itemData;
374 struct packed_DELETEITEMSTRUCT
376 UINT CtlType;
377 UINT CtlID;
378 UINT itemID;
379 UINT hwndItem;
380 DWORD __pad;
381 ULONGLONG itemData;
384 struct packed_COMPAREITEMSTRUCT
386 UINT CtlType;
387 UINT CtlID;
388 UINT hwndItem;
389 DWORD __pad1;
390 UINT itemID1;
391 ULONGLONG itemData1;
392 UINT itemID2;
393 ULONGLONG itemData2;
394 DWORD dwLocaleId;
395 DWORD __pad2;
398 struct packed_WINDOWPOS
400 UINT hwnd;
401 DWORD __pad1;
402 UINT hwndInsertAfter;
403 DWORD __pad2;
404 INT x;
405 INT y;
406 INT cx;
407 INT cy;
408 UINT flags;
409 DWORD __pad3;
412 struct packed_COPYDATASTRUCT
414 ULONGLONG dwData;
415 DWORD cbData;
416 ULONGLONG lpData;
419 struct packed_HELPINFO
421 UINT cbSize;
422 INT iContextType;
423 INT iCtrlId;
424 UINT hItemHandle;
425 DWORD __pad;
426 ULONGLONG dwContextId;
427 POINT MousePos;
430 struct packed_NCCALCSIZE_PARAMS
432 RECT rgrc[3];
433 ULONGLONG __pad1;
434 UINT hwnd;
435 DWORD __pad2;
436 UINT hwndInsertAfter;
437 DWORD __pad3;
438 INT x;
439 INT y;
440 INT cx;
441 INT cy;
442 UINT flags;
443 DWORD __pad4;
446 struct packed_MSG
448 UINT hwnd;
449 DWORD __pad1;
450 UINT message;
451 ULONGLONG wParam;
452 ULONGLONG lParam;
453 DWORD time;
454 POINT pt;
455 DWORD __pad2;
458 struct packed_MDINEXTMENU
460 UINT hmenuIn;
461 DWORD __pad1;
462 UINT hmenuNext;
463 DWORD __pad2;
464 UINT hwndNext;
465 DWORD __pad3;
468 struct packed_MDICREATESTRUCTW
470 ULONGLONG szClass;
471 ULONGLONG szTitle;
472 ULONGLONG hOwner;
473 INT x;
474 INT y;
475 INT cx;
476 INT cy;
477 DWORD style;
478 ULONGLONG lParam;
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,
504 ULONG heap_size );
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,
529 void *desc );
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,
543 DWORD *num_steps );
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,
598 DWORD *wow );
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_ */