From: Connor McAdams cmcadams@codeweavers.com
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/uiautomationcore/tests/uiautomation.c | 8 ++++++++ dlls/uiautomationcore/uia_com_client.c | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/uiautomationcore/tests/uiautomation.c b/dlls/uiautomationcore/tests/uiautomation.c index e6be0ce75a3..1c3f1d6c15c 100644 --- a/dlls/uiautomationcore/tests/uiautomation.c +++ b/dlls/uiautomationcore/tests/uiautomation.c @@ -9851,7 +9851,15 @@ static void test_Element_GetPropertyValue(IUIAutomation *uia_iface) hr = UiaGetReservedNotSupportedValue(&unk_ns); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IUIAutomationElement_GetCurrentPropertyValueEx(element, UIA_ControlTypePropertyId, TRUE, NULL); + ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr); + VariantInit(&v); + V_VT(&v) = VT_BOOL; + hr = IUIAutomationElement_GetCurrentPropertyValueEx(element, 1, TRUE, &v); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + ok(V_VT(&v) == VT_EMPTY, "Unexpected vt %d\n", V_VT(&v)); + for (i = 0; i < ARRAY_SIZE(element_properties); i++) { elem_prop = &element_properties[i]; diff --git a/dlls/uiautomationcore/uia_com_client.c b/dlls/uiautomationcore/uia_com_client.c index a6320f15b0d..e5fdc049342 100644 --- a/dlls/uiautomationcore/uia_com_client.c +++ b/dlls/uiautomationcore/uia_com_client.c @@ -714,10 +714,16 @@ static HRESULT WINAPI uia_element_GetCurrentPropertyValueEx(IUIAutomationElement
TRACE("%p, %d, %d, %p\n", iface, prop_id, ignore_default, ret_val);
+ if (!ret_val) + return E_POINTER; + + VariantInit(ret_val); + if (!prop_info) + return E_INVALIDARG; + if (!ignore_default) FIXME("Default values currently unimplemented\n");
- VariantInit(ret_val); if (prop_info->type == UIAutomationType_ElementArray) { FIXME("ElementArray property types currently unsupported for IUIAutomationElement\n");