diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c index eac3468a6e0..543ca87fc6d 100644 --- a/dlls/user.exe16/window.c +++ b/dlls/user.exe16/window.c @@ -18,11 +18,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "ntstatus.h" +#define WIN32_NO_STATUS #include "wine/winuser16.h" #include "wownt32.h" #include "user_private.h" #include "wine/list.h" -#include "wine/server.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(win); @@ -192,22 +193,16 @@ BOOL16 WINAPI SetProp16( HWND16 hwnd, LPCSTR str, HANDLE16 handle ) */ INT16 WINAPI EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) { - int ret = -1, i, count, total = 32; - property_data_t *list; + int ret = -1, i; + struct ntuser_property_list *list; + ULONG count, total = 32; + NTSTATUS status; while (total) { if (!(list = HeapAlloc( GetProcessHeap(), 0, total * sizeof(*list) ))) break; - count = 0; - SERVER_START_REQ( get_window_properties ) - { - req->window = wine_server_user_handle( HWND_32(hwnd) ); - wine_server_set_reply( req, list, total * sizeof(*list) ); - if (!wine_server_call( req )) count = reply->total; - } - SERVER_END_REQ; - - if (count && count <= total) + status = NtUserBuildPropList( WIN_Handle32(hwnd), total, list, &count ); + if (!status && count) { char string[ATOM_BUFFER_SIZE]; SEGPTR segptr = MapLS( string ); @@ -239,6 +234,7 @@ INT16 WINAPI EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) break; } HeapFree( GetProcessHeap(), 0, list ); + if (status != STATUS_BUFFER_TOO_SMALL) break; total = count; /* restart with larger buffer */ } return ret; diff --git a/dlls/user32/property.c b/dlls/user32/property.c index 4d55c4dfac8..2980299bfb3 100644 --- a/dlls/user32/property.c +++ b/dlls/user32/property.c @@ -21,11 +21,12 @@ #include #include +#include "ntstatus.h" +#define WIN32_NO_STATUS #include "windef.h" #include "winbase.h" #include "winnls.h" #include "ntuser.h" -#include "wine/server.h" /* size of buffer needed to store an atom string */ #define ATOM_BUFFER_SIZE 256 @@ -37,30 +38,19 @@ * Retrieve the list of properties of a given window. * Returned buffer must be freed by caller. */ -static property_data_t *get_properties( HWND hwnd, int *count ) +static struct ntuser_property_list *get_properties( HWND hwnd, ULONG *count ) { - property_data_t *data; + struct ntuser_property_list *props; int total = 32; + NTSTATUS status; while (total) { - int res = 0; - if (!(data = HeapAlloc( GetProcessHeap(), 0, total * sizeof(*data) ))) break; - *count = 0; - SERVER_START_REQ( get_window_properties ) - { - req->window = wine_server_user_handle( hwnd ); - wine_server_set_reply( req, data, total * sizeof(*data) ); - if (!wine_server_call( req )) res = reply->total; - } - SERVER_END_REQ; - if (res && res <= total) - { - *count = res; - return data; - } - HeapFree( GetProcessHeap(), 0, data ); - total = res; /* restart with larger buffer */ + if (!(props = HeapAlloc( GetProcessHeap(), 0, total * sizeof(*props) ))) break; + if (!(status = NtUserBuildPropList( hwnd, total, props, count ))) return props; + HeapFree( GetProcessHeap(), 0, props ); + if (status != STATUS_BUFFER_TOO_SMALL) break; + total = *count; /* restart with larger buffer */ } return NULL; } @@ -179,8 +169,9 @@ HANDLE WINAPI RemovePropW( HWND hwnd, LPCWSTR str ) */ INT WINAPI EnumPropsExA(HWND hwnd, PROPENUMPROCEXA func, LPARAM lParam) { - int ret = -1, i, count; - property_data_t *list = get_properties( hwnd, &count ); + int ret = -1; + ULONG i, count; + struct ntuser_property_list *list = get_properties( hwnd, &count ); if (list) { @@ -201,8 +192,9 @@ INT WINAPI EnumPropsExA(HWND hwnd, PROPENUMPROCEXA func, LPARAM lParam) */ INT WINAPI EnumPropsExW(HWND hwnd, PROPENUMPROCEXW func, LPARAM lParam) { - int ret = -1, i, count; - property_data_t *list = get_properties( hwnd, &count ); + int ret = -1; + ULONG i, count; + struct ntuser_property_list *list = get_properties( hwnd, &count ); if (list) { diff --git a/dlls/win32u/main.c b/dlls/win32u/main.c index e2e59015569..53f7f3c7225 100644 --- a/dlls/win32u/main.c +++ b/dlls/win32u/main.c @@ -1133,6 +1133,11 @@ NTSTATUS SYSCALL_API NtUserBuildHwndList( HDESK desktop, ULONG unk2, ULONG unk3, SYSCALL_FUNC( NtUserBuildHwndList ); } +NTSTATUS SYSCALL_API NtUserBuildPropList( HWND hwnd, ULONG count, struct ntuser_property_list *buffer, ULONG *ret_count ) +{ + SYSCALL_FUNC( NtUserBuildPropList ); +} + ULONG_PTR SYSCALL_API NtUserCallHwnd( HWND hwnd, DWORD code ) { SYSCALL_FUNC( NtUserCallHwnd ); diff --git a/dlls/win32u/tests/win32u.c b/dlls/win32u/tests/win32u.c index a125cc9e1ba..cb554a4d192 100644 --- a/dlls/win32u/tests/win32u.c +++ b/dlls/win32u/tests/win32u.c @@ -120,6 +120,9 @@ static void test_window_props(void) ATOM atom; HWND hwnd; BOOL ret; + ULONG i, count; + NTSTATUS status; + struct ntuser_property_list *props; hwnd = CreateWindowExA( 0, "static", NULL, WS_POPUP, 0,0,0,0,0,0,0, NULL ); @@ -134,12 +137,40 @@ static void test_window_props(void) prop = NtUserGetProp( hwnd, UlongToPtr(atom) ); ok( prop == UlongToHandle(0xdeadbeef), "prop = %p\n", prop ); + props = malloc( 32 * sizeof(*props) ); + count = 0xdead; + status = NtUserBuildPropList( hwnd, 32, NULL, &count ); + ok( status == STATUS_INVALID_PARAMETER || status == STATUS_INVALID_HANDLE, + "NtUserBuildPropList failed %lx\n", status ); + ok( count == 0xdead, "wrong count %lu\n", count ); + + status = NtUserBuildPropList( hwnd, 32, props, NULL ); + ok( status == STATUS_INVALID_PARAMETER || status == STATUS_INVALID_HANDLE, + "NtUserBuildPropList failed %lx\n", status ); + ok( count == 0xdead, "wrong count %lu\n", count ); + + status = NtUserBuildPropList( hwnd, 32, props, &count ); + ok( !status, "NtUserBuildPropList failed %lx\n", status ); + ok( count, "wrong count %lu\n", count ); + for (i = 0; i < count; i++) + { + if (props[i].data != (INT_PTR)0xdeadbeef) continue; + ok( props[i].atom == atom, "prop = %x / %x\n", props[i].atom, atom ); + break; + } + ok( i < count, "property not found\n" ); + prop = NtUserRemoveProp( hwnd, UlongToPtr(atom) ); ok( prop == UlongToHandle(0xdeadbeef), "prop = %p\n", prop ); prop = GetPropW(hwnd, L"test"); ok(!prop, "prop = %p\n", prop); + status = NtUserBuildPropList( hwnd, 32, props, &count ); + ok( !status, "NtUserBuildPropList failed %lx\n", status ); + for (i = 0; i < count; i++) ok( props[i].atom != atom, "property still exists\n" ); + free( props ); + GlobalDeleteAtom( atom ); DestroyWindow( hwnd ); } diff --git a/dlls/win32u/win32syscalls.h b/dlls/win32u/win32syscalls.h index 4b8c66e5a77..1bad3c5eb7a 100644 --- a/dlls/win32u/win32syscalls.h +++ b/dlls/win32u/win32syscalls.h @@ -206,229 +206,230 @@ SYSCALL_ENTRY( 0x00ca, NtUserBeginPaint, 8 ) \ SYSCALL_ENTRY( 0x00cb, NtUserBuildHimcList, 16 ) \ SYSCALL_ENTRY( 0x00cc, NtUserBuildHwndList, 32 ) \ - SYSCALL_ENTRY( 0x00cd, NtUserCallHwnd, 8 ) \ - SYSCALL_ENTRY( 0x00ce, NtUserCallHwndParam, 12 ) \ - SYSCALL_ENTRY( 0x00cf, NtUserCallMsgFilter, 8 ) \ - SYSCALL_ENTRY( 0x00d0, NtUserCallNextHookEx, 16 ) \ - SYSCALL_ENTRY( 0x00d1, NtUserCallNoParam, 4 ) \ - SYSCALL_ENTRY( 0x00d2, NtUserCallOneParam, 8 ) \ - SYSCALL_ENTRY( 0x00d3, NtUserCallTwoParam, 12 ) \ - SYSCALL_ENTRY( 0x00d4, NtUserChangeClipboardChain, 8 ) \ - SYSCALL_ENTRY( 0x00d5, NtUserChangeDisplaySettings, 20 ) \ - SYSCALL_ENTRY( 0x00d6, NtUserCheckMenuItem, 12 ) \ - SYSCALL_ENTRY( 0x00d7, NtUserChildWindowFromPointEx, 16 ) \ - SYSCALL_ENTRY( 0x00d8, NtUserClipCursor, 4 ) \ - SYSCALL_ENTRY( 0x00d9, NtUserCloseClipboard, 0 ) \ - SYSCALL_ENTRY( 0x00da, NtUserCloseDesktop, 4 ) \ - SYSCALL_ENTRY( 0x00db, NtUserCloseWindowStation, 4 ) \ - SYSCALL_ENTRY( 0x00dc, NtUserCopyAcceleratorTable, 12 ) \ - SYSCALL_ENTRY( 0x00dd, NtUserCountClipboardFormats, 0 ) \ - SYSCALL_ENTRY( 0x00de, NtUserCreateAcceleratorTable, 8 ) \ - SYSCALL_ENTRY( 0x00df, NtUserCreateCaret, 16 ) \ - SYSCALL_ENTRY( 0x00e0, NtUserCreateDesktopEx, 24 ) \ - SYSCALL_ENTRY( 0x00e1, NtUserCreateInputContext, 4 ) \ - SYSCALL_ENTRY( 0x00e2, NtUserCreateWindowEx, 68 ) \ - SYSCALL_ENTRY( 0x00e3, NtUserCreateWindowStation, 28 ) \ - SYSCALL_ENTRY( 0x00e4, NtUserDeferWindowPosAndBand, 40 ) \ - SYSCALL_ENTRY( 0x00e5, NtUserDeleteMenu, 12 ) \ - SYSCALL_ENTRY( 0x00e6, NtUserDestroyAcceleratorTable, 4 ) \ - SYSCALL_ENTRY( 0x00e7, NtUserDestroyCursor, 8 ) \ - SYSCALL_ENTRY( 0x00e8, NtUserDestroyInputContext, 4 ) \ - SYSCALL_ENTRY( 0x00e9, NtUserDestroyMenu, 4 ) \ - SYSCALL_ENTRY( 0x00ea, NtUserDestroyWindow, 4 ) \ - SYSCALL_ENTRY( 0x00eb, NtUserDisableThreadIme, 4 ) \ - SYSCALL_ENTRY( 0x00ec, NtUserDispatchMessage, 4 ) \ - SYSCALL_ENTRY( 0x00ed, NtUserDisplayConfigGetDeviceInfo, 4 ) \ - SYSCALL_ENTRY( 0x00ee, NtUserDragDetect, 12 ) \ - SYSCALL_ENTRY( 0x00ef, NtUserDragObject, 20 ) \ - SYSCALL_ENTRY( 0x00f0, NtUserDrawCaptionTemp, 28 ) \ - SYSCALL_ENTRY( 0x00f1, NtUserDrawIconEx, 36 ) \ - SYSCALL_ENTRY( 0x00f2, NtUserDrawMenuBarTemp, 20 ) \ - SYSCALL_ENTRY( 0x00f3, NtUserEmptyClipboard, 0 ) \ - SYSCALL_ENTRY( 0x00f4, NtUserEnableMenuItem, 12 ) \ - SYSCALL_ENTRY( 0x00f5, NtUserEnableMouseInPointer, 4 ) \ - SYSCALL_ENTRY( 0x00f6, NtUserEnableMouseInPointerForThread, 0 ) \ - SYSCALL_ENTRY( 0x00f7, NtUserEnableScrollBar, 12 ) \ - SYSCALL_ENTRY( 0x00f8, NtUserEndDeferWindowPosEx, 8 ) \ - SYSCALL_ENTRY( 0x00f9, NtUserEndMenu, 0 ) \ - SYSCALL_ENTRY( 0x00fa, NtUserEndPaint, 8 ) \ - SYSCALL_ENTRY( 0x00fb, NtUserEnumDisplayDevices, 16 ) \ - SYSCALL_ENTRY( 0x00fc, NtUserEnumDisplayMonitors, 16 ) \ - SYSCALL_ENTRY( 0x00fd, NtUserEnumDisplaySettings, 16 ) \ - SYSCALL_ENTRY( 0x00fe, NtUserExcludeUpdateRgn, 8 ) \ - SYSCALL_ENTRY( 0x00ff, NtUserFindExistingCursorIcon, 12 ) \ - SYSCALL_ENTRY( 0x0100, NtUserFindWindowEx, 20 ) \ - SYSCALL_ENTRY( 0x0101, NtUserFlashWindowEx, 4 ) \ - SYSCALL_ENTRY( 0x0102, NtUserGetAncestor, 8 ) \ - SYSCALL_ENTRY( 0x0103, NtUserGetAsyncKeyState, 4 ) \ - SYSCALL_ENTRY( 0x0104, NtUserGetAtomName, 8 ) \ - SYSCALL_ENTRY( 0x0105, NtUserGetCaretBlinkTime, 0 ) \ - SYSCALL_ENTRY( 0x0106, NtUserGetCaretPos, 4 ) \ - SYSCALL_ENTRY( 0x0107, NtUserGetClassInfoEx, 20 ) \ - SYSCALL_ENTRY( 0x0108, NtUserGetClassName, 12 ) \ - SYSCALL_ENTRY( 0x0109, NtUserGetClipboardData, 8 ) \ - SYSCALL_ENTRY( 0x010a, NtUserGetClipboardFormatName, 12 ) \ - SYSCALL_ENTRY( 0x010b, NtUserGetClipboardOwner, 0 ) \ - SYSCALL_ENTRY( 0x010c, NtUserGetClipboardSequenceNumber, 0 ) \ - SYSCALL_ENTRY( 0x010d, NtUserGetClipboardViewer, 0 ) \ - SYSCALL_ENTRY( 0x010e, NtUserGetCursor, 0 ) \ - SYSCALL_ENTRY( 0x010f, NtUserGetCursorFrameInfo, 16 ) \ - SYSCALL_ENTRY( 0x0110, NtUserGetCursorInfo, 4 ) \ - SYSCALL_ENTRY( 0x0111, NtUserGetDC, 4 ) \ - SYSCALL_ENTRY( 0x0112, NtUserGetDCEx, 12 ) \ - SYSCALL_ENTRY( 0x0113, NtUserGetDisplayConfigBufferSizes, 12 ) \ - SYSCALL_ENTRY( 0x0114, NtUserGetDoubleClickTime, 0 ) \ - SYSCALL_ENTRY( 0x0115, NtUserGetDpiForMonitor, 16 ) \ - SYSCALL_ENTRY( 0x0116, NtUserGetForegroundWindow, 0 ) \ - SYSCALL_ENTRY( 0x0117, NtUserGetGUIThreadInfo, 8 ) \ - SYSCALL_ENTRY( 0x0118, NtUserGetIconInfo, 24 ) \ - SYSCALL_ENTRY( 0x0119, NtUserGetIconSize, 16 ) \ - SYSCALL_ENTRY( 0x011a, NtUserGetInternalWindowPos, 12 ) \ - SYSCALL_ENTRY( 0x011b, NtUserGetKeyNameText, 12 ) \ - SYSCALL_ENTRY( 0x011c, NtUserGetKeyState, 4 ) \ - SYSCALL_ENTRY( 0x011d, NtUserGetKeyboardLayout, 4 ) \ - SYSCALL_ENTRY( 0x011e, NtUserGetKeyboardLayoutList, 8 ) \ - SYSCALL_ENTRY( 0x011f, NtUserGetKeyboardLayoutName, 4 ) \ - SYSCALL_ENTRY( 0x0120, NtUserGetKeyboardState, 4 ) \ - SYSCALL_ENTRY( 0x0121, NtUserGetLayeredWindowAttributes, 16 ) \ - SYSCALL_ENTRY( 0x0122, NtUserGetMenuBarInfo, 16 ) \ - SYSCALL_ENTRY( 0x0123, NtUserGetMenuItemRect, 16 ) \ - SYSCALL_ENTRY( 0x0124, NtUserGetMessage, 16 ) \ - SYSCALL_ENTRY( 0x0125, NtUserGetMouseMovePointsEx, 20 ) \ - SYSCALL_ENTRY( 0x0126, NtUserGetObjectInformation, 20 ) \ - SYSCALL_ENTRY( 0x0127, NtUserGetOpenClipboardWindow, 0 ) \ - SYSCALL_ENTRY( 0x0128, NtUserGetPointerInfoList, 32 ) \ - SYSCALL_ENTRY( 0x0129, NtUserGetPriorityClipboardFormat, 8 ) \ - SYSCALL_ENTRY( 0x012a, NtUserGetProcessDpiAwarenessContext, 4 ) \ - SYSCALL_ENTRY( 0x012b, NtUserGetProcessWindowStation, 0 ) \ - SYSCALL_ENTRY( 0x012c, NtUserGetProp, 8 ) \ - SYSCALL_ENTRY( 0x012d, NtUserGetQueueStatus, 4 ) \ - SYSCALL_ENTRY( 0x012e, NtUserGetRawInputBuffer, 12 ) \ - SYSCALL_ENTRY( 0x012f, NtUserGetRawInputData, 20 ) \ - SYSCALL_ENTRY( 0x0130, NtUserGetRawInputDeviceInfo, 16 ) \ - SYSCALL_ENTRY( 0x0131, NtUserGetRawInputDeviceList, 12 ) \ - SYSCALL_ENTRY( 0x0132, NtUserGetRegisteredRawInputDevices, 12 ) \ - SYSCALL_ENTRY( 0x0133, NtUserGetScrollBarInfo, 12 ) \ - SYSCALL_ENTRY( 0x0134, NtUserGetSystemDpiForProcess, 4 ) \ - SYSCALL_ENTRY( 0x0135, NtUserGetSystemMenu, 8 ) \ - SYSCALL_ENTRY( 0x0136, NtUserGetThreadDesktop, 4 ) \ - SYSCALL_ENTRY( 0x0137, NtUserGetTitleBarInfo, 8 ) \ - SYSCALL_ENTRY( 0x0138, NtUserGetUpdateRect, 12 ) \ - SYSCALL_ENTRY( 0x0139, NtUserGetUpdateRgn, 12 ) \ - SYSCALL_ENTRY( 0x013a, NtUserGetUpdatedClipboardFormats, 12 ) \ - SYSCALL_ENTRY( 0x013b, NtUserGetWindowDC, 4 ) \ - SYSCALL_ENTRY( 0x013c, NtUserGetWindowPlacement, 8 ) \ - SYSCALL_ENTRY( 0x013d, NtUserGetWindowRgnEx, 12 ) \ - SYSCALL_ENTRY( 0x013e, NtUserHideCaret, 4 ) \ - SYSCALL_ENTRY( 0x013f, NtUserHiliteMenuItem, 16 ) \ - SYSCALL_ENTRY( 0x0140, NtUserInitializeClientPfnArrays, 16 ) \ - SYSCALL_ENTRY( 0x0141, NtUserInternalGetWindowIcon, 8 ) \ - SYSCALL_ENTRY( 0x0142, NtUserInternalGetWindowText, 12 ) \ - SYSCALL_ENTRY( 0x0143, NtUserInvalidateRect, 12 ) \ - SYSCALL_ENTRY( 0x0144, NtUserInvalidateRgn, 12 ) \ - SYSCALL_ENTRY( 0x0145, NtUserIsClipboardFormatAvailable, 4 ) \ - SYSCALL_ENTRY( 0x0146, NtUserIsMouseInPointerEnabled, 0 ) \ - SYSCALL_ENTRY( 0x0147, NtUserKillTimer, 8 ) \ - SYSCALL_ENTRY( 0x0148, NtUserLockWindowUpdate, 4 ) \ - SYSCALL_ENTRY( 0x0149, NtUserLogicalToPerMonitorDPIPhysicalPoint, 8 ) \ - SYSCALL_ENTRY( 0x014a, NtUserMapVirtualKeyEx, 12 ) \ - SYSCALL_ENTRY( 0x014b, NtUserMenuItemFromPoint, 16 ) \ - SYSCALL_ENTRY( 0x014c, NtUserMessageCall, 28 ) \ - SYSCALL_ENTRY( 0x014d, NtUserMoveWindow, 24 ) \ - SYSCALL_ENTRY( 0x014e, NtUserMsgWaitForMultipleObjectsEx, 20 ) \ - SYSCALL_ENTRY( 0x014f, NtUserNotifyIMEStatus, 8 ) \ - SYSCALL_ENTRY( 0x0150, NtUserNotifyWinEvent, 16 ) \ - SYSCALL_ENTRY( 0x0151, NtUserOpenClipboard, 8 ) \ - SYSCALL_ENTRY( 0x0152, NtUserOpenDesktop, 12 ) \ - SYSCALL_ENTRY( 0x0153, NtUserOpenInputDesktop, 12 ) \ - SYSCALL_ENTRY( 0x0154, NtUserOpenWindowStation, 8 ) \ - SYSCALL_ENTRY( 0x0155, NtUserPeekMessage, 20 ) \ - SYSCALL_ENTRY( 0x0156, NtUserPerMonitorDPIPhysicalToLogicalPoint, 8 ) \ - SYSCALL_ENTRY( 0x0157, NtUserPostMessage, 16 ) \ - SYSCALL_ENTRY( 0x0158, NtUserPostThreadMessage, 16 ) \ - SYSCALL_ENTRY( 0x0159, NtUserPrintWindow, 12 ) \ - SYSCALL_ENTRY( 0x015a, NtUserQueryDisplayConfig, 24 ) \ - SYSCALL_ENTRY( 0x015b, NtUserQueryInputContext, 8 ) \ - SYSCALL_ENTRY( 0x015c, NtUserRealChildWindowFromPoint, 12 ) \ - SYSCALL_ENTRY( 0x015d, NtUserRedrawWindow, 16 ) \ - SYSCALL_ENTRY( 0x015e, NtUserRegisterClassExWOW, 28 ) \ - SYSCALL_ENTRY( 0x015f, NtUserRegisterHotKey, 16 ) \ - SYSCALL_ENTRY( 0x0160, NtUserRegisterRawInputDevices, 12 ) \ - SYSCALL_ENTRY( 0x0161, NtUserRegisterTouchPadCapable, 4 ) \ - SYSCALL_ENTRY( 0x0162, NtUserReleaseDC, 8 ) \ - SYSCALL_ENTRY( 0x0163, NtUserRemoveClipboardFormatListener, 4 ) \ - SYSCALL_ENTRY( 0x0164, NtUserRemoveMenu, 12 ) \ - SYSCALL_ENTRY( 0x0165, NtUserRemoveProp, 8 ) \ - SYSCALL_ENTRY( 0x0166, NtUserScrollDC, 28 ) \ - SYSCALL_ENTRY( 0x0167, NtUserScrollWindowEx, 32 ) \ - SYSCALL_ENTRY( 0x0168, NtUserSelectPalette, 12 ) \ - SYSCALL_ENTRY( 0x0169, NtUserSendInput, 12 ) \ - SYSCALL_ENTRY( 0x016a, NtUserSetActiveWindow, 4 ) \ - SYSCALL_ENTRY( 0x016b, NtUserSetCapture, 4 ) \ - SYSCALL_ENTRY( 0x016c, NtUserSetClassLong, 16 ) \ - SYSCALL_ENTRY( 0x016d, NtUserSetClassLongPtr, 16 ) \ - SYSCALL_ENTRY( 0x016e, NtUserSetClassWord, 12 ) \ - SYSCALL_ENTRY( 0x016f, NtUserSetClipboardData, 12 ) \ - SYSCALL_ENTRY( 0x0170, NtUserSetClipboardViewer, 4 ) \ - SYSCALL_ENTRY( 0x0171, NtUserSetCursor, 4 ) \ - SYSCALL_ENTRY( 0x0172, NtUserSetCursorIconData, 16 ) \ - SYSCALL_ENTRY( 0x0173, NtUserSetCursorPos, 8 ) \ - SYSCALL_ENTRY( 0x0174, NtUserSetFocus, 4 ) \ - SYSCALL_ENTRY( 0x0175, NtUserSetInternalWindowPos, 16 ) \ - SYSCALL_ENTRY( 0x0176, NtUserSetKeyboardState, 4 ) \ - SYSCALL_ENTRY( 0x0177, NtUserSetLayeredWindowAttributes, 16 ) \ - SYSCALL_ENTRY( 0x0178, NtUserSetMenu, 8 ) \ - SYSCALL_ENTRY( 0x0179, NtUserSetMenuContextHelpId, 8 ) \ - SYSCALL_ENTRY( 0x017a, NtUserSetMenuDefaultItem, 12 ) \ - SYSCALL_ENTRY( 0x017b, NtUserSetObjectInformation, 16 ) \ - SYSCALL_ENTRY( 0x017c, NtUserSetParent, 8 ) \ - SYSCALL_ENTRY( 0x017d, NtUserSetProcessDpiAwarenessContext, 8 ) \ - SYSCALL_ENTRY( 0x017e, NtUserSetProcessWindowStation, 4 ) \ - SYSCALL_ENTRY( 0x017f, NtUserSetProp, 12 ) \ - SYSCALL_ENTRY( 0x0180, NtUserSetScrollInfo, 16 ) \ - SYSCALL_ENTRY( 0x0181, NtUserSetShellWindowEx, 8 ) \ - SYSCALL_ENTRY( 0x0182, NtUserSetSysColors, 12 ) \ - SYSCALL_ENTRY( 0x0183, NtUserSetSystemMenu, 8 ) \ - SYSCALL_ENTRY( 0x0184, NtUserSetSystemTimer, 12 ) \ - SYSCALL_ENTRY( 0x0185, NtUserSetThreadDesktop, 4 ) \ - SYSCALL_ENTRY( 0x0186, NtUserSetTimer, 20 ) \ - SYSCALL_ENTRY( 0x0187, NtUserSetWinEventHook, 32 ) \ - SYSCALL_ENTRY( 0x0188, NtUserSetWindowLong, 16 ) \ - SYSCALL_ENTRY( 0x0189, NtUserSetWindowLongPtr, 16 ) \ - SYSCALL_ENTRY( 0x018a, NtUserSetWindowPlacement, 8 ) \ - SYSCALL_ENTRY( 0x018b, NtUserSetWindowPos, 28 ) \ - SYSCALL_ENTRY( 0x018c, NtUserSetWindowRgn, 12 ) \ - SYSCALL_ENTRY( 0x018d, NtUserSetWindowWord, 12 ) \ - SYSCALL_ENTRY( 0x018e, NtUserSetWindowsHookEx, 24 ) \ - SYSCALL_ENTRY( 0x018f, NtUserShowCaret, 4 ) \ - SYSCALL_ENTRY( 0x0190, NtUserShowCursor, 4 ) \ - SYSCALL_ENTRY( 0x0191, NtUserShowScrollBar, 12 ) \ - SYSCALL_ENTRY( 0x0192, NtUserShowWindow, 8 ) \ - SYSCALL_ENTRY( 0x0193, NtUserShowWindowAsync, 8 ) \ - SYSCALL_ENTRY( 0x0194, NtUserSwitchDesktop, 4 ) \ - SYSCALL_ENTRY( 0x0195, NtUserSystemParametersInfo, 16 ) \ - SYSCALL_ENTRY( 0x0196, NtUserSystemParametersInfoForDpi, 20 ) \ - SYSCALL_ENTRY( 0x0197, NtUserThunkedMenuInfo, 8 ) \ - SYSCALL_ENTRY( 0x0198, NtUserThunkedMenuItemInfo, 24 ) \ - SYSCALL_ENTRY( 0x0199, NtUserToUnicodeEx, 28 ) \ - SYSCALL_ENTRY( 0x019a, NtUserTrackMouseEvent, 4 ) \ - SYSCALL_ENTRY( 0x019b, NtUserTrackPopupMenuEx, 24 ) \ - SYSCALL_ENTRY( 0x019c, NtUserTranslateAccelerator, 12 ) \ - SYSCALL_ENTRY( 0x019d, NtUserTranslateMessage, 8 ) \ - SYSCALL_ENTRY( 0x019e, NtUserUnhookWinEvent, 4 ) \ - SYSCALL_ENTRY( 0x019f, NtUserUnhookWindowsHookEx, 4 ) \ - SYSCALL_ENTRY( 0x01a0, NtUserUnregisterClass, 12 ) \ - SYSCALL_ENTRY( 0x01a1, NtUserUnregisterHotKey, 8 ) \ - SYSCALL_ENTRY( 0x01a2, NtUserUpdateInputContext, 12 ) \ - SYSCALL_ENTRY( 0x01a3, NtUserUpdateLayeredWindow, 40 ) \ - SYSCALL_ENTRY( 0x01a4, NtUserValidateRect, 8 ) \ - SYSCALL_ENTRY( 0x01a5, NtUserVkKeyScanEx, 8 ) \ - SYSCALL_ENTRY( 0x01a6, NtUserWaitForInputIdle, 12 ) \ - SYSCALL_ENTRY( 0x01a7, NtUserWaitMessage, 0 ) \ - SYSCALL_ENTRY( 0x01a8, NtUserWindowFromDC, 4 ) \ - SYSCALL_ENTRY( 0x01a9, NtUserWindowFromPoint, 8 ) \ - SYSCALL_ENTRY( 0x01aa, __wine_get_file_outline_text_metric, 16 ) \ - SYSCALL_ENTRY( 0x01ab, __wine_get_icm_profile, 16 ) + SYSCALL_ENTRY( 0x00cd, NtUserBuildPropList, 16 ) \ + SYSCALL_ENTRY( 0x00ce, NtUserCallHwnd, 8 ) \ + SYSCALL_ENTRY( 0x00cf, NtUserCallHwndParam, 12 ) \ + SYSCALL_ENTRY( 0x00d0, NtUserCallMsgFilter, 8 ) \ + SYSCALL_ENTRY( 0x00d1, NtUserCallNextHookEx, 16 ) \ + SYSCALL_ENTRY( 0x00d2, NtUserCallNoParam, 4 ) \ + SYSCALL_ENTRY( 0x00d3, NtUserCallOneParam, 8 ) \ + SYSCALL_ENTRY( 0x00d4, NtUserCallTwoParam, 12 ) \ + SYSCALL_ENTRY( 0x00d5, NtUserChangeClipboardChain, 8 ) \ + SYSCALL_ENTRY( 0x00d6, NtUserChangeDisplaySettings, 20 ) \ + SYSCALL_ENTRY( 0x00d7, NtUserCheckMenuItem, 12 ) \ + SYSCALL_ENTRY( 0x00d8, NtUserChildWindowFromPointEx, 16 ) \ + SYSCALL_ENTRY( 0x00d9, NtUserClipCursor, 4 ) \ + SYSCALL_ENTRY( 0x00da, NtUserCloseClipboard, 0 ) \ + SYSCALL_ENTRY( 0x00db, NtUserCloseDesktop, 4 ) \ + SYSCALL_ENTRY( 0x00dc, NtUserCloseWindowStation, 4 ) \ + SYSCALL_ENTRY( 0x00dd, NtUserCopyAcceleratorTable, 12 ) \ + SYSCALL_ENTRY( 0x00de, NtUserCountClipboardFormats, 0 ) \ + SYSCALL_ENTRY( 0x00df, NtUserCreateAcceleratorTable, 8 ) \ + SYSCALL_ENTRY( 0x00e0, NtUserCreateCaret, 16 ) \ + SYSCALL_ENTRY( 0x00e1, NtUserCreateDesktopEx, 24 ) \ + SYSCALL_ENTRY( 0x00e2, NtUserCreateInputContext, 4 ) \ + SYSCALL_ENTRY( 0x00e3, NtUserCreateWindowEx, 68 ) \ + SYSCALL_ENTRY( 0x00e4, NtUserCreateWindowStation, 28 ) \ + SYSCALL_ENTRY( 0x00e5, NtUserDeferWindowPosAndBand, 40 ) \ + SYSCALL_ENTRY( 0x00e6, NtUserDeleteMenu, 12 ) \ + SYSCALL_ENTRY( 0x00e7, NtUserDestroyAcceleratorTable, 4 ) \ + SYSCALL_ENTRY( 0x00e8, NtUserDestroyCursor, 8 ) \ + SYSCALL_ENTRY( 0x00e9, NtUserDestroyInputContext, 4 ) \ + SYSCALL_ENTRY( 0x00ea, NtUserDestroyMenu, 4 ) \ + SYSCALL_ENTRY( 0x00eb, NtUserDestroyWindow, 4 ) \ + SYSCALL_ENTRY( 0x00ec, NtUserDisableThreadIme, 4 ) \ + SYSCALL_ENTRY( 0x00ed, NtUserDispatchMessage, 4 ) \ + SYSCALL_ENTRY( 0x00ee, NtUserDisplayConfigGetDeviceInfo, 4 ) \ + SYSCALL_ENTRY( 0x00ef, NtUserDragDetect, 12 ) \ + SYSCALL_ENTRY( 0x00f0, NtUserDragObject, 20 ) \ + SYSCALL_ENTRY( 0x00f1, NtUserDrawCaptionTemp, 28 ) \ + SYSCALL_ENTRY( 0x00f2, NtUserDrawIconEx, 36 ) \ + SYSCALL_ENTRY( 0x00f3, NtUserDrawMenuBarTemp, 20 ) \ + SYSCALL_ENTRY( 0x00f4, NtUserEmptyClipboard, 0 ) \ + SYSCALL_ENTRY( 0x00f5, NtUserEnableMenuItem, 12 ) \ + SYSCALL_ENTRY( 0x00f6, NtUserEnableMouseInPointer, 4 ) \ + SYSCALL_ENTRY( 0x00f7, NtUserEnableMouseInPointerForThread, 0 ) \ + SYSCALL_ENTRY( 0x00f8, NtUserEnableScrollBar, 12 ) \ + SYSCALL_ENTRY( 0x00f9, NtUserEndDeferWindowPosEx, 8 ) \ + SYSCALL_ENTRY( 0x00fa, NtUserEndMenu, 0 ) \ + SYSCALL_ENTRY( 0x00fb, NtUserEndPaint, 8 ) \ + SYSCALL_ENTRY( 0x00fc, NtUserEnumDisplayDevices, 16 ) \ + SYSCALL_ENTRY( 0x00fd, NtUserEnumDisplayMonitors, 16 ) \ + SYSCALL_ENTRY( 0x00fe, NtUserEnumDisplaySettings, 16 ) \ + SYSCALL_ENTRY( 0x00ff, NtUserExcludeUpdateRgn, 8 ) \ + SYSCALL_ENTRY( 0x0100, NtUserFindExistingCursorIcon, 12 ) \ + SYSCALL_ENTRY( 0x0101, NtUserFindWindowEx, 20 ) \ + SYSCALL_ENTRY( 0x0102, NtUserFlashWindowEx, 4 ) \ + SYSCALL_ENTRY( 0x0103, NtUserGetAncestor, 8 ) \ + SYSCALL_ENTRY( 0x0104, NtUserGetAsyncKeyState, 4 ) \ + SYSCALL_ENTRY( 0x0105, NtUserGetAtomName, 8 ) \ + SYSCALL_ENTRY( 0x0106, NtUserGetCaretBlinkTime, 0 ) \ + SYSCALL_ENTRY( 0x0107, NtUserGetCaretPos, 4 ) \ + SYSCALL_ENTRY( 0x0108, NtUserGetClassInfoEx, 20 ) \ + SYSCALL_ENTRY( 0x0109, NtUserGetClassName, 12 ) \ + SYSCALL_ENTRY( 0x010a, NtUserGetClipboardData, 8 ) \ + SYSCALL_ENTRY( 0x010b, NtUserGetClipboardFormatName, 12 ) \ + SYSCALL_ENTRY( 0x010c, NtUserGetClipboardOwner, 0 ) \ + SYSCALL_ENTRY( 0x010d, NtUserGetClipboardSequenceNumber, 0 ) \ + SYSCALL_ENTRY( 0x010e, NtUserGetClipboardViewer, 0 ) \ + SYSCALL_ENTRY( 0x010f, NtUserGetCursor, 0 ) \ + SYSCALL_ENTRY( 0x0110, NtUserGetCursorFrameInfo, 16 ) \ + SYSCALL_ENTRY( 0x0111, NtUserGetCursorInfo, 4 ) \ + SYSCALL_ENTRY( 0x0112, NtUserGetDC, 4 ) \ + SYSCALL_ENTRY( 0x0113, NtUserGetDCEx, 12 ) \ + SYSCALL_ENTRY( 0x0114, NtUserGetDisplayConfigBufferSizes, 12 ) \ + SYSCALL_ENTRY( 0x0115, NtUserGetDoubleClickTime, 0 ) \ + SYSCALL_ENTRY( 0x0116, NtUserGetDpiForMonitor, 16 ) \ + SYSCALL_ENTRY( 0x0117, NtUserGetForegroundWindow, 0 ) \ + SYSCALL_ENTRY( 0x0118, NtUserGetGUIThreadInfo, 8 ) \ + SYSCALL_ENTRY( 0x0119, NtUserGetIconInfo, 24 ) \ + SYSCALL_ENTRY( 0x011a, NtUserGetIconSize, 16 ) \ + SYSCALL_ENTRY( 0x011b, NtUserGetInternalWindowPos, 12 ) \ + SYSCALL_ENTRY( 0x011c, NtUserGetKeyNameText, 12 ) \ + SYSCALL_ENTRY( 0x011d, NtUserGetKeyState, 4 ) \ + SYSCALL_ENTRY( 0x011e, NtUserGetKeyboardLayout, 4 ) \ + SYSCALL_ENTRY( 0x011f, NtUserGetKeyboardLayoutList, 8 ) \ + SYSCALL_ENTRY( 0x0120, NtUserGetKeyboardLayoutName, 4 ) \ + SYSCALL_ENTRY( 0x0121, NtUserGetKeyboardState, 4 ) \ + SYSCALL_ENTRY( 0x0122, NtUserGetLayeredWindowAttributes, 16 ) \ + SYSCALL_ENTRY( 0x0123, NtUserGetMenuBarInfo, 16 ) \ + SYSCALL_ENTRY( 0x0124, NtUserGetMenuItemRect, 16 ) \ + SYSCALL_ENTRY( 0x0125, NtUserGetMessage, 16 ) \ + SYSCALL_ENTRY( 0x0126, NtUserGetMouseMovePointsEx, 20 ) \ + SYSCALL_ENTRY( 0x0127, NtUserGetObjectInformation, 20 ) \ + SYSCALL_ENTRY( 0x0128, NtUserGetOpenClipboardWindow, 0 ) \ + SYSCALL_ENTRY( 0x0129, NtUserGetPointerInfoList, 32 ) \ + SYSCALL_ENTRY( 0x012a, NtUserGetPriorityClipboardFormat, 8 ) \ + SYSCALL_ENTRY( 0x012b, NtUserGetProcessDpiAwarenessContext, 4 ) \ + SYSCALL_ENTRY( 0x012c, NtUserGetProcessWindowStation, 0 ) \ + SYSCALL_ENTRY( 0x012d, NtUserGetProp, 8 ) \ + SYSCALL_ENTRY( 0x012e, NtUserGetQueueStatus, 4 ) \ + SYSCALL_ENTRY( 0x012f, NtUserGetRawInputBuffer, 12 ) \ + SYSCALL_ENTRY( 0x0130, NtUserGetRawInputData, 20 ) \ + SYSCALL_ENTRY( 0x0131, NtUserGetRawInputDeviceInfo, 16 ) \ + SYSCALL_ENTRY( 0x0132, NtUserGetRawInputDeviceList, 12 ) \ + SYSCALL_ENTRY( 0x0133, NtUserGetRegisteredRawInputDevices, 12 ) \ + SYSCALL_ENTRY( 0x0134, NtUserGetScrollBarInfo, 12 ) \ + SYSCALL_ENTRY( 0x0135, NtUserGetSystemDpiForProcess, 4 ) \ + SYSCALL_ENTRY( 0x0136, NtUserGetSystemMenu, 8 ) \ + SYSCALL_ENTRY( 0x0137, NtUserGetThreadDesktop, 4 ) \ + SYSCALL_ENTRY( 0x0138, NtUserGetTitleBarInfo, 8 ) \ + SYSCALL_ENTRY( 0x0139, NtUserGetUpdateRect, 12 ) \ + SYSCALL_ENTRY( 0x013a, NtUserGetUpdateRgn, 12 ) \ + SYSCALL_ENTRY( 0x013b, NtUserGetUpdatedClipboardFormats, 12 ) \ + SYSCALL_ENTRY( 0x013c, NtUserGetWindowDC, 4 ) \ + SYSCALL_ENTRY( 0x013d, NtUserGetWindowPlacement, 8 ) \ + SYSCALL_ENTRY( 0x013e, NtUserGetWindowRgnEx, 12 ) \ + SYSCALL_ENTRY( 0x013f, NtUserHideCaret, 4 ) \ + SYSCALL_ENTRY( 0x0140, NtUserHiliteMenuItem, 16 ) \ + SYSCALL_ENTRY( 0x0141, NtUserInitializeClientPfnArrays, 16 ) \ + SYSCALL_ENTRY( 0x0142, NtUserInternalGetWindowIcon, 8 ) \ + SYSCALL_ENTRY( 0x0143, NtUserInternalGetWindowText, 12 ) \ + SYSCALL_ENTRY( 0x0144, NtUserInvalidateRect, 12 ) \ + SYSCALL_ENTRY( 0x0145, NtUserInvalidateRgn, 12 ) \ + SYSCALL_ENTRY( 0x0146, NtUserIsClipboardFormatAvailable, 4 ) \ + SYSCALL_ENTRY( 0x0147, NtUserIsMouseInPointerEnabled, 0 ) \ + SYSCALL_ENTRY( 0x0148, NtUserKillTimer, 8 ) \ + SYSCALL_ENTRY( 0x0149, NtUserLockWindowUpdate, 4 ) \ + SYSCALL_ENTRY( 0x014a, NtUserLogicalToPerMonitorDPIPhysicalPoint, 8 ) \ + SYSCALL_ENTRY( 0x014b, NtUserMapVirtualKeyEx, 12 ) \ + SYSCALL_ENTRY( 0x014c, NtUserMenuItemFromPoint, 16 ) \ + SYSCALL_ENTRY( 0x014d, NtUserMessageCall, 28 ) \ + SYSCALL_ENTRY( 0x014e, NtUserMoveWindow, 24 ) \ + SYSCALL_ENTRY( 0x014f, NtUserMsgWaitForMultipleObjectsEx, 20 ) \ + SYSCALL_ENTRY( 0x0150, NtUserNotifyIMEStatus, 8 ) \ + SYSCALL_ENTRY( 0x0151, NtUserNotifyWinEvent, 16 ) \ + SYSCALL_ENTRY( 0x0152, NtUserOpenClipboard, 8 ) \ + SYSCALL_ENTRY( 0x0153, NtUserOpenDesktop, 12 ) \ + SYSCALL_ENTRY( 0x0154, NtUserOpenInputDesktop, 12 ) \ + SYSCALL_ENTRY( 0x0155, NtUserOpenWindowStation, 8 ) \ + SYSCALL_ENTRY( 0x0156, NtUserPeekMessage, 20 ) \ + SYSCALL_ENTRY( 0x0157, NtUserPerMonitorDPIPhysicalToLogicalPoint, 8 ) \ + SYSCALL_ENTRY( 0x0158, NtUserPostMessage, 16 ) \ + SYSCALL_ENTRY( 0x0159, NtUserPostThreadMessage, 16 ) \ + SYSCALL_ENTRY( 0x015a, NtUserPrintWindow, 12 ) \ + SYSCALL_ENTRY( 0x015b, NtUserQueryDisplayConfig, 24 ) \ + SYSCALL_ENTRY( 0x015c, NtUserQueryInputContext, 8 ) \ + SYSCALL_ENTRY( 0x015d, NtUserRealChildWindowFromPoint, 12 ) \ + SYSCALL_ENTRY( 0x015e, NtUserRedrawWindow, 16 ) \ + SYSCALL_ENTRY( 0x015f, NtUserRegisterClassExWOW, 28 ) \ + SYSCALL_ENTRY( 0x0160, NtUserRegisterHotKey, 16 ) \ + SYSCALL_ENTRY( 0x0161, NtUserRegisterRawInputDevices, 12 ) \ + SYSCALL_ENTRY( 0x0162, NtUserRegisterTouchPadCapable, 4 ) \ + SYSCALL_ENTRY( 0x0163, NtUserReleaseDC, 8 ) \ + SYSCALL_ENTRY( 0x0164, NtUserRemoveClipboardFormatListener, 4 ) \ + SYSCALL_ENTRY( 0x0165, NtUserRemoveMenu, 12 ) \ + SYSCALL_ENTRY( 0x0166, NtUserRemoveProp, 8 ) \ + SYSCALL_ENTRY( 0x0167, NtUserScrollDC, 28 ) \ + SYSCALL_ENTRY( 0x0168, NtUserScrollWindowEx, 32 ) \ + SYSCALL_ENTRY( 0x0169, NtUserSelectPalette, 12 ) \ + SYSCALL_ENTRY( 0x016a, NtUserSendInput, 12 ) \ + SYSCALL_ENTRY( 0x016b, NtUserSetActiveWindow, 4 ) \ + SYSCALL_ENTRY( 0x016c, NtUserSetCapture, 4 ) \ + SYSCALL_ENTRY( 0x016d, NtUserSetClassLong, 16 ) \ + SYSCALL_ENTRY( 0x016e, NtUserSetClassLongPtr, 16 ) \ + SYSCALL_ENTRY( 0x016f, NtUserSetClassWord, 12 ) \ + SYSCALL_ENTRY( 0x0170, NtUserSetClipboardData, 12 ) \ + SYSCALL_ENTRY( 0x0171, NtUserSetClipboardViewer, 4 ) \ + SYSCALL_ENTRY( 0x0172, NtUserSetCursor, 4 ) \ + SYSCALL_ENTRY( 0x0173, NtUserSetCursorIconData, 16 ) \ + SYSCALL_ENTRY( 0x0174, NtUserSetCursorPos, 8 ) \ + SYSCALL_ENTRY( 0x0175, NtUserSetFocus, 4 ) \ + SYSCALL_ENTRY( 0x0176, NtUserSetInternalWindowPos, 16 ) \ + SYSCALL_ENTRY( 0x0177, NtUserSetKeyboardState, 4 ) \ + SYSCALL_ENTRY( 0x0178, NtUserSetLayeredWindowAttributes, 16 ) \ + SYSCALL_ENTRY( 0x0179, NtUserSetMenu, 8 ) \ + SYSCALL_ENTRY( 0x017a, NtUserSetMenuContextHelpId, 8 ) \ + SYSCALL_ENTRY( 0x017b, NtUserSetMenuDefaultItem, 12 ) \ + SYSCALL_ENTRY( 0x017c, NtUserSetObjectInformation, 16 ) \ + SYSCALL_ENTRY( 0x017d, NtUserSetParent, 8 ) \ + SYSCALL_ENTRY( 0x017e, NtUserSetProcessDpiAwarenessContext, 8 ) \ + SYSCALL_ENTRY( 0x017f, NtUserSetProcessWindowStation, 4 ) \ + SYSCALL_ENTRY( 0x0180, NtUserSetProp, 12 ) \ + SYSCALL_ENTRY( 0x0181, NtUserSetScrollInfo, 16 ) \ + SYSCALL_ENTRY( 0x0182, NtUserSetShellWindowEx, 8 ) \ + SYSCALL_ENTRY( 0x0183, NtUserSetSysColors, 12 ) \ + SYSCALL_ENTRY( 0x0184, NtUserSetSystemMenu, 8 ) \ + SYSCALL_ENTRY( 0x0185, NtUserSetSystemTimer, 12 ) \ + SYSCALL_ENTRY( 0x0186, NtUserSetThreadDesktop, 4 ) \ + SYSCALL_ENTRY( 0x0187, NtUserSetTimer, 20 ) \ + SYSCALL_ENTRY( 0x0188, NtUserSetWinEventHook, 32 ) \ + SYSCALL_ENTRY( 0x0189, NtUserSetWindowLong, 16 ) \ + SYSCALL_ENTRY( 0x018a, NtUserSetWindowLongPtr, 16 ) \ + SYSCALL_ENTRY( 0x018b, NtUserSetWindowPlacement, 8 ) \ + SYSCALL_ENTRY( 0x018c, NtUserSetWindowPos, 28 ) \ + SYSCALL_ENTRY( 0x018d, NtUserSetWindowRgn, 12 ) \ + SYSCALL_ENTRY( 0x018e, NtUserSetWindowWord, 12 ) \ + SYSCALL_ENTRY( 0x018f, NtUserSetWindowsHookEx, 24 ) \ + SYSCALL_ENTRY( 0x0190, NtUserShowCaret, 4 ) \ + SYSCALL_ENTRY( 0x0191, NtUserShowCursor, 4 ) \ + SYSCALL_ENTRY( 0x0192, NtUserShowScrollBar, 12 ) \ + SYSCALL_ENTRY( 0x0193, NtUserShowWindow, 8 ) \ + SYSCALL_ENTRY( 0x0194, NtUserShowWindowAsync, 8 ) \ + SYSCALL_ENTRY( 0x0195, NtUserSwitchDesktop, 4 ) \ + SYSCALL_ENTRY( 0x0196, NtUserSystemParametersInfo, 16 ) \ + SYSCALL_ENTRY( 0x0197, NtUserSystemParametersInfoForDpi, 20 ) \ + SYSCALL_ENTRY( 0x0198, NtUserThunkedMenuInfo, 8 ) \ + SYSCALL_ENTRY( 0x0199, NtUserThunkedMenuItemInfo, 24 ) \ + SYSCALL_ENTRY( 0x019a, NtUserToUnicodeEx, 28 ) \ + SYSCALL_ENTRY( 0x019b, NtUserTrackMouseEvent, 4 ) \ + SYSCALL_ENTRY( 0x019c, NtUserTrackPopupMenuEx, 24 ) \ + SYSCALL_ENTRY( 0x019d, NtUserTranslateAccelerator, 12 ) \ + SYSCALL_ENTRY( 0x019e, NtUserTranslateMessage, 8 ) \ + SYSCALL_ENTRY( 0x019f, NtUserUnhookWinEvent, 4 ) \ + SYSCALL_ENTRY( 0x01a0, NtUserUnhookWindowsHookEx, 4 ) \ + SYSCALL_ENTRY( 0x01a1, NtUserUnregisterClass, 12 ) \ + SYSCALL_ENTRY( 0x01a2, NtUserUnregisterHotKey, 8 ) \ + SYSCALL_ENTRY( 0x01a3, NtUserUpdateInputContext, 12 ) \ + SYSCALL_ENTRY( 0x01a4, NtUserUpdateLayeredWindow, 40 ) \ + SYSCALL_ENTRY( 0x01a5, NtUserValidateRect, 8 ) \ + SYSCALL_ENTRY( 0x01a6, NtUserVkKeyScanEx, 8 ) \ + SYSCALL_ENTRY( 0x01a7, NtUserWaitForInputIdle, 12 ) \ + SYSCALL_ENTRY( 0x01a8, NtUserWaitMessage, 0 ) \ + SYSCALL_ENTRY( 0x01a9, NtUserWindowFromDC, 4 ) \ + SYSCALL_ENTRY( 0x01aa, NtUserWindowFromPoint, 8 ) \ + SYSCALL_ENTRY( 0x01ab, __wine_get_file_outline_text_metric, 16 ) \ + SYSCALL_ENTRY( 0x01ac, __wine_get_icm_profile, 16 ) #define ALL_SYSCALLS64 \ SYSCALL_ENTRY( 0x0000, NtGdiAbortDoc, 8 ) \ @@ -636,226 +637,227 @@ SYSCALL_ENTRY( 0x00ca, NtUserBeginPaint, 16 ) \ SYSCALL_ENTRY( 0x00cb, NtUserBuildHimcList, 32 ) \ SYSCALL_ENTRY( 0x00cc, NtUserBuildHwndList, 64 ) \ - SYSCALL_ENTRY( 0x00cd, NtUserCallHwnd, 16 ) \ - SYSCALL_ENTRY( 0x00ce, NtUserCallHwndParam, 24 ) \ - SYSCALL_ENTRY( 0x00cf, NtUserCallMsgFilter, 16 ) \ - SYSCALL_ENTRY( 0x00d0, NtUserCallNextHookEx, 32 ) \ - SYSCALL_ENTRY( 0x00d1, NtUserCallNoParam, 8 ) \ - SYSCALL_ENTRY( 0x00d2, NtUserCallOneParam, 16 ) \ - SYSCALL_ENTRY( 0x00d3, NtUserCallTwoParam, 24 ) \ - SYSCALL_ENTRY( 0x00d4, NtUserChangeClipboardChain, 16 ) \ - SYSCALL_ENTRY( 0x00d5, NtUserChangeDisplaySettings, 40 ) \ - SYSCALL_ENTRY( 0x00d6, NtUserCheckMenuItem, 24 ) \ - SYSCALL_ENTRY( 0x00d7, NtUserChildWindowFromPointEx, 32 ) \ - SYSCALL_ENTRY( 0x00d8, NtUserClipCursor, 8 ) \ - SYSCALL_ENTRY( 0x00d9, NtUserCloseClipboard, 0 ) \ - SYSCALL_ENTRY( 0x00da, NtUserCloseDesktop, 8 ) \ - SYSCALL_ENTRY( 0x00db, NtUserCloseWindowStation, 8 ) \ - SYSCALL_ENTRY( 0x00dc, NtUserCopyAcceleratorTable, 24 ) \ - SYSCALL_ENTRY( 0x00dd, NtUserCountClipboardFormats, 0 ) \ - SYSCALL_ENTRY( 0x00de, NtUserCreateAcceleratorTable, 16 ) \ - SYSCALL_ENTRY( 0x00df, NtUserCreateCaret, 32 ) \ - SYSCALL_ENTRY( 0x00e0, NtUserCreateDesktopEx, 48 ) \ - SYSCALL_ENTRY( 0x00e1, NtUserCreateInputContext, 8 ) \ - SYSCALL_ENTRY( 0x00e2, NtUserCreateWindowEx, 136 ) \ - SYSCALL_ENTRY( 0x00e3, NtUserCreateWindowStation, 56 ) \ - SYSCALL_ENTRY( 0x00e4, NtUserDeferWindowPosAndBand, 80 ) \ - SYSCALL_ENTRY( 0x00e5, NtUserDeleteMenu, 24 ) \ - SYSCALL_ENTRY( 0x00e6, NtUserDestroyAcceleratorTable, 8 ) \ - SYSCALL_ENTRY( 0x00e7, NtUserDestroyCursor, 16 ) \ - SYSCALL_ENTRY( 0x00e8, NtUserDestroyInputContext, 8 ) \ - SYSCALL_ENTRY( 0x00e9, NtUserDestroyMenu, 8 ) \ - SYSCALL_ENTRY( 0x00ea, NtUserDestroyWindow, 8 ) \ - SYSCALL_ENTRY( 0x00eb, NtUserDisableThreadIme, 8 ) \ - SYSCALL_ENTRY( 0x00ec, NtUserDispatchMessage, 8 ) \ - SYSCALL_ENTRY( 0x00ed, NtUserDisplayConfigGetDeviceInfo, 8 ) \ - SYSCALL_ENTRY( 0x00ee, NtUserDragDetect, 24 ) \ - SYSCALL_ENTRY( 0x00ef, NtUserDragObject, 40 ) \ - SYSCALL_ENTRY( 0x00f0, NtUserDrawCaptionTemp, 56 ) \ - SYSCALL_ENTRY( 0x00f1, NtUserDrawIconEx, 72 ) \ - SYSCALL_ENTRY( 0x00f2, NtUserDrawMenuBarTemp, 40 ) \ - SYSCALL_ENTRY( 0x00f3, NtUserEmptyClipboard, 0 ) \ - SYSCALL_ENTRY( 0x00f4, NtUserEnableMenuItem, 24 ) \ - SYSCALL_ENTRY( 0x00f5, NtUserEnableMouseInPointer, 8 ) \ - SYSCALL_ENTRY( 0x00f6, NtUserEnableMouseInPointerForThread, 0 ) \ - SYSCALL_ENTRY( 0x00f7, NtUserEnableScrollBar, 24 ) \ - SYSCALL_ENTRY( 0x00f8, NtUserEndDeferWindowPosEx, 16 ) \ - SYSCALL_ENTRY( 0x00f9, NtUserEndMenu, 0 ) \ - SYSCALL_ENTRY( 0x00fa, NtUserEndPaint, 16 ) \ - SYSCALL_ENTRY( 0x00fb, NtUserEnumDisplayDevices, 32 ) \ - SYSCALL_ENTRY( 0x00fc, NtUserEnumDisplayMonitors, 32 ) \ - SYSCALL_ENTRY( 0x00fd, NtUserEnumDisplaySettings, 32 ) \ - SYSCALL_ENTRY( 0x00fe, NtUserExcludeUpdateRgn, 16 ) \ - SYSCALL_ENTRY( 0x00ff, NtUserFindExistingCursorIcon, 24 ) \ - SYSCALL_ENTRY( 0x0100, NtUserFindWindowEx, 40 ) \ - SYSCALL_ENTRY( 0x0101, NtUserFlashWindowEx, 8 ) \ - SYSCALL_ENTRY( 0x0102, NtUserGetAncestor, 16 ) \ - SYSCALL_ENTRY( 0x0103, NtUserGetAsyncKeyState, 8 ) \ - SYSCALL_ENTRY( 0x0104, NtUserGetAtomName, 16 ) \ - SYSCALL_ENTRY( 0x0105, NtUserGetCaretBlinkTime, 0 ) \ - SYSCALL_ENTRY( 0x0106, NtUserGetCaretPos, 8 ) \ - SYSCALL_ENTRY( 0x0107, NtUserGetClassInfoEx, 40 ) \ - SYSCALL_ENTRY( 0x0108, NtUserGetClassName, 24 ) \ - SYSCALL_ENTRY( 0x0109, NtUserGetClipboardData, 16 ) \ - SYSCALL_ENTRY( 0x010a, NtUserGetClipboardFormatName, 24 ) \ - SYSCALL_ENTRY( 0x010b, NtUserGetClipboardOwner, 0 ) \ - SYSCALL_ENTRY( 0x010c, NtUserGetClipboardSequenceNumber, 0 ) \ - SYSCALL_ENTRY( 0x010d, NtUserGetClipboardViewer, 0 ) \ - SYSCALL_ENTRY( 0x010e, NtUserGetCursor, 0 ) \ - SYSCALL_ENTRY( 0x010f, NtUserGetCursorFrameInfo, 32 ) \ - SYSCALL_ENTRY( 0x0110, NtUserGetCursorInfo, 8 ) \ - SYSCALL_ENTRY( 0x0111, NtUserGetDC, 8 ) \ - SYSCALL_ENTRY( 0x0112, NtUserGetDCEx, 24 ) \ - SYSCALL_ENTRY( 0x0113, NtUserGetDisplayConfigBufferSizes, 24 ) \ - SYSCALL_ENTRY( 0x0114, NtUserGetDoubleClickTime, 0 ) \ - SYSCALL_ENTRY( 0x0115, NtUserGetDpiForMonitor, 32 ) \ - SYSCALL_ENTRY( 0x0116, NtUserGetForegroundWindow, 0 ) \ - SYSCALL_ENTRY( 0x0117, NtUserGetGUIThreadInfo, 16 ) \ - SYSCALL_ENTRY( 0x0118, NtUserGetIconInfo, 48 ) \ - SYSCALL_ENTRY( 0x0119, NtUserGetIconSize, 32 ) \ - SYSCALL_ENTRY( 0x011a, NtUserGetInternalWindowPos, 24 ) \ - SYSCALL_ENTRY( 0x011b, NtUserGetKeyNameText, 24 ) \ - SYSCALL_ENTRY( 0x011c, NtUserGetKeyState, 8 ) \ - SYSCALL_ENTRY( 0x011d, NtUserGetKeyboardLayout, 8 ) \ - SYSCALL_ENTRY( 0x011e, NtUserGetKeyboardLayoutList, 16 ) \ - SYSCALL_ENTRY( 0x011f, NtUserGetKeyboardLayoutName, 8 ) \ - SYSCALL_ENTRY( 0x0120, NtUserGetKeyboardState, 8 ) \ - SYSCALL_ENTRY( 0x0121, NtUserGetLayeredWindowAttributes, 32 ) \ - SYSCALL_ENTRY( 0x0122, NtUserGetMenuBarInfo, 32 ) \ - SYSCALL_ENTRY( 0x0123, NtUserGetMenuItemRect, 32 ) \ - SYSCALL_ENTRY( 0x0124, NtUserGetMessage, 32 ) \ - SYSCALL_ENTRY( 0x0125, NtUserGetMouseMovePointsEx, 40 ) \ - SYSCALL_ENTRY( 0x0126, NtUserGetObjectInformation, 40 ) \ - SYSCALL_ENTRY( 0x0127, NtUserGetOpenClipboardWindow, 0 ) \ - SYSCALL_ENTRY( 0x0128, NtUserGetPointerInfoList, 64 ) \ - SYSCALL_ENTRY( 0x0129, NtUserGetPriorityClipboardFormat, 16 ) \ - SYSCALL_ENTRY( 0x012a, NtUserGetProcessDpiAwarenessContext, 8 ) \ - SYSCALL_ENTRY( 0x012b, NtUserGetProcessWindowStation, 0 ) \ - SYSCALL_ENTRY( 0x012c, NtUserGetProp, 16 ) \ - SYSCALL_ENTRY( 0x012d, NtUserGetQueueStatus, 8 ) \ - SYSCALL_ENTRY( 0x012e, NtUserGetRawInputBuffer, 24 ) \ - SYSCALL_ENTRY( 0x012f, NtUserGetRawInputData, 40 ) \ - SYSCALL_ENTRY( 0x0130, NtUserGetRawInputDeviceInfo, 32 ) \ - SYSCALL_ENTRY( 0x0131, NtUserGetRawInputDeviceList, 24 ) \ - SYSCALL_ENTRY( 0x0132, NtUserGetRegisteredRawInputDevices, 24 ) \ - SYSCALL_ENTRY( 0x0133, NtUserGetScrollBarInfo, 24 ) \ - SYSCALL_ENTRY( 0x0134, NtUserGetSystemDpiForProcess, 8 ) \ - SYSCALL_ENTRY( 0x0135, NtUserGetSystemMenu, 16 ) \ - SYSCALL_ENTRY( 0x0136, NtUserGetThreadDesktop, 8 ) \ - SYSCALL_ENTRY( 0x0137, NtUserGetTitleBarInfo, 16 ) \ - SYSCALL_ENTRY( 0x0138, NtUserGetUpdateRect, 24 ) \ - SYSCALL_ENTRY( 0x0139, NtUserGetUpdateRgn, 24 ) \ - SYSCALL_ENTRY( 0x013a, NtUserGetUpdatedClipboardFormats, 24 ) \ - SYSCALL_ENTRY( 0x013b, NtUserGetWindowDC, 8 ) \ - SYSCALL_ENTRY( 0x013c, NtUserGetWindowPlacement, 16 ) \ - SYSCALL_ENTRY( 0x013d, NtUserGetWindowRgnEx, 24 ) \ - SYSCALL_ENTRY( 0x013e, NtUserHideCaret, 8 ) \ - SYSCALL_ENTRY( 0x013f, NtUserHiliteMenuItem, 32 ) \ - SYSCALL_ENTRY( 0x0140, NtUserInitializeClientPfnArrays, 32 ) \ - SYSCALL_ENTRY( 0x0141, NtUserInternalGetWindowIcon, 16 ) \ - SYSCALL_ENTRY( 0x0142, NtUserInternalGetWindowText, 24 ) \ - SYSCALL_ENTRY( 0x0143, NtUserInvalidateRect, 24 ) \ - SYSCALL_ENTRY( 0x0144, NtUserInvalidateRgn, 24 ) \ - SYSCALL_ENTRY( 0x0145, NtUserIsClipboardFormatAvailable, 8 ) \ - SYSCALL_ENTRY( 0x0146, NtUserIsMouseInPointerEnabled, 0 ) \ - SYSCALL_ENTRY( 0x0147, NtUserKillTimer, 16 ) \ - SYSCALL_ENTRY( 0x0148, NtUserLockWindowUpdate, 8 ) \ - SYSCALL_ENTRY( 0x0149, NtUserLogicalToPerMonitorDPIPhysicalPoint, 16 ) \ - SYSCALL_ENTRY( 0x014a, NtUserMapVirtualKeyEx, 24 ) \ - SYSCALL_ENTRY( 0x014b, NtUserMenuItemFromPoint, 32 ) \ - SYSCALL_ENTRY( 0x014c, NtUserMessageCall, 56 ) \ - SYSCALL_ENTRY( 0x014d, NtUserMoveWindow, 48 ) \ - SYSCALL_ENTRY( 0x014e, NtUserMsgWaitForMultipleObjectsEx, 40 ) \ - SYSCALL_ENTRY( 0x014f, NtUserNotifyIMEStatus, 16 ) \ - SYSCALL_ENTRY( 0x0150, NtUserNotifyWinEvent, 32 ) \ - SYSCALL_ENTRY( 0x0151, NtUserOpenClipboard, 16 ) \ - SYSCALL_ENTRY( 0x0152, NtUserOpenDesktop, 24 ) \ - SYSCALL_ENTRY( 0x0153, NtUserOpenInputDesktop, 24 ) \ - SYSCALL_ENTRY( 0x0154, NtUserOpenWindowStation, 16 ) \ - SYSCALL_ENTRY( 0x0155, NtUserPeekMessage, 40 ) \ - SYSCALL_ENTRY( 0x0156, NtUserPerMonitorDPIPhysicalToLogicalPoint, 16 ) \ - SYSCALL_ENTRY( 0x0157, NtUserPostMessage, 32 ) \ - SYSCALL_ENTRY( 0x0158, NtUserPostThreadMessage, 32 ) \ - SYSCALL_ENTRY( 0x0159, NtUserPrintWindow, 24 ) \ - SYSCALL_ENTRY( 0x015a, NtUserQueryDisplayConfig, 48 ) \ - SYSCALL_ENTRY( 0x015b, NtUserQueryInputContext, 16 ) \ - SYSCALL_ENTRY( 0x015c, NtUserRealChildWindowFromPoint, 24 ) \ - SYSCALL_ENTRY( 0x015d, NtUserRedrawWindow, 32 ) \ - SYSCALL_ENTRY( 0x015e, NtUserRegisterClassExWOW, 56 ) \ - SYSCALL_ENTRY( 0x015f, NtUserRegisterHotKey, 32 ) \ - SYSCALL_ENTRY( 0x0160, NtUserRegisterRawInputDevices, 24 ) \ - SYSCALL_ENTRY( 0x0161, NtUserRegisterTouchPadCapable, 8 ) \ - SYSCALL_ENTRY( 0x0162, NtUserReleaseDC, 16 ) \ - SYSCALL_ENTRY( 0x0163, NtUserRemoveClipboardFormatListener, 8 ) \ - SYSCALL_ENTRY( 0x0164, NtUserRemoveMenu, 24 ) \ - SYSCALL_ENTRY( 0x0165, NtUserRemoveProp, 16 ) \ - SYSCALL_ENTRY( 0x0166, NtUserScrollDC, 56 ) \ - SYSCALL_ENTRY( 0x0167, NtUserScrollWindowEx, 64 ) \ - SYSCALL_ENTRY( 0x0168, NtUserSelectPalette, 24 ) \ - SYSCALL_ENTRY( 0x0169, NtUserSendInput, 24 ) \ - SYSCALL_ENTRY( 0x016a, NtUserSetActiveWindow, 8 ) \ - SYSCALL_ENTRY( 0x016b, NtUserSetCapture, 8 ) \ - SYSCALL_ENTRY( 0x016c, NtUserSetClassLong, 32 ) \ - SYSCALL_ENTRY( 0x016d, NtUserSetClassLongPtr, 32 ) \ - SYSCALL_ENTRY( 0x016e, NtUserSetClassWord, 24 ) \ - SYSCALL_ENTRY( 0x016f, NtUserSetClipboardData, 24 ) \ - SYSCALL_ENTRY( 0x0170, NtUserSetClipboardViewer, 8 ) \ - SYSCALL_ENTRY( 0x0171, NtUserSetCursor, 8 ) \ - SYSCALL_ENTRY( 0x0172, NtUserSetCursorIconData, 32 ) \ - SYSCALL_ENTRY( 0x0173, NtUserSetCursorPos, 16 ) \ - SYSCALL_ENTRY( 0x0174, NtUserSetFocus, 8 ) \ - SYSCALL_ENTRY( 0x0175, NtUserSetInternalWindowPos, 32 ) \ - SYSCALL_ENTRY( 0x0176, NtUserSetKeyboardState, 8 ) \ - SYSCALL_ENTRY( 0x0177, NtUserSetLayeredWindowAttributes, 32 ) \ - SYSCALL_ENTRY( 0x0178, NtUserSetMenu, 16 ) \ - SYSCALL_ENTRY( 0x0179, NtUserSetMenuContextHelpId, 16 ) \ - SYSCALL_ENTRY( 0x017a, NtUserSetMenuDefaultItem, 24 ) \ - SYSCALL_ENTRY( 0x017b, NtUserSetObjectInformation, 32 ) \ - SYSCALL_ENTRY( 0x017c, NtUserSetParent, 16 ) \ - SYSCALL_ENTRY( 0x017d, NtUserSetProcessDpiAwarenessContext, 16 ) \ - SYSCALL_ENTRY( 0x017e, NtUserSetProcessWindowStation, 8 ) \ - SYSCALL_ENTRY( 0x017f, NtUserSetProp, 24 ) \ - SYSCALL_ENTRY( 0x0180, NtUserSetScrollInfo, 32 ) \ - SYSCALL_ENTRY( 0x0181, NtUserSetShellWindowEx, 16 ) \ - SYSCALL_ENTRY( 0x0182, NtUserSetSysColors, 24 ) \ - SYSCALL_ENTRY( 0x0183, NtUserSetSystemMenu, 16 ) \ - SYSCALL_ENTRY( 0x0184, NtUserSetSystemTimer, 24 ) \ - SYSCALL_ENTRY( 0x0185, NtUserSetThreadDesktop, 8 ) \ - SYSCALL_ENTRY( 0x0186, NtUserSetTimer, 40 ) \ - SYSCALL_ENTRY( 0x0187, NtUserSetWinEventHook, 64 ) \ - SYSCALL_ENTRY( 0x0188, NtUserSetWindowLong, 32 ) \ - SYSCALL_ENTRY( 0x0189, NtUserSetWindowLongPtr, 32 ) \ - SYSCALL_ENTRY( 0x018a, NtUserSetWindowPlacement, 16 ) \ - SYSCALL_ENTRY( 0x018b, NtUserSetWindowPos, 56 ) \ - SYSCALL_ENTRY( 0x018c, NtUserSetWindowRgn, 24 ) \ - SYSCALL_ENTRY( 0x018d, NtUserSetWindowWord, 24 ) \ - SYSCALL_ENTRY( 0x018e, NtUserSetWindowsHookEx, 48 ) \ - SYSCALL_ENTRY( 0x018f, NtUserShowCaret, 8 ) \ - SYSCALL_ENTRY( 0x0190, NtUserShowCursor, 8 ) \ - SYSCALL_ENTRY( 0x0191, NtUserShowScrollBar, 24 ) \ - SYSCALL_ENTRY( 0x0192, NtUserShowWindow, 16 ) \ - SYSCALL_ENTRY( 0x0193, NtUserShowWindowAsync, 16 ) \ - SYSCALL_ENTRY( 0x0194, NtUserSwitchDesktop, 8 ) \ - SYSCALL_ENTRY( 0x0195, NtUserSystemParametersInfo, 32 ) \ - SYSCALL_ENTRY( 0x0196, NtUserSystemParametersInfoForDpi, 40 ) \ - SYSCALL_ENTRY( 0x0197, NtUserThunkedMenuInfo, 16 ) \ - SYSCALL_ENTRY( 0x0198, NtUserThunkedMenuItemInfo, 48 ) \ - SYSCALL_ENTRY( 0x0199, NtUserToUnicodeEx, 56 ) \ - SYSCALL_ENTRY( 0x019a, NtUserTrackMouseEvent, 8 ) \ - SYSCALL_ENTRY( 0x019b, NtUserTrackPopupMenuEx, 48 ) \ - SYSCALL_ENTRY( 0x019c, NtUserTranslateAccelerator, 24 ) \ - SYSCALL_ENTRY( 0x019d, NtUserTranslateMessage, 16 ) \ - SYSCALL_ENTRY( 0x019e, NtUserUnhookWinEvent, 8 ) \ - SYSCALL_ENTRY( 0x019f, NtUserUnhookWindowsHookEx, 8 ) \ - SYSCALL_ENTRY( 0x01a0, NtUserUnregisterClass, 24 ) \ - SYSCALL_ENTRY( 0x01a1, NtUserUnregisterHotKey, 16 ) \ - SYSCALL_ENTRY( 0x01a2, NtUserUpdateInputContext, 24 ) \ - SYSCALL_ENTRY( 0x01a3, NtUserUpdateLayeredWindow, 80 ) \ - SYSCALL_ENTRY( 0x01a4, NtUserValidateRect, 16 ) \ - SYSCALL_ENTRY( 0x01a5, NtUserVkKeyScanEx, 16 ) \ - SYSCALL_ENTRY( 0x01a6, NtUserWaitForInputIdle, 24 ) \ - SYSCALL_ENTRY( 0x01a7, NtUserWaitMessage, 0 ) \ - SYSCALL_ENTRY( 0x01a8, NtUserWindowFromDC, 8 ) \ - SYSCALL_ENTRY( 0x01a9, NtUserWindowFromPoint, 16 ) \ - SYSCALL_ENTRY( 0x01aa, __wine_get_file_outline_text_metric, 32 ) \ - SYSCALL_ENTRY( 0x01ab, __wine_get_icm_profile, 32 ) + SYSCALL_ENTRY( 0x00cd, NtUserBuildPropList, 32 ) \ + SYSCALL_ENTRY( 0x00ce, NtUserCallHwnd, 16 ) \ + SYSCALL_ENTRY( 0x00cf, NtUserCallHwndParam, 24 ) \ + SYSCALL_ENTRY( 0x00d0, NtUserCallMsgFilter, 16 ) \ + SYSCALL_ENTRY( 0x00d1, NtUserCallNextHookEx, 32 ) \ + SYSCALL_ENTRY( 0x00d2, NtUserCallNoParam, 8 ) \ + SYSCALL_ENTRY( 0x00d3, NtUserCallOneParam, 16 ) \ + SYSCALL_ENTRY( 0x00d4, NtUserCallTwoParam, 24 ) \ + SYSCALL_ENTRY( 0x00d5, NtUserChangeClipboardChain, 16 ) \ + SYSCALL_ENTRY( 0x00d6, NtUserChangeDisplaySettings, 40 ) \ + SYSCALL_ENTRY( 0x00d7, NtUserCheckMenuItem, 24 ) \ + SYSCALL_ENTRY( 0x00d8, NtUserChildWindowFromPointEx, 32 ) \ + SYSCALL_ENTRY( 0x00d9, NtUserClipCursor, 8 ) \ + SYSCALL_ENTRY( 0x00da, NtUserCloseClipboard, 0 ) \ + SYSCALL_ENTRY( 0x00db, NtUserCloseDesktop, 8 ) \ + SYSCALL_ENTRY( 0x00dc, NtUserCloseWindowStation, 8 ) \ + SYSCALL_ENTRY( 0x00dd, NtUserCopyAcceleratorTable, 24 ) \ + SYSCALL_ENTRY( 0x00de, NtUserCountClipboardFormats, 0 ) \ + SYSCALL_ENTRY( 0x00df, NtUserCreateAcceleratorTable, 16 ) \ + SYSCALL_ENTRY( 0x00e0, NtUserCreateCaret, 32 ) \ + SYSCALL_ENTRY( 0x00e1, NtUserCreateDesktopEx, 48 ) \ + SYSCALL_ENTRY( 0x00e2, NtUserCreateInputContext, 8 ) \ + SYSCALL_ENTRY( 0x00e3, NtUserCreateWindowEx, 136 ) \ + SYSCALL_ENTRY( 0x00e4, NtUserCreateWindowStation, 56 ) \ + SYSCALL_ENTRY( 0x00e5, NtUserDeferWindowPosAndBand, 80 ) \ + SYSCALL_ENTRY( 0x00e6, NtUserDeleteMenu, 24 ) \ + SYSCALL_ENTRY( 0x00e7, NtUserDestroyAcceleratorTable, 8 ) \ + SYSCALL_ENTRY( 0x00e8, NtUserDestroyCursor, 16 ) \ + SYSCALL_ENTRY( 0x00e9, NtUserDestroyInputContext, 8 ) \ + SYSCALL_ENTRY( 0x00ea, NtUserDestroyMenu, 8 ) \ + SYSCALL_ENTRY( 0x00eb, NtUserDestroyWindow, 8 ) \ + SYSCALL_ENTRY( 0x00ec, NtUserDisableThreadIme, 8 ) \ + SYSCALL_ENTRY( 0x00ed, NtUserDispatchMessage, 8 ) \ + SYSCALL_ENTRY( 0x00ee, NtUserDisplayConfigGetDeviceInfo, 8 ) \ + SYSCALL_ENTRY( 0x00ef, NtUserDragDetect, 24 ) \ + SYSCALL_ENTRY( 0x00f0, NtUserDragObject, 40 ) \ + SYSCALL_ENTRY( 0x00f1, NtUserDrawCaptionTemp, 56 ) \ + SYSCALL_ENTRY( 0x00f2, NtUserDrawIconEx, 72 ) \ + SYSCALL_ENTRY( 0x00f3, NtUserDrawMenuBarTemp, 40 ) \ + SYSCALL_ENTRY( 0x00f4, NtUserEmptyClipboard, 0 ) \ + SYSCALL_ENTRY( 0x00f5, NtUserEnableMenuItem, 24 ) \ + SYSCALL_ENTRY( 0x00f6, NtUserEnableMouseInPointer, 8 ) \ + SYSCALL_ENTRY( 0x00f7, NtUserEnableMouseInPointerForThread, 0 ) \ + SYSCALL_ENTRY( 0x00f8, NtUserEnableScrollBar, 24 ) \ + SYSCALL_ENTRY( 0x00f9, NtUserEndDeferWindowPosEx, 16 ) \ + SYSCALL_ENTRY( 0x00fa, NtUserEndMenu, 0 ) \ + SYSCALL_ENTRY( 0x00fb, NtUserEndPaint, 16 ) \ + SYSCALL_ENTRY( 0x00fc, NtUserEnumDisplayDevices, 32 ) \ + SYSCALL_ENTRY( 0x00fd, NtUserEnumDisplayMonitors, 32 ) \ + SYSCALL_ENTRY( 0x00fe, NtUserEnumDisplaySettings, 32 ) \ + SYSCALL_ENTRY( 0x00ff, NtUserExcludeUpdateRgn, 16 ) \ + SYSCALL_ENTRY( 0x0100, NtUserFindExistingCursorIcon, 24 ) \ + SYSCALL_ENTRY( 0x0101, NtUserFindWindowEx, 40 ) \ + SYSCALL_ENTRY( 0x0102, NtUserFlashWindowEx, 8 ) \ + SYSCALL_ENTRY( 0x0103, NtUserGetAncestor, 16 ) \ + SYSCALL_ENTRY( 0x0104, NtUserGetAsyncKeyState, 8 ) \ + SYSCALL_ENTRY( 0x0105, NtUserGetAtomName, 16 ) \ + SYSCALL_ENTRY( 0x0106, NtUserGetCaretBlinkTime, 0 ) \ + SYSCALL_ENTRY( 0x0107, NtUserGetCaretPos, 8 ) \ + SYSCALL_ENTRY( 0x0108, NtUserGetClassInfoEx, 40 ) \ + SYSCALL_ENTRY( 0x0109, NtUserGetClassName, 24 ) \ + SYSCALL_ENTRY( 0x010a, NtUserGetClipboardData, 16 ) \ + SYSCALL_ENTRY( 0x010b, NtUserGetClipboardFormatName, 24 ) \ + SYSCALL_ENTRY( 0x010c, NtUserGetClipboardOwner, 0 ) \ + SYSCALL_ENTRY( 0x010d, NtUserGetClipboardSequenceNumber, 0 ) \ + SYSCALL_ENTRY( 0x010e, NtUserGetClipboardViewer, 0 ) \ + SYSCALL_ENTRY( 0x010f, NtUserGetCursor, 0 ) \ + SYSCALL_ENTRY( 0x0110, NtUserGetCursorFrameInfo, 32 ) \ + SYSCALL_ENTRY( 0x0111, NtUserGetCursorInfo, 8 ) \ + SYSCALL_ENTRY( 0x0112, NtUserGetDC, 8 ) \ + SYSCALL_ENTRY( 0x0113, NtUserGetDCEx, 24 ) \ + SYSCALL_ENTRY( 0x0114, NtUserGetDisplayConfigBufferSizes, 24 ) \ + SYSCALL_ENTRY( 0x0115, NtUserGetDoubleClickTime, 0 ) \ + SYSCALL_ENTRY( 0x0116, NtUserGetDpiForMonitor, 32 ) \ + SYSCALL_ENTRY( 0x0117, NtUserGetForegroundWindow, 0 ) \ + SYSCALL_ENTRY( 0x0118, NtUserGetGUIThreadInfo, 16 ) \ + SYSCALL_ENTRY( 0x0119, NtUserGetIconInfo, 48 ) \ + SYSCALL_ENTRY( 0x011a, NtUserGetIconSize, 32 ) \ + SYSCALL_ENTRY( 0x011b, NtUserGetInternalWindowPos, 24 ) \ + SYSCALL_ENTRY( 0x011c, NtUserGetKeyNameText, 24 ) \ + SYSCALL_ENTRY( 0x011d, NtUserGetKeyState, 8 ) \ + SYSCALL_ENTRY( 0x011e, NtUserGetKeyboardLayout, 8 ) \ + SYSCALL_ENTRY( 0x011f, NtUserGetKeyboardLayoutList, 16 ) \ + SYSCALL_ENTRY( 0x0120, NtUserGetKeyboardLayoutName, 8 ) \ + SYSCALL_ENTRY( 0x0121, NtUserGetKeyboardState, 8 ) \ + SYSCALL_ENTRY( 0x0122, NtUserGetLayeredWindowAttributes, 32 ) \ + SYSCALL_ENTRY( 0x0123, NtUserGetMenuBarInfo, 32 ) \ + SYSCALL_ENTRY( 0x0124, NtUserGetMenuItemRect, 32 ) \ + SYSCALL_ENTRY( 0x0125, NtUserGetMessage, 32 ) \ + SYSCALL_ENTRY( 0x0126, NtUserGetMouseMovePointsEx, 40 ) \ + SYSCALL_ENTRY( 0x0127, NtUserGetObjectInformation, 40 ) \ + SYSCALL_ENTRY( 0x0128, NtUserGetOpenClipboardWindow, 0 ) \ + SYSCALL_ENTRY( 0x0129, NtUserGetPointerInfoList, 64 ) \ + SYSCALL_ENTRY( 0x012a, NtUserGetPriorityClipboardFormat, 16 ) \ + SYSCALL_ENTRY( 0x012b, NtUserGetProcessDpiAwarenessContext, 8 ) \ + SYSCALL_ENTRY( 0x012c, NtUserGetProcessWindowStation, 0 ) \ + SYSCALL_ENTRY( 0x012d, NtUserGetProp, 16 ) \ + SYSCALL_ENTRY( 0x012e, NtUserGetQueueStatus, 8 ) \ + SYSCALL_ENTRY( 0x012f, NtUserGetRawInputBuffer, 24 ) \ + SYSCALL_ENTRY( 0x0130, NtUserGetRawInputData, 40 ) \ + SYSCALL_ENTRY( 0x0131, NtUserGetRawInputDeviceInfo, 32 ) \ + SYSCALL_ENTRY( 0x0132, NtUserGetRawInputDeviceList, 24 ) \ + SYSCALL_ENTRY( 0x0133, NtUserGetRegisteredRawInputDevices, 24 ) \ + SYSCALL_ENTRY( 0x0134, NtUserGetScrollBarInfo, 24 ) \ + SYSCALL_ENTRY( 0x0135, NtUserGetSystemDpiForProcess, 8 ) \ + SYSCALL_ENTRY( 0x0136, NtUserGetSystemMenu, 16 ) \ + SYSCALL_ENTRY( 0x0137, NtUserGetThreadDesktop, 8 ) \ + SYSCALL_ENTRY( 0x0138, NtUserGetTitleBarInfo, 16 ) \ + SYSCALL_ENTRY( 0x0139, NtUserGetUpdateRect, 24 ) \ + SYSCALL_ENTRY( 0x013a, NtUserGetUpdateRgn, 24 ) \ + SYSCALL_ENTRY( 0x013b, NtUserGetUpdatedClipboardFormats, 24 ) \ + SYSCALL_ENTRY( 0x013c, NtUserGetWindowDC, 8 ) \ + SYSCALL_ENTRY( 0x013d, NtUserGetWindowPlacement, 16 ) \ + SYSCALL_ENTRY( 0x013e, NtUserGetWindowRgnEx, 24 ) \ + SYSCALL_ENTRY( 0x013f, NtUserHideCaret, 8 ) \ + SYSCALL_ENTRY( 0x0140, NtUserHiliteMenuItem, 32 ) \ + SYSCALL_ENTRY( 0x0141, NtUserInitializeClientPfnArrays, 32 ) \ + SYSCALL_ENTRY( 0x0142, NtUserInternalGetWindowIcon, 16 ) \ + SYSCALL_ENTRY( 0x0143, NtUserInternalGetWindowText, 24 ) \ + SYSCALL_ENTRY( 0x0144, NtUserInvalidateRect, 24 ) \ + SYSCALL_ENTRY( 0x0145, NtUserInvalidateRgn, 24 ) \ + SYSCALL_ENTRY( 0x0146, NtUserIsClipboardFormatAvailable, 8 ) \ + SYSCALL_ENTRY( 0x0147, NtUserIsMouseInPointerEnabled, 0 ) \ + SYSCALL_ENTRY( 0x0148, NtUserKillTimer, 16 ) \ + SYSCALL_ENTRY( 0x0149, NtUserLockWindowUpdate, 8 ) \ + SYSCALL_ENTRY( 0x014a, NtUserLogicalToPerMonitorDPIPhysicalPoint, 16 ) \ + SYSCALL_ENTRY( 0x014b, NtUserMapVirtualKeyEx, 24 ) \ + SYSCALL_ENTRY( 0x014c, NtUserMenuItemFromPoint, 32 ) \ + SYSCALL_ENTRY( 0x014d, NtUserMessageCall, 56 ) \ + SYSCALL_ENTRY( 0x014e, NtUserMoveWindow, 48 ) \ + SYSCALL_ENTRY( 0x014f, NtUserMsgWaitForMultipleObjectsEx, 40 ) \ + SYSCALL_ENTRY( 0x0150, NtUserNotifyIMEStatus, 16 ) \ + SYSCALL_ENTRY( 0x0151, NtUserNotifyWinEvent, 32 ) \ + SYSCALL_ENTRY( 0x0152, NtUserOpenClipboard, 16 ) \ + SYSCALL_ENTRY( 0x0153, NtUserOpenDesktop, 24 ) \ + SYSCALL_ENTRY( 0x0154, NtUserOpenInputDesktop, 24 ) \ + SYSCALL_ENTRY( 0x0155, NtUserOpenWindowStation, 16 ) \ + SYSCALL_ENTRY( 0x0156, NtUserPeekMessage, 40 ) \ + SYSCALL_ENTRY( 0x0157, NtUserPerMonitorDPIPhysicalToLogicalPoint, 16 ) \ + SYSCALL_ENTRY( 0x0158, NtUserPostMessage, 32 ) \ + SYSCALL_ENTRY( 0x0159, NtUserPostThreadMessage, 32 ) \ + SYSCALL_ENTRY( 0x015a, NtUserPrintWindow, 24 ) \ + SYSCALL_ENTRY( 0x015b, NtUserQueryDisplayConfig, 48 ) \ + SYSCALL_ENTRY( 0x015c, NtUserQueryInputContext, 16 ) \ + SYSCALL_ENTRY( 0x015d, NtUserRealChildWindowFromPoint, 24 ) \ + SYSCALL_ENTRY( 0x015e, NtUserRedrawWindow, 32 ) \ + SYSCALL_ENTRY( 0x015f, NtUserRegisterClassExWOW, 56 ) \ + SYSCALL_ENTRY( 0x0160, NtUserRegisterHotKey, 32 ) \ + SYSCALL_ENTRY( 0x0161, NtUserRegisterRawInputDevices, 24 ) \ + SYSCALL_ENTRY( 0x0162, NtUserRegisterTouchPadCapable, 8 ) \ + SYSCALL_ENTRY( 0x0163, NtUserReleaseDC, 16 ) \ + SYSCALL_ENTRY( 0x0164, NtUserRemoveClipboardFormatListener, 8 ) \ + SYSCALL_ENTRY( 0x0165, NtUserRemoveMenu, 24 ) \ + SYSCALL_ENTRY( 0x0166, NtUserRemoveProp, 16 ) \ + SYSCALL_ENTRY( 0x0167, NtUserScrollDC, 56 ) \ + SYSCALL_ENTRY( 0x0168, NtUserScrollWindowEx, 64 ) \ + SYSCALL_ENTRY( 0x0169, NtUserSelectPalette, 24 ) \ + SYSCALL_ENTRY( 0x016a, NtUserSendInput, 24 ) \ + SYSCALL_ENTRY( 0x016b, NtUserSetActiveWindow, 8 ) \ + SYSCALL_ENTRY( 0x016c, NtUserSetCapture, 8 ) \ + SYSCALL_ENTRY( 0x016d, NtUserSetClassLong, 32 ) \ + SYSCALL_ENTRY( 0x016e, NtUserSetClassLongPtr, 32 ) \ + SYSCALL_ENTRY( 0x016f, NtUserSetClassWord, 24 ) \ + SYSCALL_ENTRY( 0x0170, NtUserSetClipboardData, 24 ) \ + SYSCALL_ENTRY( 0x0171, NtUserSetClipboardViewer, 8 ) \ + SYSCALL_ENTRY( 0x0172, NtUserSetCursor, 8 ) \ + SYSCALL_ENTRY( 0x0173, NtUserSetCursorIconData, 32 ) \ + SYSCALL_ENTRY( 0x0174, NtUserSetCursorPos, 16 ) \ + SYSCALL_ENTRY( 0x0175, NtUserSetFocus, 8 ) \ + SYSCALL_ENTRY( 0x0176, NtUserSetInternalWindowPos, 32 ) \ + SYSCALL_ENTRY( 0x0177, NtUserSetKeyboardState, 8 ) \ + SYSCALL_ENTRY( 0x0178, NtUserSetLayeredWindowAttributes, 32 ) \ + SYSCALL_ENTRY( 0x0179, NtUserSetMenu, 16 ) \ + SYSCALL_ENTRY( 0x017a, NtUserSetMenuContextHelpId, 16 ) \ + SYSCALL_ENTRY( 0x017b, NtUserSetMenuDefaultItem, 24 ) \ + SYSCALL_ENTRY( 0x017c, NtUserSetObjectInformation, 32 ) \ + SYSCALL_ENTRY( 0x017d, NtUserSetParent, 16 ) \ + SYSCALL_ENTRY( 0x017e, NtUserSetProcessDpiAwarenessContext, 16 ) \ + SYSCALL_ENTRY( 0x017f, NtUserSetProcessWindowStation, 8 ) \ + SYSCALL_ENTRY( 0x0180, NtUserSetProp, 24 ) \ + SYSCALL_ENTRY( 0x0181, NtUserSetScrollInfo, 32 ) \ + SYSCALL_ENTRY( 0x0182, NtUserSetShellWindowEx, 16 ) \ + SYSCALL_ENTRY( 0x0183, NtUserSetSysColors, 24 ) \ + SYSCALL_ENTRY( 0x0184, NtUserSetSystemMenu, 16 ) \ + SYSCALL_ENTRY( 0x0185, NtUserSetSystemTimer, 24 ) \ + SYSCALL_ENTRY( 0x0186, NtUserSetThreadDesktop, 8 ) \ + SYSCALL_ENTRY( 0x0187, NtUserSetTimer, 40 ) \ + SYSCALL_ENTRY( 0x0188, NtUserSetWinEventHook, 64 ) \ + SYSCALL_ENTRY( 0x0189, NtUserSetWindowLong, 32 ) \ + SYSCALL_ENTRY( 0x018a, NtUserSetWindowLongPtr, 32 ) \ + SYSCALL_ENTRY( 0x018b, NtUserSetWindowPlacement, 16 ) \ + SYSCALL_ENTRY( 0x018c, NtUserSetWindowPos, 56 ) \ + SYSCALL_ENTRY( 0x018d, NtUserSetWindowRgn, 24 ) \ + SYSCALL_ENTRY( 0x018e, NtUserSetWindowWord, 24 ) \ + SYSCALL_ENTRY( 0x018f, NtUserSetWindowsHookEx, 48 ) \ + SYSCALL_ENTRY( 0x0190, NtUserShowCaret, 8 ) \ + SYSCALL_ENTRY( 0x0191, NtUserShowCursor, 8 ) \ + SYSCALL_ENTRY( 0x0192, NtUserShowScrollBar, 24 ) \ + SYSCALL_ENTRY( 0x0193, NtUserShowWindow, 16 ) \ + SYSCALL_ENTRY( 0x0194, NtUserShowWindowAsync, 16 ) \ + SYSCALL_ENTRY( 0x0195, NtUserSwitchDesktop, 8 ) \ + SYSCALL_ENTRY( 0x0196, NtUserSystemParametersInfo, 32 ) \ + SYSCALL_ENTRY( 0x0197, NtUserSystemParametersInfoForDpi, 40 ) \ + SYSCALL_ENTRY( 0x0198, NtUserThunkedMenuInfo, 16 ) \ + SYSCALL_ENTRY( 0x0199, NtUserThunkedMenuItemInfo, 48 ) \ + SYSCALL_ENTRY( 0x019a, NtUserToUnicodeEx, 56 ) \ + SYSCALL_ENTRY( 0x019b, NtUserTrackMouseEvent, 8 ) \ + SYSCALL_ENTRY( 0x019c, NtUserTrackPopupMenuEx, 48 ) \ + SYSCALL_ENTRY( 0x019d, NtUserTranslateAccelerator, 24 ) \ + SYSCALL_ENTRY( 0x019e, NtUserTranslateMessage, 16 ) \ + SYSCALL_ENTRY( 0x019f, NtUserUnhookWinEvent, 8 ) \ + SYSCALL_ENTRY( 0x01a0, NtUserUnhookWindowsHookEx, 8 ) \ + SYSCALL_ENTRY( 0x01a1, NtUserUnregisterClass, 24 ) \ + SYSCALL_ENTRY( 0x01a2, NtUserUnregisterHotKey, 16 ) \ + SYSCALL_ENTRY( 0x01a3, NtUserUpdateInputContext, 24 ) \ + SYSCALL_ENTRY( 0x01a4, NtUserUpdateLayeredWindow, 80 ) \ + SYSCALL_ENTRY( 0x01a5, NtUserValidateRect, 16 ) \ + SYSCALL_ENTRY( 0x01a6, NtUserVkKeyScanEx, 16 ) \ + SYSCALL_ENTRY( 0x01a7, NtUserWaitForInputIdle, 24 ) \ + SYSCALL_ENTRY( 0x01a8, NtUserWaitMessage, 0 ) \ + SYSCALL_ENTRY( 0x01a9, NtUserWindowFromDC, 8 ) \ + SYSCALL_ENTRY( 0x01aa, NtUserWindowFromPoint, 16 ) \ + SYSCALL_ENTRY( 0x01ab, __wine_get_file_outline_text_metric, 32 ) \ + SYSCALL_ENTRY( 0x01ac, __wine_get_icm_profile, 32 ) diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 0537a3e7625..d7a169de6a3 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -814,7 +814,7 @@ @ stdcall -syscall NtUserBuildHimcList(long long ptr ptr) @ stdcall -syscall NtUserBuildHwndList(long long long long long long ptr ptr) @ stub NtUserBuildNameList -@ stub NtUserBuildPropList +@ stdcall -syscall NtUserBuildPropList(long long ptr ptr) @ stub NtUserCalcMenuBar @ stub NtUserCalculatePopupWindowPosition @ stdcall -syscall NtUserCallHwnd(long long) diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 5c0e0be03cc..99d5856bfae 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -1561,6 +1561,43 @@ HANDLE WINAPI NtUserRemoveProp( HWND hwnd, const WCHAR *str ) return (HANDLE)ret; } + +/*********************************************************************** + * NtUserBuildPropList (win32u.@) + */ +NTSTATUS WINAPI NtUserBuildPropList( HWND hwnd, ULONG count, struct ntuser_property_list *buffer, ULONG *ret_count ) +{ + property_data_t *data; + ULONG i; + NTSTATUS status; + + if (!buffer || !ret_count) return STATUS_INVALID_PARAMETER; + + if (!(data = malloc( count * sizeof(*data) ))) return STATUS_NO_MEMORY; + + SERVER_START_REQ( get_window_properties ) + { + req->window = wine_server_user_handle( hwnd ); + wine_server_set_reply( req, data, count * sizeof(*data) ); + if (!(status = wine_server_call( req ))) + { + for (i = 0; i < wine_server_reply_size(reply) / sizeof(*data); i++) + { + buffer[i].data = data[i].data; + buffer[i].atom = data[i].atom; + buffer[i].string = data[i].string; + } + *ret_count = reply->total; + if (reply->total > count) status = STATUS_BUFFER_TOO_SMALL; + } + } + SERVER_END_REQ; + + free( data ); + return status; +} + + static void mirror_rect( const RECT *window_rect, RECT *rect ) { int width = window_rect->right - window_rect->left; diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index b1a11075ab8..1f191f98117 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -1635,6 +1635,16 @@ NTSTATUS WINAPI wow64_NtUserBuildHwndList( UINT *args ) return status; } +NTSTATUS WINAPI wow64_NtUserBuildPropList( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + ULONG count = get_ulong( &args ); + struct ntuser_property_list *props = get_ptr( &args ); + ULONG *ret_count = get_ptr( &args ); + + return NtUserBuildPropList( hwnd, count, props, ret_count ); +} + NTSTATUS WINAPI wow64_NtUserCallHwnd( UINT *args ) { HWND hwnd = get_handle( &args ); diff --git a/include/ntuser.h b/include/ntuser.h index 3d981927395..32ccc328a0f 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -661,6 +661,13 @@ enum wine_drag_drop_call WINE_DRAG_DROP_POST, }; +struct ntuser_property_list +{ + UINT64 data; + ATOM atom; + BOOLEAN string; /* Wine extension */ +}; + #define WM_SYSTIMER 0x0118 @@ -672,6 +679,7 @@ W32KAPI HDC WINAPI NtUserBeginPaint( HWND hwnd, PAINTSTRUCT *ps ); W32KAPI NTSTATUS WINAPI NtUserBuildHimcList( UINT thread_id, UINT count, HIMC *buffer, UINT *size ); W32KAPI NTSTATUS WINAPI NtUserBuildHwndList( HDESK desktop, ULONG unk2, ULONG unk3, ULONG unk4, ULONG thread_id, ULONG count, HWND *buffer, ULONG *size ); +W32KAPI NTSTATUS WINAPI NtUserBuildPropList( HWND hwnd, ULONG count, struct ntuser_property_list *buffer, ULONG *ret_count ); W32KAPI ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code ); W32KAPI ULONG_PTR WINAPI NtUserCallHwndParam( HWND hwnd, DWORD_PTR param, DWORD code ); W32KAPI LRESULT WINAPI NtUserCallNextHookEx( HHOOK hhook, INT code, WPARAM wparam, LPARAM lparam );