Udostępnij przez


Używanie usługi QueryService do pobierania interfejsu natywnego dla obiektu IAccessible

Deweloperzy serwerów mogą użyć tej techniki, aby uwidocznić wskaźnik do niestandardowego węzła dokumentu dla obiektu IAccessible. Przyjęto założenie, że już udostępniasz obiekty IAccessible. Ta technika umożliwia klientom uzyskiwanie niestandardowego obiektu z obiektu IAccessible.

Aby uwidocznić natywny model obiektów dla IAccessible (serwerów)

  1. Dodaj obsługę interfejsu IServiceProvider do swojego obiektu IAccessible.
  2. Zdefiniuj identyfikator GUID, który reprezentuje funkcjonalność pozyskiwania interfejsu niestandardowego z obiektów IAccessible. Jest to nazywane identyfikatorem usługi. Możesz użyć GUIDGEN.EXE do wygenerowania identyfikatora usługi lub ponownie użyć identyfikatora interfejsu, jeśli masz interfejs niestandardowy.
  3. Zaimplementuj metodę IServiceProvider::QueryService, aby zwracała wskaźnik do interfejsu niestandardowego po wywołaniu z identyfikatorem usługi zdefiniowanym wcześniej w tej procedurze. QueryService powinna zwrócić NULL dla wszystkich innych wartości identyfikatora usługi.
  4. Opublikuj identyfikator usługi, aby klienci mogli z niego korzystać.

Klienci mogą używać tej funkcji, aby uzyskać wskaźnik do obiektu niestandardowego z obiektu IAccessible.

Aby uzyskać wskaźnik do obiektu niestandardowego z IAccessible (klientów)

  1. Wywołaj QueryInterface(IID_IServiceProvider) na wskaźniku do interfejsu IAccessible, aby uzyskać wskaźnik do interfejsu IServiceProvider.
  2. Wywołaj IServiceProvider::QueryService z użyciem opublikowanego identyfikatora usługi, aby uzyskać wskaźnik do obiektu niestandardowego dla IAccessible.
  3. Zwolnij interfejs IServiceProvider, jeśli nie jest już potrzebny.

Aby można było korzystać z wielu procesów, serwery mogą wymagać zarejestrowania zwróconego interfejsu za pomocą modelu obiektów składowych (COM).

Ta technika jest używana przez program Microsoft Internet Explorer 4.0 lub nowszy. Umożliwia klientom uzyskanie wskaźnika interfejsu IHTMLElement2, który odpowiada obiektowi IAccessible.