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

uiautomationcore: Add support for UIAutomationType_String properties.

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