Esme Povirk (@madewokherd) commented about dlls/uiautomationcore/tests/uiautomation.c:
+ SET_EXPECT(Accessible_get_accState); + SET_EXPECT(Accessible_accLocation); + hr = IRawElementProviderSimple_GetPropertyValue(elprov, UIA_IsOffscreenPropertyId, &v); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(V_VT(&v) == VT_BOOL, "V_VT(&v) = %d\n", V_VT(&v)); + ok(check_variant_bool(&v, FALSE), "Unexpected BOOL %#x\n", V_BOOL(&v)); + CHECK_CALLED(Accessible_get_accState); + CHECK_CALLED(Accessible_accLocation); + + /* Window is visible, Accessible is within its bounds. */ + ShowWindow(Accessible.ow_hwnd, SW_SHOW); + ok(GetClientRect(Accessible.ow_hwnd, &rect[0]), "GetClientRect returned FALSE\n"); + MapWindowPoints(Accessible.ow_hwnd, NULL, (POINT *)&rect[0], 2); + + set_accessible_props(&Accessible, 0, ~STATE_SYSTEM_OFFSCREEN, 0, L"Accessible", rect[0].left, rect[0].top, + (rect[0].right - rect[0].left), (rect[0].bottom - rect[0].top)); The documentation for GetClientRect says that it returns client coordinates (and that the upper-left corner is always 0,0), but the documentation for accLocation says that it returns screen coordinates.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2523#note_28516