Compartilhar via


Comunicação cliente/servidor

O mecanismo de do WinEvents fornece uma maneira de os servidores se comunicarem facilmente com clientes de Acessibilidade Ativa da Microsoft. Os clientes geralmente coletam informações reagindo ao WinEvents (por exemplo, seguindo o foco), mas eles são livres para solicitar informações de um servidor a qualquer momento.

Para solicitar informações para um objeto acessível que gere um WinEvent, um cliente deve processar o evento e estabelecer uma conexão com o objeto acessível relevante. Para fazer isso, o cliente executa as seis etapas a seguir:

  • Um servidor chama NotifyWinEvent para gerar uma notificação WinEvent para cada alteração em seus elementos de interface do usuário.
  • O código de gerenciamento WinEvent no USER determina se algum aplicativo cliente registrou uma função winEvent gancho usando SetWinEventHook e chama a função de retorno de chamada registrada.
  • Em sua função de retorno de chamada, o cliente solicita acesso ao objeto que gerou o evento chamando AccessibleObjectFromEvent ou outras funções de recuperação de objeto acessíveis. Para obter mais informações, consulte Recuperando um objeto IAccessible.
  • Essa API de Acessibilidade Ativa da Microsoft envia ao aplicativo de servidor uma mensagem WM_GETOBJECT para recuperar o objeto acessível.
  • Em resposta a WM_GETOBJECT, o aplicativo de servidor retorna zero ou retorna um valor que atua como uma referência única ao objeto que gerou o evento.
  • Se o servidor retornar zero, a Acessibilidade Ativa da Microsoft criará um objeto proxy e fornecerá seu endereço ao cliente. Caso contrário, o Microsoft Active Accessibility usa essa referência para recuperar o endereço de uma interface de objeto, como IAccessible ou de IDispatch e fornece esse endereço ao cliente.

Depois que o cliente tiver um endereço de interface, ele poderá chamar as propriedadesdoIAccessible e métodos do objeto acessível para recuperar informações.

Nesta seção