Comunicación de cliente/servidor
El mecanismo WinEvents proporciona una manera de que los servidores se comuniquen fácilmente con los clientes de accesibilidad activa de Microsoft. Los clientes suelen recopilar información reaccionando a WinEvents (por ejemplo, siguiendo el foco), pero pueden solicitar información de un servidor en cualquier momento.
Para solicitar información para un objeto accesible que genera un WinEvent, un cliente debe procesar el evento y establecer una conexión con el objeto accesible pertinente. Para ello, el cliente realiza los seis pasos siguientes:
- Un servidor llama a NotifyWinEvent para generar una notificación de WinEvent para cada cambio en sus elementos de la interfaz de usuario.
- El código de administración de WinEvent en USER determina si alguna aplicación cliente ha registrado una función de enlace winEvent mediante SetWinEventHook y llama a la función de devolución de llamada registrada.
- En su función de devolución de llamada, el cliente solicita acceso al objeto que generó el evento mediante una llamada a AccessibleObjectFromEvent u otras funciones de recuperación de objetos accesibles. Para obtener más información, vea Recuperar un objeto IAccessible.
- Esta API de accesibilidad activa de Microsoft envía a la aplicación de servidor un mensaje de WM_GETOBJECT para recuperar el objeto accesible.
- En respuesta a WM_GETOBJECT, la aplicación de servidor devuelve cero o devuelve un valor que actúa como referencia única al objeto que generó el evento.
- Si el servidor devuelve cero, Microsoft Active Accessibility crea un objeto proxy y le da su dirección al cliente. De lo contrario, Microsoft Active Accessibility usa esta referencia para recuperar la dirección de una interfaz de objeto, como IAccessible o IDispatch, y proporciona esa dirección al cliente.
Una vez que el cliente tiene una dirección de interfaz, puede llamar a las propiedades y métodos IAccessible del objeto accesible para recuperar información.
En esta sección