Como retornar propriedades de um provedor de Automação da Interface do Usuário

Este tópico contém um código de exemplo que mostra como um provedor do Microsoft Automação da Interface do Usuário retorna propriedades de um elemento de interface do usuário para aplicativos cliente.

Para recuperar um valor de propriedade do provedor, Automação da Interface do Usuário chama a implementação de um provedor do método IRawElementProviderSimple::GetPropertyValue, passando a ID da propriedade para recuperar e um ponteiro para uma estrutura VARIANT. Se o provedor der suporte à propriedade especificada, ele copiará o tipo de dados e o valor da propriedade para a estrutura VARIANT . Se a propriedade não tiver suporte, o provedor definirá o membro vt da estrutura VARIANT como 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;
}

Conceitual

Visão geral das propriedades de automação da interface do usuário

Tópicos de instruções para provedores de Automação da Interface do Usuário