Поделиться через


Получение свойств от поставщика модель автоматизации пользовательского интерфейса

В этом разделе содержится пример кода, показывающий, как поставщик microsoft модель автоматизации пользовательского интерфейса возвращает свойства элемента пользовательского интерфейса клиентским приложениям.

Чтобы получить значение свойства из поставщика, модель автоматизации пользовательского интерфейса вызывает реализацию поставщика метода IRawElementProviderSimple::GetPropertyValue, передавая идентификатор извлекаемого свойства и указатель на структуру VARIANT. Если поставщик поддерживает указанное свойство, он копирует тип данных и значение свойства в структуру VARIANT . Если свойство не поддерживается, поставщик устанавливает для элемента vt структуры VARIANT значение VT_EMPTY.

IFACEMETHODIMP Provider::GetPropertyValue(PROPERTYID propertyId, VARIANT* pRetVal)
{
    // The Name property is typically the same as the Caption property of the 
    // control window, if it has one. Here, the Name is overridden for the 
    // sake of illustration. 
    if (propertyId == UIA_NamePropertyId) 
    {
        pRetVal->vt = VT_BSTR;
        pRetVal->bstrVal = SysAllocString(L"Custom button");
    }
    
    else if (propertyId == UIA_ControlTypePropertyId) 
    {
        pRetVal->vt = VT_I4;
        pRetVal->lVal = UIA_ButtonControlTypeId; 
    }

    else if (propertyId == UIA_IsContentElementPropertyId) 
    {
        pRetVal->vt = VT_BOOL;
        pRetVal->lVal = TRUE; 
    }

    else if (propertyId == UIA_IsControlElementPropertyId) 
    {
        pRetVal->vt = VT_BOOL;
        pRetVal->lVal = TRUE; 
    }

    //
    // Return other properties as appropriate for the control type. 
    //

    else
    {
        pRetVal->vt = VT_EMPTY;
        // UI Automation will attempt to get the property from the  
        // provider for window that hosts the control.
    }
    return S_OK;
}

Основные понятия

Общие сведения о свойствах автоматизированного пользовательского интерфейса

Практические руководства для поставщиков модель автоматизации пользовательского интерфейса