Compartilhar via


Interfaces duplas: IAccessible e IDispatch

Os desenvolvedores de servidor devem fornecer o IDispatch de interface COM (Component Object Model) padrão para seus objetos acessíveis. A interface IDispatch permite que aplicativos cliente escritos no Microsoft Visual Basic e em várias linguagens de script usem os métodos e propriedades expostos pelo IAccessible. Como um objeto acessível fornece acesso a um objeto indiretamente por meio de IDispatch::Invoke ou diretamente com IAccessible, diz-se que ele tem uma interface dupla.

Quando os clientes C/C++ recebem de volta um ponteiro de interface IDispatch, os clientes podem chamar QueryInterface para tentar converter o ponteiro da interface IDispatch em um ponteiro de interface IAccessible . Para chamar os métodos IAccessible indiretamente, os clientes C/C++ chamam IDispatch::Invoke. Para melhorar o desempenho, chame os métodos IAccessible para usar o objeto diretamente.

Para obter uma lista das DISPIDs (IDs de expedição) que o IDispatch usa para identificar os métodos e propriedades IAccessible , consulte Apêndice C: DISPIDs IAccessible.

Observação

Na versão 2.0 e posterior da Acessibilidade Ativa da Microsoft, os servidores não precisam implementar totalmente os métodos de IDispatch , mas podem simplesmente retornar E_NOTIMPL depois de inicializar quaisquer parâmetros out, conforme mostrado no exemplo a seguir.

 

HRESULT STDMETHODCALLTYPE AccServer::GetTypeInfoCount(UINT* pctinfo)
{
    *pctinfo = 0;
    return E_NOTIMPL;
};