Comunicação cliente/servidor
O mecanismo WinEvents fornece uma maneira de os servidores se comunicarem facilmente com clientes do Microsoft Active Accessibility. Os clientes geralmente coletam informações reagindo a 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 gera 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 de gancho WinEvent 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.
- Esta 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, o Microsoft Active Accessibility 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 IDispatch, e fornece esse endereço ao cliente.
Depois que o cliente tiver um endereço de interface, ele poderá chamar as propriedades e os métodos IAccessible do objeto acessível para recuperar informações.
Nesta seção