Compartir a través de


Interfaces duales: IAccessible e IDispatch

Los desarrolladores de servidores deben proporcionar la interfaz estándar del modelo de objetos componentes (COM) IDispatch para sus objetos accesibles. La interfaz IDispatch permite que las aplicaciones cliente escritas en Microsoft Visual Basic y varios lenguajes de scripting usen los métodos y propiedades expuestos por IAccessible. Dado que un objeto accesible proporciona acceso a un objeto indirectamente a través de IDispatch::Invoke o directamente con IAccessible, se dice que tiene una interfaz dual.

Cuando los clientes de C/C++ devuelven un puntero de interfaz IDispatch, los clientes pueden llamar a QueryInterface para intentar convertir el puntero de interfaz IDispatch a un puntero de interfaz IAccessible . Para llamar a los métodos IAccessible indirectamente, los clientes de C/C++ llaman a IDispatch::Invoke. Para mejorar el rendimiento, llame a los métodos IAccessible para usar el objeto directamente.

Para obtener una lista de los identificadores de envío (DISPID) que IDispatch usa para identificar los métodos y propiedades IAccessibles , vea Apéndice C: DISPIDs accesibles.

Nota

En la versión 2.0 y posteriores de Accesibilidad activa de Microsoft, los servidores no tienen que implementar completamente los métodos de IDispatch , pero simplemente pueden devolver E_NOTIMPL después de inicializar los parámetros out, como se muestra en el ejemplo siguiente.

 

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