Doppia interfaccia: IAccessibile e IDispatch

Gli sviluppatori del server devono fornire l'interfaccia IDispatch (COM) standard per gli oggetti accessibili. L'interfaccia IDispatch consente alle applicazioni client scritte in Microsoft Visual Basic e in vari linguaggi di scripting di usare i metodi e le proprietà esposte da IAccessibile. Poiché un oggetto accessibile fornisce l'accesso a un oggetto indirettamente tramite IDispatch::Invoke o direttamente con IAccess, si dice che abbia una doppia interfaccia.

Quando i client C/C++ tornano a un puntatore dell'interfaccia IDispatch, i client possono chiamare QueryInterface per provare a convertire il puntatore dell'interfaccia IDispatch a un puntatore dell'interfaccia IAccessibile . Per chiamare indirettamente i metodi IAccessi , i client C/C++ chiamano IDispatch::Invoke. Per migliorare le prestazioni, chiamare i metodi IAccessi per usare direttamente l'oggetto.

Per un elenco degli ID di invio (DISPID) usati da IDispatch per identificare i metodi e le proprietà IAccessi , vedere Appendice C: IAccessibile DISPID.

Nota

Nella versione 2.0 e successiva di Microsoft Active Accessibility i server non devono implementare completamente i metodi di IDispatch , ma possono semplicemente restituire E_NOTIMPL dopo aver inizializzato tutti i parametri out, come illustrato nell'esempio seguente.

 

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