From: Connor McAdams cmcadams@codeweavers.com
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/uiautomationcore/tests/uiautomation.c | 10 ++---- dlls/uiautomationcore/uia_client.c | 9 +++++ dlls/uiautomationcore/uia_ids.c | 42 ++++++++++++++-------- 3 files changed, 39 insertions(+), 22 deletions(-)
diff --git a/dlls/uiautomationcore/tests/uiautomation.c b/dlls/uiautomationcore/tests/uiautomation.c index 669e6d58b87..4fd28f2ba8d 100644 --- a/dlls/uiautomationcore/tests/uiautomation.c +++ b/dlls/uiautomationcore/tests/uiautomation.c @@ -4191,10 +4191,7 @@ static void check_uia_prop_val(PROPERTYID prop_id, enum UIAutomationType type, V switch (type) { case UIAutomationType_String: - todo_wine ok(V_VT(v) == VT_BSTR, "Unexpected VT %d\n", V_VT(v)); - if (V_VT(v) != VT_BSTR) - break; - + ok(V_VT(v) == VT_BSTR, "Unexpected VT %d\n", V_VT(v)); ok(!lstrcmpW(V_BSTR(v), uia_bstr_prop_str), "Unexpected BSTR %s\n", wine_dbgstr_w(V_BSTR(v))); ok_method_sequence(get_prop_seq, NULL); break; @@ -4417,10 +4414,7 @@ static void test_UiaGetPropertyValue(void) } winetest_push_context("prop_id %d", prop_id); hr = UiaGetPropertyValue(node, prop_id, &v); - if (hr == E_NOTIMPL) - todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - else - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); check_uia_prop_val(prop_id, elem_prop->type, &v);
/* diff --git a/dlls/uiautomationcore/uia_client.c b/dlls/uiautomationcore/uia_client.c index c800645da0c..405beb02b15 100644 --- a/dlls/uiautomationcore/uia_client.c +++ b/dlls/uiautomationcore/uia_client.c @@ -396,6 +396,15 @@ static HRESULT WINAPI uia_provider_get_prop_val(IWineUiaProvider *iface, *ret_val = v; break;
+ case UIAutomationType_String: + if (V_VT(&v) != VT_BSTR) + { + WARN("Invalid vt %d for UIAutomationType_String\n", V_VT(&v)); + goto exit; + } + *ret_val = v; + break; + case UIAutomationType_Element: { IRawElementProviderSimple *elprov; diff --git a/dlls/uiautomationcore/uia_ids.c b/dlls/uiautomationcore/uia_ids.c index 90de0e21ce9..7cfde7f4c29 100644 --- a/dlls/uiautomationcore/uia_ids.c +++ b/dlls/uiautomationcore/uia_ids.c @@ -32,21 +32,26 @@ static int __cdecl uia_property_guid_compare(const void *a, const void *b)
/* Sorted by GUID. */ static const struct uia_prop_info default_uia_properties[] = { - { &AutomationId_Property_GUID, UIA_AutomationIdPropertyId, }, - { &FrameworkId_Property_GUID, UIA_FrameworkIdPropertyId, }, + { &AutomationId_Property_GUID, UIA_AutomationIdPropertyId, + UIAutomationType_String, }, + { &FrameworkId_Property_GUID, UIA_FrameworkIdPropertyId, + UIAutomationType_String, }, { &IsTransformPatternAvailable_Property_GUID, UIA_IsTransformPatternAvailablePropertyId, }, { &IsScrollItemPatternAvailable_Property_GUID, UIA_IsScrollItemPatternAvailablePropertyId, }, { &IsExpandCollapsePatternAvailable_Property_GUID, UIA_IsExpandCollapsePatternAvailablePropertyId, }, { &CenterPoint_Property_GUID, UIA_CenterPointPropertyId, }, { &IsTableItemPatternAvailable_Property_GUID, UIA_IsTableItemPatternAvailablePropertyId, }, { &Scroll_HorizontalScrollPercent_Property_GUID, UIA_ScrollHorizontalScrollPercentPropertyId, }, - { &AccessKey_Property_GUID, UIA_AccessKeyPropertyId, }, + { &AccessKey_Property_GUID, UIA_AccessKeyPropertyId, + UIAutomationType_String, }, { &RangeValue_Maximum_Property_GUID, UIA_RangeValueMaximumPropertyId, }, - { &ClassName_Property_GUID, UIA_ClassNamePropertyId, }, + { &ClassName_Property_GUID, UIA_ClassNamePropertyId, + UIAutomationType_String, }, { &Transform2_ZoomMinimum_Property_GUID, UIA_Transform2ZoomMinimumPropertyId, }, { &LegacyIAccessible_Description_Property_GUID, UIA_LegacyIAccessibleDescriptionPropertyId, }, { &Transform2_ZoomLevel_Property_GUID, UIA_Transform2ZoomLevelPropertyId, }, - { &Name_Property_GUID, UIA_NamePropertyId, }, + { &Name_Property_GUID, UIA_NamePropertyId, + UIAutomationType_String, }, { &GridItem_RowSpan_Property_GUID, UIA_GridItemRowSpanPropertyId, }, { &Size_Property_GUID, UIA_SizePropertyId, UIAutomationType_DoubleArray, }, @@ -54,7 +59,8 @@ static const struct uia_prop_info default_uia_properties[] = { { &Styles_FillPatternStyle_Property_GUID, UIA_StylesFillPatternStylePropertyId, }, { &FlowsTo_Property_GUID, UIA_FlowsToPropertyId, UIAutomationType_ElementArray, }, - { &ItemStatus_Property_GUID, UIA_ItemStatusPropertyId, }, + { &ItemStatus_Property_GUID, UIA_ItemStatusPropertyId, + UIAutomationType_String, }, { &Scroll_VerticalViewSize_Property_GUID, UIA_ScrollVerticalViewSizePropertyId, }, { &Selection_IsSelectionRequired_Property_GUID, UIA_SelectionIsSelectionRequiredPropertyId, }, { &IsGridItemPatternAvailable_Property_GUID, UIA_IsGridItemPatternAvailablePropertyId, }, @@ -100,9 +106,11 @@ static const struct uia_prop_info default_uia_properties[] = { { &IsTransformPattern2Available_Property_GUID, UIA_IsTransformPattern2AvailablePropertyId, }, { &LabeledBy_Property_GUID, UIA_LabeledByPropertyId, UIAutomationType_Element, }, - { &ItemType_Property_GUID, UIA_ItemTypePropertyId, }, + { &ItemType_Property_GUID, UIA_ItemTypePropertyId, + UIAutomationType_String, }, { &Transform_CanMove_Property_GUID, UIA_TransformCanMovePropertyId, }, - { &LocalizedControlType_Property_GUID, UIA_LocalizedControlTypePropertyId, }, + { &LocalizedControlType_Property_GUID, UIA_LocalizedControlTypePropertyId, + UIAutomationType_String, }, { &Annotation_AnnotationTypeId_Property_GUID, UIA_AnnotationAnnotationTypeIdPropertyId, }, { &FlowsFrom_Property_GUID, UIA_FlowsFromPropertyId, UIAutomationType_ElementArray, }, @@ -154,24 +162,28 @@ static const struct uia_prop_info default_uia_properties[] = { { &SpreadsheetItem_Formula_Property_GUID, UIA_SpreadsheetItemFormulaPropertyId, }, { &IsEnabled_Property_GUID, UIA_IsEnabledPropertyId, UIAutomationType_Bool, }, - { &LocalizedLandmarkType_Property_GUID, UIA_LocalizedLandmarkTypePropertyId, }, + { &LocalizedLandmarkType_Property_GUID, UIA_LocalizedLandmarkTypePropertyId, + UIAutomationType_String, }, { &IsDataValidForForm_Property_GUID, UIA_IsDataValidForFormPropertyId, UIAutomationType_Bool, }, { &IsControlElement_Property_GUID, UIA_IsControlElementPropertyId, UIAutomationType_Bool, }, - { &HelpText_Property_GUID, UIA_HelpTextPropertyId, }, + { &HelpText_Property_GUID, UIA_HelpTextPropertyId, + UIAutomationType_String, }, { &Table_RowHeaders_Property_GUID, UIA_TableRowHeadersPropertyId, }, { &ControllerFor_Property_GUID, UIA_ControllerForPropertyId, UIAutomationType_ElementArray, }, { &ProviderDescription_Property_GUID, UIA_ProviderDescriptionPropertyId, }, - { &AriaProperties_Property_GUID, UIA_AriaPropertiesPropertyId, }, + { &AriaProperties_Property_GUID, UIA_AriaPropertiesPropertyId, + UIAutomationType_String, }, { &LiveSetting_Property_GUID, UIA_LiveSettingPropertyId, UIAutomationType_Int, }, { &Selection2_LastSelectedItem_Property_GUID, UIA_Selection2LastSelectedItemPropertyId, }, { &Transform2_CanZoom_Property_GUID, UIA_Transform2CanZoomPropertyId, }, { &Window_IsModal_Property_GUID, UIA_WindowIsModalPropertyId, }, { &Annotation_AnnotationTypeName_Property_GUID, UIA_AnnotationAnnotationTypeNamePropertyId, }, - { &AriaRole_Property_GUID, UIA_AriaRolePropertyId, }, + { &AriaRole_Property_GUID, UIA_AriaRolePropertyId, + UIAutomationType_String, }, { &Scroll_VerticallyScrollable_Property_GUID, UIA_ScrollVerticallyScrollablePropertyId, }, { &RangeValue_Value_Property_GUID, UIA_RangeValueValuePropertyId, }, { &ProcessId_Property_GUID, UIA_ProcessIdPropertyId, @@ -225,7 +237,8 @@ static const struct uia_prop_info default_uia_properties[] = { { &Window_IsTopmost_Property_GUID, UIA_WindowIsTopmostPropertyId, }, { &IsCustomNavigationPatternAvailable_Property_GUID, UIA_IsCustomNavigationPatternAvailablePropertyId, }, { &Scroll_HorizontalViewSize_Property_GUID, UIA_ScrollHorizontalViewSizePropertyId, }, - { &AcceleratorKey_Property_GUID, UIA_AcceleratorKeyPropertyId, }, + { &AcceleratorKey_Property_GUID, UIA_AcceleratorKeyPropertyId, + UIAutomationType_String, }, { &IsTextChildPatternAvailable_Property_GUID, UIA_IsTextChildPatternAvailablePropertyId, }, { &LegacyIAccessible_Selection_Property_GUID, UIA_LegacyIAccessibleSelectionPropertyId, }, { &FillType_Property_GUID, UIA_FillTypePropertyId, @@ -243,7 +256,8 @@ static const struct uia_prop_info default_uia_properties[] = { { &IsSelectionPattern2Available_Property_GUID, UIA_IsSelectionPattern2AvailablePropertyId, }, { &MultipleView_SupportedViews_Property_GUID, UIA_MultipleViewSupportedViewsPropertyId, }, { &Styles_FillPatternColor_Property_GUID, UIA_StylesFillPatternColorPropertyId, }, - { &FullDescription_Property_GUID, UIA_FullDescriptionPropertyId, }, + { &FullDescription_Property_GUID, UIA_FullDescriptionPropertyId, + UIAutomationType_String, }, };
static const int prop_id_idx[] = {