Commit e9e009b7 authored by Connor McAdams's avatar Connor McAdams Committed by Alexandre Julliard

uiautomationcore: Implement IUIAutomationElement::get_CachedIsKeyboardFocusable.

parent 118b74f8
......@@ -13616,22 +13616,22 @@ static void test_Element_cache_methods(IUIAutomation *uia_iface)
/* Cached UIA_IsKeyboardFocusablePropertyId helper. */
hr = IUIAutomationElement_get_CachedIsKeyboardFocusable(element, NULL);
todo_wine ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
tmp_bool = 0xdeadbeef;
hr = IUIAutomationElement_get_CachedIsKeyboardFocusable(element, &tmp_bool);
todo_wine ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(tmp_bool == 0xdeadbeef, "Unexpected tmp_bool %d\n", tmp_bool);
tmp_bool = 0xdeadbeef;
hr = IUIAutomationElement_get_CachedIsKeyboardFocusable(element2, &tmp_bool);
todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(!tmp_bool, "tmp_bool != FALSE\n");
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!tmp_bool, "tmp_bool != FALSE\n");
tmp_bool = FALSE;
hr = IUIAutomationElement_get_CachedIsKeyboardFocusable(element3, &tmp_bool);
todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(!!tmp_bool, "tmp_bool == FALSE\n");
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!!tmp_bool, "tmp_bool == FALSE\n");
/* Cached UIA_NamePropertyId helper. */
hr = IUIAutomationElement_get_CachedName(element, NULL);
......
......@@ -2461,8 +2461,21 @@ static HRESULT WINAPI uia_element_get_CachedHasKeyboardFocus(IUIAutomationElemen
static HRESULT WINAPI uia_element_get_CachedIsKeyboardFocusable(IUIAutomationElement9 *iface, BOOL *ret_val)
{
FIXME("%p: stub\n", iface);
return E_NOTIMPL;
struct uia_element *element = impl_from_IUIAutomationElement9(iface);
const int prop_id = UIA_IsKeyboardFocusablePropertyId;
struct uia_cache_property *cache_prop = NULL;
TRACE("%p, %p\n", iface, ret_val);
if (!ret_val)
return E_POINTER;
if (!(cache_prop = bsearch(&prop_id, element->cached_props, element->cached_props_count, sizeof(*cache_prop),
uia_cached_property_id_compare)))
return E_INVALIDARG;
*ret_val = ((V_VT(&cache_prop->prop_val) == VT_BOOL) && (V_BOOL(&cache_prop->prop_val) == VARIANT_TRUE));
return S_OK;
}
static HRESULT WINAPI uia_element_get_CachedIsEnabled(IUIAutomationElement9 *iface, BOOL *ret_val)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment