Implementación del proveedor de UI Automation en el cliente
Nota
Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para ver la información más reciente acerca de la automatización de la interfaz de usuario, consulte Windows Automation API: automatización de la interfaz de usuario.
Hay varios marcos de interfaz de usuario (UI) diferentes en uso en sistemas operativos Microsoft, incluidos Win32, Windows Forms y Windows Presentation Foundation (WPF). Automatización de la interfaz de usuario expone información sobre los elementos de interfaz de usuario a los clientes. Sin embargo, la propia Automatización de la interfaz de usuario no tiene conocimiento de los diferentes tipos de controles que existen en estos marcos de trabajo y las técnicas que se necesitan para extraen información de ellos. En su lugar, deja esta tarea a objetos denominados proveedores. Un proveedor extrae información de un control concreto y proporciona esa información a Automatización de la interfaz de usuario, que luego la presenta al cliente de una manera coherente.
Los proveedores pueden existir en el lado servidor o en el lado cliente. El propio control implementa un proveedor de lado servidor. Los elementos de WPF implementan proveedores, como pueden hacerlo los controles de terceros escritos teniendo en cuenta Automatización de la interfaz de usuario.
Sin embargo, los controles más antiguos como los de Win32 y Windows Forms no admiten directamente Automatización de la interfaz de usuario. En su lugar, se sirven estos controles por los proveedores que existen en el proceso del cliente y obtienen información sobre los controles mediante la comunicación entre procesos; por ejemplo, al supervisar mensajes de ventana hacia y desde los controles. Estos proveedores del lado cliente a veces se denominan servidores proxy.
Windows Vista proporciona proveedores para controles Win32 y Windows Forms estándar. Además, un proveedor de reserva ofrece compatibilidad de Automatización de la interfaz de usuario parcial a cualquier control que no sea atendido por otro proxy o proveedor del lado servidor pero que tenga una implementación de Active Accessibility de Microsoft. Todos estos proveedores se cargan automáticamente y están disponibles para las aplicaciones cliente.
Para más información sobre la compatibilidad con los controles de Win32 y Windows Forms, consulte Compatibilidad de Automatización de la interfaz de usuario con controles estándar.
Las aplicaciones también pueden registrar otros proveedores del lado cliente.
Distribución de proveedores del cliente
Automatización de la interfaz de usuario espera encontrar proveedores del lado cliente en un ensamblado de código administrado. El espacio de nombres de este ensamblado debería tener el mismo nombre que el ensamblado. Por ejemplo, un ensamblado denominado ContosoProxies.dll contendría el espacio de nombres ContosoProxies. En el espacio de nombres, cree una clase UIAutomationClientSideProviders . En la implementación del campo ClientSideProviderDescriptionTable estático, cree una matriz de estructuras ClientSideProviderDescription que describan los proveedores.
Registro y configuración de proveedores de lado de cliente
Los proveedores del lado cliente de una biblioteca de vínculos dinámicos (DLL) se cargan mediante una llamada a RegisterClientSideProviderAssembly. No es necesario realizar ninguna acción por una aplicación cliente para usar los proveedores.
Los proveedores implementados en el propio código del cliente se registran mediante RegisterClientSideProviders. Este método toma como argumento una matriz de estructuras ClientSideProviderDescription y cada una de ellas especifica las siguientes propiedades:
Una función de devolución de llamada que crea el objeto de proveedor.
El nombre de clase de los controles que suministrará el proveedor.
El nombre de la imagen de la aplicación (normalmente el nombre completo del archivo ejecutable) que suministrará el proveedor.
Marcas que rigen la manera en que el nombre de clase se compara con las clases de ventana que se encuentran en la aplicación de destino.
Los dos últimos parámetros son opcionales. El cliente puede especificar el nombre de la imagen de la aplicación de destino cuando quiera usar diferentes proveedores para distintas aplicaciones. Por ejemplo, el cliente puede usar un proveedor para un control de vista de lista de Win32 de una aplicación conocida que admita el patrón de vista múltiple y otro para un control similar de otra aplicación conocida que no lo hace.