IAccessible Proxies
Los servidores proxy IAccessible proporcionan información de accesibilidad predeterminada para los elementos estándar de la interfaz de usuario: controles USER, menús USER y controles comunes de COMCTL y COMCTL32. Esta compatibilidad predeterminada se expone a través de objetos IAccessible creados por Oleacc.dll y ofrece compatibilidad con accesibilidad activa de Microsoft sin trabajo de desarrollo de servidores adicional. A continuación, el servidor puede usar la API de anotación dinámica para modificar gran parte de la información expuesta por Oleacc.dll, pero no tiene control completo.
Creación de un proxy
Para determinar si un elemento de interfaz de usuario admite de forma nativa la interfaz IAccessible , Oleacc.dll lo envía un mensaje de WM_GETOBJECT . Un valor devuelto distinto de cero significa que el elemento admite de forma nativa la accesibilidad activa de Microsoft y proporciona su propia compatibilidad con IAccessible . Sin embargo, si el valor devuelto es cero, Oleacc.dll proporciona un objeto proxy para el elemento de interfaz de usuario e intenta devolver información significativa en su nombre. Para obtener más información sobre WM_GETOBJECT, vea Cómo funciona WM_GETOBJECT.
Qué información se expone
Oleacc.dll usa el nombre de clase de Windows del elemento de interfaz de usuario para determinar qué información se debe exponer para cada una de sus propiedades IAccessible y cómo recopilar esa información. Por ejemplo, Oleacc.dll llama a la función GetWindowText para recuperar la propiedad Name de un botón de inserción estándar, pero llama a esta misma función para recuperar la propiedad Value para un control de edición estándar. En efecto, Oleacc.dll asigna cada método IAccessible a una llamada de función o mensaje específica del control o mensaje de Microsoft Win32 adecuado. Mediante este uso de mayúsculas y minúsculas especiales basadas en nombres de clase, puede devolver información significativa a través de servidores proxy IAccessible sin ninguna compatibilidad con accesibilidad activa de Microsoft en el servidor.
Las aplicaciones creadas con elementos de interfaz de usuario estándar suelen obtener compatibilidad completa con la accesibilidad activa de Microsoft sin trabajo de desarrollo adicional. Las excepciones a esta regla son controles que se han subclase, que no almacenan sus propias cadenas (ausencia del estilo HASSTRINGS ) o que son dibujadas por el propietario. En estos casos, Oleacc.dll no puede recopilar la información que necesita porque la información se almacena fuera del control. Sin embargo, en muchos de estos escenarios, las soluciones establecidas o el uso de anotaciones dinámicas, permiten al servidor cooperar con los servidores proxy proporcionados por Oleacc.dll.
Objetos proxy genéricos
Si Oleacc.dll no reconoce el nombre de clase del elemento de interfaz de usuario, crea un proxy genérico que expone la mayor cantidad de información posible. Como máximo, esto incluye el rectángulo delimitador del objeto, el objeto primario, el nombre (de WM_GETTEXT) y los elementos secundarios de la jerarquía de ventanas.