Interfacce doppie: IAccessible e IDispatch
Gli sviluppatori di server devono fornire l'interfaccia COM (Component Object Model) standard IDispatch per gli oggetti accessibili. L'interfaccia IDispatch consente alle applicazioni client scritte in Microsoft Visual Basic e a vari linguaggi di scripting di usare i metodi e le proprietà esposti da IAccessible. Poiché un oggetto accessibile consente l'accesso a un oggetto indirettamente tramite IDispatch::Invoke o direttamente con IAccessible, si dice che abbia una doppia interfaccia.
Quando i client C/C++ recuperano un puntatore all'interfaccia IDispatch, i client possono chiamare QueryInterface per provare a convertire il puntatore dell'interfaccia IDispatch in un puntatore a interfaccia IAccessible. Per chiamare indirettamente i metodi IAccessible, i client C/C++ chiamano IDispatch::Invoke. Per migliorare le prestazioni, chiamare i metodi IAccessible per usare direttamente l'oggetto.
Per un elenco degli ID di invio (DISPID) usati IDispatch per identificare i metodi e le proprietà IAccessible, vedere Appendice C: IAccessible DISPIDs.
Nota
Nella versione 2.0 e successive di Microsoft Active Accessibility i server non devono implementare completamente i metodi di IDispatch, ma possono semplicemente restituire E_NOTIMPL dopo l'inizializzazione di tutti i parametri out, come illustrato nell'esempio seguente.
HRESULT STDMETHODCALLTYPE AccServer::GetTypeInfoCount(UINT* pctinfo)
{
*pctinfo = 0;
return E_NOTIMPL;
};