Compartir a través de


Comunicación de cliente/servidor

El mecanismo de 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 son libres de 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 de 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 llamando 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, La accesibilidad activa de Microsoft crea un objeto proxy y proporciona su dirección al cliente. De lo contrario, La accesibilidad activa de Microsoft usa esta referencia para recuperar la dirección de una interfaz de objeto, como IAccessible o IDispatchy 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 deIAccessible del objeto accesible para recuperar información.

En esta sección