Freigeben über


Duale Schnittstellen: IAccessible und IDispatch

Serverentwickler müssen die standardmäßige COM-Schnittstelle (Component Object Model) IDispatch- für ihre barrierefreien Objekte bereitstellen. Die IDispatch-Schnittstelle ermöglicht Clientanwendungen, die in Microsoft Visual Basic und verschiedenen Skriptsprachen geschrieben wurden, die Methoden und Eigenschaften zu verwenden, die von IAccessibleverfügbar gemacht werden. Da ein barrierefreies Objekt entweder indirekt über IDispatch::Invoke oder direkt mit IAccessiblezugreifen kann, wird davon gesprochen, dass es über eine duale Schnittstelle verfügt.

Wenn C/C++-Clients einen IDispatch-Schnittstellenzeiger zurückgeben, können Clients QueryInterface- aufrufen, um zu versuchen, den IDispatch-Schnittstellenzeiger in einen IAccessible Schnittstellenzeiger zu konvertieren. Um die IAccessible Methoden indirekt aufzurufen, rufen C/C++-Clients IDispatch::Invoke auf. Rufen Sie für eine verbesserte Leistung die IAccessible Methoden auf, um das Objekt direkt zu verwenden.

Eine Liste der Verteiler-IDs (DISPIDs), die IDispatch- verwendet, um die IAccessible Methoden und Eigenschaften zu identifizieren, finden Sie in Anhang C: IAccessible DISPIDs.

Anmerkung

Unter Version 2.0 und höher von Microsoft Active Accessibility müssen Server die Methoden von IDispatch- nicht vollständig implementieren, sondern können einfach E_NOTIMPL nach der Initialisierung von Ausgabeparametern zurückgeben, wie im folgenden Beispiel gezeigt.

 

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