Partager via


Interfaces doubles : IAccessible et IDispatch

Les développeurs de serveurs doivent fournir l’interface COM (Component Object Model) standard IDispatch pour leurs objets accessibles. L’interface IDispatch permet aux applications clientes écrites dans Microsoft Visual Basic et dans différents langages de script d’utiliser les méthodes et les propriétés exposées par IAccessible . Étant donné qu’un objet accessible permet d’accéder indirectement à un objet via IDispatch ::Invoke ou directement avec IAccessible , il est dit qu’il a une interface double.

Lorsque les clients C/C++ obtiennent un pointeur d’interface IDispatch, les clients peuvent appeler QueryInterface pour essayer de convertir le pointeur d’interface IDispatch en pointeur d’interface IAccessible. Pour appeler indirectement les méthodes IAccessible, les clients C/C++ appellent IDispatch ::Invoke. Pour améliorer les performances, appelez les méthodes IAccessible pour utiliser l’objet directement.

Pour obtenir la liste des ID de répartition (DISPID) que IDispatch utilise pour identifier les méthodes et propriétés IAccessible, consultez Annexe C : IAccessible DISPIDs.

Note

Sous la version 2.0 et ultérieure de Microsoft Active Accessibility, les serveurs n’ont pas besoin d’implémenter entièrement les méthodes d'IDispatch, mais peuvent simplement retourner E_NOTIMPL après l’initialisation des paramètres sortants, comme illustré dans l’exemple suivant.

 

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