Share via


WM_GETOBJECT mensaje

Enviado por Microsoft Active Accessibility y Microsoft Automatización de la interfaz de usuario para obtener información sobre un objeto accesible contenido en una aplicación de servidor.

Las aplicaciones nunca envían este mensaje directamente. Microsoft Active Accessibility envía este mensaje en respuesta a las llamadas a AccessibleObjectFromPoint, AccessibleObjectFromEvent o AccessibleObjectFromWindow. Sin embargo, las aplicaciones de servidor controlan este mensaje. Automatización de la interfaz de usuario envía este mensaje en respuesta a las llamadas a IUIAutomation::ElementFromHandle, ElementFromPoint y GetFocusedElement, y al controlar eventos para los que un cliente se ha registrado.

dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;

Parámetros

dwFlags

Proporciona información adicional sobre el mensaje y solo la usa el sistema. Los servidores pasan dwFlags como parámetro wParam en la llamada a LresultFromObject al controlar el mensaje.

dwObjId

Identificador de objeto. Este valor es una de las constantes de identificador de objeto o un identificador de objeto personalizado. Una aplicación de servidor debe comprobar este valor para identificar el tipo de información que se solicita. Antes de comparar este valor con los valores de OBJID_, el servidor debe convertirlo en DWORD; de lo contrario, en Windows de 64 bits, la extensión de signo de lParam puede interferir con la comparación.

  • Si dwObjId es uno de los valores de OBJID_ como OBJID_CLIENT, la solicitud es para un objeto de accesibilidad activa de Microsoft que implementa IAccessible.
  • Si dwObjId es igual a UiaRootObjectId, la solicitud es para un proveedor de Automatización de la interfaz de usuario. Si el servidor está implementando Automatización de la interfaz de usuario, debe devolver un proveedor mediante la función UiaReturnRawElementProvider.
  • Si dwObjId es OBJID_NATIVEOM, la solicitud es para el modelo de objetos subyacente del control. Si el control admite esta solicitud, debe devolver una interfaz COM adecuada mediante una llamada a la función LresultFromObject .
  • Si dwObjId es OBJID_QUERYCLASSNAMEIDX, la solicitud es para que el control se identifique como un control estándar de Windows o un control común implementado por la biblioteca de controles común (ComCtrl.dll).

Valor devuelto

Si la ventana o el control no necesita responder a este mensaje, debe pasar el mensaje a la función DefWindowProc ; de lo contrario, la ventana o el control deben devolver un valor que corresponda a la solicitud especificada por dwObjId:

  • Si la ventana o el control implementa Automatización de la interfaz de usuario, la ventana o control debe devolver el valor obtenido por una llamada a la función UiaReturnRawElementProvider.
  • Si dwObjId es OBJID_NATIVEOM y la ventana expone un modelo de objetos nativo, las ventanas deben devolver el valor obtenido por una llamada a la función LresultFromObject .
  • Si dwObjId es OBJID_CLIENT y la ventana implementa IAccessible, la ventana debe devolver el valor obtenido por una llamada a la función LresultFromObject .

Observaciones

Cuando un cliente llama a AccessibleObjectFromWindow o a cualquiera de las demás funciones AccessibleObjectFromX que recuperan una interfaz a un objeto, Microsoft Active Accessibility envía el mensaje de WM_GETOBJECT al procedimiento de ventana adecuado dentro de la aplicación de servidor adecuada. Al procesar WM_GETOBJECT, las aplicaciones de servidor llaman a LresultFromObject y usan el valor devuelto de esta función como valor devuelto para el mensaje. La accesibilidad activa de Microsoft, junto con la biblioteca COM, realiza las referencias adecuadas y pasa el puntero de interfaz del servidor al cliente.

Los servidores no responden a WM_GETOBJECT antes de que el objeto se inicialice completamente o después de que comience a cerrarse. Cuando una aplicación crea una nueva ventana, el sistema envía EVENT_OBJECT_CREATE para notificar a los clientes antes de enviar el mensaje WM_CREATE al procedimiento de ventana de la aplicación. Dado que muchas aplicaciones usan WM_CREATE para iniciar su proceso de inicialización, los servidores no responden al mensaje de WM_GETOBJECT hasta que termine de procesar el mensaje de WM_CREATE .

Un servidor usa WM_GETOBJECT para realizar las tareas siguientes:

En el caso de los clientes, esto significa que pueden recibir punteros de interfaz distintos para el mismo elemento de interfaz de usuario, en función de la acción del servidor. Para determinar si dos punteros de interfaz apuntan al mismo elemento de interfaz de usuario, los clientes comparan las propiedades IAccessible del objeto. La comparación de punteros no funciona.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Redistribuible
RDK de accesibilidad activa 1.3 en Windows NT 4.0 con SP6 y versiones posteriores y Windows 95
Encabezado
Winuser.h (incluye Windows.h)

Consulte también

Cómo controlar WM_GETOBJECT

Cómo funciona WM_GETOBJECT

LresultFromObject