Verwenden von QueryService zum Abrufen einer nativen Schnittstelle für ein IAccessible-Objekt
Serverentwickler können diese Technik verwenden, um einen Zeiger auf einen benutzerdefinierten Dokumentknoten für ein IAccessible-Objekt verfügbar zu machen. Dabei wird davon ausgegangen, dass Sie bereits IAccessible-Objekte verfügbar machen. Mit dieser Technik können Clients ein benutzerdefiniertes Objekt aus einem IAccessible-Objekt abrufen.
So machen Sie ein natives Objektmodell für ein IAccessible (Server) verfügbar
- Fügen Sie Unterstützung für die IServiceProvider-Schnittstelle für Ihr IAccessible-Objekt hinzu.
- Definieren Sie eine GUID, die die Funktionalität zum Abrufen der benutzerdefinierten Schnittstelle aus einem IAccessible-Objekt darstellt. Dies wird als Dienst-ID bezeichnet. Sie können GUIDGEN.EXE verwenden, um eine Dienst-ID zu generieren, oder die Schnittstellen-ID wiederverwenden, wenn Sie über eine benutzerdefinierte Schnittstelle verfügen.
- Implementieren Sie die IServiceProvider::QueryService-Methode , sodass sie einen Zeiger auf die benutzerdefinierte Schnittstelle zurückgibt, wenn sie mit der zuvor in diesem Verfahren definierten Dienst-ID aufgerufen wird. QueryService sollte null für alle anderen Dienst-ID-Werte zurückgeben.
- Veröffentlichen Sie die Dienst-ID, damit Clients sie verwenden können.
Clients können diese Funktionalität verwenden, um einen Zeiger auf das benutzerdefinierte Objekt aus einem IAccessible-Objekt abzurufen.
So erhalten Sie einen Zeiger auf ein benutzerdefiniertes Objekt von einem IAccessible -Objekt (Clients)
- Rufen Sie QueryInterface(IID_IServiceProvider) für einen IAccessible-Schnittstellenzeiger auf, um einen IServiceProvider-Schnittstellenzeiger abzurufen.
- Rufen Sie IServiceProvider::QueryService mit der veröffentlichten Dienst-ID auf, um einen Zeiger auf das benutzerdefinierte Objekt für IAccessible zu erhalten.
- Geben Sie die IServiceProvider-Schnittstelle frei, wenn sie nicht mehr benötigt wird.
Um prozessübergreifend verwendbar zu sein, müssen Server möglicherweise die zurückgegebene Schnittstelle beim Component Object Model (COM) registrieren.
Diese Technik wird von Microsoft Internet Explorer 4.0 und höher verwendet. Damit können Clients einen IHTMLElement2-Schnittstellenzeiger abrufen, der einem IAccessible-Objekt entspricht.