WM_GETOBJECT mensagem
Enviado pela Microsoft Active Accessibility e pela Microsoft Automação da Interface do Usuário para obter informações sobre um objeto acessível contido em um aplicativo de servidor.
Os aplicativos nunca enviam essa mensagem diretamente. A Acessibilidade Ativa da Microsoft envia essa mensagem em resposta a chamadas para AccessibleObjectFromPoint, AccessibleObjectFromEvent ou AccessibleObjectFromWindow. No entanto, os aplicativos de servidor lidam com essa mensagem. Automação da Interface do Usuário envia essa mensagem em resposta a chamadas para IUIAutomation::ElementFromHandle, ElementFromPoint e GetFocusedElement e ao manipular eventos para os quais um cliente se registrou.
dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;
Parâmetros
-
dwFlags
-
Fornece informações adicionais sobre a mensagem e é usado apenas pelo sistema. Os servidores passam dwFlags como o parâmetro wParam na chamada para LresultFromObject ao manipular a mensagem.
-
dwObjId
-
Identificador de objeto. Esse valor é uma das constantes do identificador de objeto ou um identificador de objeto personalizado. Um aplicativo de servidor deve marcar esse valor para identificar o tipo de informação que está sendo solicitada. Antes de comparar esse valor com os valores OBJID_, o servidor deve convertê-lo em DWORD; caso contrário, no Windows de 64 bits, a extensão de sinal do lParam pode interferir na comparação.
- Se dwObjId for um dos valores OBJID_, como OBJID_CLIENT, a solicitação será para um objeto Microsoft Active Accessibility que implementa IAccessible.
- Se dwObjId for igual a UiaRootObjectId, a solicitação será para um provedor de Automação da Interface do Usuário. Se o servidor estiver implementando Automação da Interface do Usuário, ele deverá retornar um provedor usando a função UiaReturnRawElementProvider.
- Se dwObjId for OBJID_NATIVEOM, a solicitação será para o modelo de objeto subjacente do controle. Se o controle der suporte a essa solicitação, ele deverá retornar uma interface COM apropriada chamando a função LresultFromObject .
- Se dwObjId for OBJID_QUERYCLASSNAMEIDX, a solicitação será para que o controle se identifique como um controle padrão do Windows ou um controle comum implementado pela biblioteca de controle comum (ComCtrl.dll).
Valor retornado
Se a janela ou o controle não precisar responder a essa mensagem, ele deverá passar a mensagem para a função DefWindowProc ; caso contrário, a janela ou o controle deve retornar um valor que corresponda à solicitação especificada por dwObjId:
- Se a janela ou o controle implementar Automação da Interface do Usuário, a janela ou o controle deverá retornar o valor obtido por uma chamada para a função UiaReturnRawElementProvider.
- Se dwObjId for OBJID_NATIVEOM e a janela expor um Modelo de Objeto nativo, as janelas deverão retornar o valor obtido por uma chamada para a função LresultFromObject .
- Se dwObjId for OBJID_CLIENT e a janela implementar IAccessible, a janela deverá retornar o valor obtido por uma chamada para a função LresultFromObject .
Comentários
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 WM_GETOBJECT para o procedimento de janela apropriado dentro do aplicativo de servidor apropriado. Durante o processamento WM_GETOBJECT, os aplicativos de servidor chamam LresultFromObject e usam o valor retornado dessa função como o valor retornado para a mensagem. A Acessibilidade Ativa da Microsoft, em conjunto com a biblioteca COM, executa o marshaling apropriado e passa o ponteiro da interface do servidor de volta para o cliente.
Os servidores não respondem a WM_GETOBJECT antes que o objeto seja totalmente inicializado ou depois que ele começar a fechar. Quando um aplicativo cria uma nova janela, o sistema envia EVENT_OBJECT_CREATE para notificar os clientes antes de enviar a mensagem WM_CREATE para o procedimento de janela do aplicativo. Como muitos aplicativos usam WM_CREATE para iniciar o processo de inicialização, os servidores não respondem à mensagem WM_GETOBJECT até terminarem de processar a mensagem WM_CREATE .
Um servidor usa WM_GETOBJECT para executar as seguintes tarefas:
- Criar novos objetos acessíveis
- Reutilizar ponteiros existentes para objetos
- Criar novas interfaces para o mesmo objeto
Para clientes, isso significa que eles podem receber ponteiros de interface distintos para o mesmo elemento de interface do usuário, dependendo da ação do servidor. Para determinar se dois ponteiros de interface apontam para o mesmo elemento de interface do usuário, os clientes comparam as propriedades IAccessible do objeto. A comparação de ponteiros não funciona.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2003 [somente aplicativos da área de trabalho] |
Redistribuível |
Active Accessibility 1.3 RDK no Windows NT 4.0 com SP6 e posterior e Windows 95 |
Cabeçalho |
|