Recuperando um objeto IAccessible
A Acessibilidade Ativa da Microsoft fornece funções como AccessibleObjectFromWindow e AccessibleObjectFromPoint que permitem que os clientes recuperem objetos acessíveis. Essas funções retornam um ponteiro de interface IDispatch ou IAccessible por meio do qual os clientes obtêm informações sobre o objeto acessível.
Quando um cliente chama AccessibleObjectFromWindow ou qualquer uma das outras funções AccessibleObjectFromX que recuperam uma interface para um objeto, o Microsoft Active Accessibility envia a mensagem de janela WM_GETOBJECT para o procedimento de janela aplicável dentro do aplicativo apropriado. Para fornecer informações aos clientes, os servidores devem responder à mensagem WM_GETOBJECT .
Para coletar informações específicas sobre um elemento de interface do usuário, os clientes devem primeiro recuperar uma interface IAccessible para o elemento . Para recuperar o objeto IAccessible de um elemento, os clientes podem usar uma das seguintes funções:
Para recuperar um ponteiro de interface IAccessible
O cliente chama uma das funções AccessibleObjectFromX .
Oleacc.dll envia uma mensagem WM_GETOBJECT para o servidor.
O servidor determina qual elemento de interface do usuário corresponde à solicitação.
O servidor retorna zero para solicitar um proxy Oleacc.dll,
Ou
Retorna um objeto IAccessible (implementação nativa). Para fazer isso, ele:
- Constrói um objeto IAccessible para o elemento .
- Chama LresultFromObject para realizar marshaling do ponteiro do objeto.
- Retorna o LRESULT para Oleacc.dll.
Oleacc.dll examina o valor retornado de WM_GETOBJECT.
Se for zero, Oleacc.dll construirá um objeto proxy e o retornará ao cliente.
Ou
Se não for zero, Oleacc.dll chamará ObjectFromLresult para desmarcar o ponteiro de objeto IAccessible nativo e o retornará ao cliente.