Compartilhar via


Usar QueryService para recuperar uma interface nativa para um objeto IAccessible

Os desenvolvedores de servidores podem usar essa técnica para expor um ponteiro a um nó de documento personalizado para um objeto IAccessible . Isso pressupõe que você já exponha objetos IAccessible . Essa técnica permite que os clientes obtenham um objeto personalizado de um objeto IAccessible .

Para expor um modelo de objeto nativo para um IAccessible (servidores)

  1. Adicione suporte para a interface IServiceProvider em seu objeto IAccessible .
  2. Defina um GUID que representa a funcionalidade de obter a interface personalizada de um objeto IAccessible . Isso é chamado de ID de serviço. Você pode usar GUIDGEN.EXE para gerar uma ID de serviço ou reutilizar a ID da interface se tiver uma interface personalizada.
  3. Implemente o método IServiceProvider::QueryService para que ele retorne um ponteiro para a interface personalizada quando chamado com a ID de serviço definida anteriormente neste procedimento. QueryService deve retornar NULL para todos os outros valores de ID de serviço.
  4. Publique a ID do serviço para que os clientes possam usá-la.

Os clientes podem usar essa funcionalidade para obter um ponteiro para o objeto personalizado de um objeto IAccessible .

Para obter um ponteiro para um objeto personalizado de um IAccessible (clientes)

  1. Chame QueryInterface(IID_IServiceProvider) em um ponteiro de interface IAccessible para obter um ponteiro de interface IServiceProvider .
  2. Chame IServiceProvider::QueryService com a ID de serviço publicada para obter um ponteiro para o objeto personalizado para o IAccessible.
  3. Libere a interface IServiceProvider se ela não for mais necessária.

Para serem utilizáveis entre processos, os servidores podem precisar registrar a interface retornada com o COM (Component Object Model).

Essa técnica é usada pelo Microsoft Internet Explorer 4.0 e posterior. Ele permite que os clientes obtenham um ponteiro de interface IHTMLElement2 que corresponde a um objeto IAccessible .