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 clientseitigen Anwendungen, die in Microsoft Visual Basic und verschiedenen Skriptsprachen geschrieben wurden, die von IAccessible verfügbar gemachten Methoden und Eigenschaften zu verwenden. Da ein barrierefreies Objekt den Zugriff auf ein Objekt entweder indirekt über IDispatch::Invoke oder direkt mit IAccessible ermöglicht, soll es über eine duale Schnittstelle verfügen.
Wenn C/C++-Clients einen IDispatch-Schnittstellenzeiger erhalten, 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 zur Verbesserung der Leistung die IAccessible-Methoden auf , um das -Objekt direkt zu verwenden.
Eine Liste der Dispatch-IDs (DISPIDs), die IDispatch zum Identifizieren der IAccessible-Methoden und -Eigenschaften verwendet, finden Sie in Anhang C: IAccessible DISPIDs.
Hinweis
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 zurückgeben, nachdem alle Out-Parameter initialisiert wurden, wie im folgenden Beispiel gezeigt.
HRESULT STDMETHODCALLTYPE AccServer::GetTypeInfoCount(UINT* pctinfo)
{
*pctinfo = 0;
return E_NOTIMPL;
};