Share via


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:

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
Winuser.h (inclua Windows.h)

Confira também

Como lidar com WM_GETOBJECT

Como WM_GETOBJECT funciona

LresultFromObject