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 erhalten.

So machen Sie ein natives Objektmodell für einen IAccessible (Server) verfügbar

  1. Fügen Sie Unterstützung für die IServiceProvider-Schnittstelle für Ihr IAccessible-Objekt hinzu.
  2. Definieren Sie eine GUID, die die Funktionalität des Abrufens 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.
  3. Implementieren Sie die IServiceProvider::QueryService-Methode, sodass sie beim Aufrufen mit der zuvor in dieser Prozedur definierten Dienst-ID einen Zeiger auf die benutzerdefinierte Schnittstelle zurückgibt. QueryService sollte null für alle anderen Dienst-ID-Werte zurückgeben.
  4. Veröffentlichen Sie die Dienst-ID, damit sie von Clients verwendet werden kann.

Clients können diese Funktionalität verwenden, um einen Zeiger auf das benutzerdefinierte Objekt aus einem IAccessible-Objekt zu erhalten.

So erhalten Sie einen Zeiger auf ein benutzerdefiniertes Objekt von einem IAccessible-Objekt (Clients)

  1. Rufen Sie QueryInterface(IID IServiceProvider) für einen _ IAccessible-Schnittstellenzeiger auf, um einen IServiceProvider-Schnittstellenzeiger zu erhalten.
  2. Rufen Sie IServiceProvider::QueryService mit der veröffentlichten Dienst-ID auf, um einen Zeiger auf das benutzerdefinierte Objekt für IAccessible zu erhalten.
  3. Geben Sie die IServiceProvider-Schnittstelle frei, wenn sie nicht mehr benötigt wird.

Um prozessübergreifend verwendet werden zu können, müssen Server möglicherweise die zurückgegebene Schnittstelle bei Component Object Model (COM) registrieren.

Diese Technik wird von Microsoft Internet Explorer 4.0 und höher verwendet. Dadurch können Clients einen IHTMLElement2-Schnittstellenzeiger abrufen, der einem IAccessible-Objekt entspricht.