Compartir a través de


Llamar a las API de accesibilidad activa

La accesibilidad activa de Microsoft proporciona interfaces de programación de aplicaciones (API) para clientes y servidores. La mayoría se implementan en la biblioteca de vínculos dinámicos de accesibilidad activa de Microsoft, Oleacc.dll, pero NotifyWinEvent, SetWinEventHook y UnhookWinEvent se implementan en user32.dll, que es un componente principal del sistema operativo Microsoft Windows.

Los equipos que ejecutan Windows 95 o Microsoft Windows NT 4.0 no tienen Oleacc.dll y la versión correcta de user32.dll instalada porque microsoft Active Accessibility se incorporó en fases en versiones correctas de Windows. Como resultado, las aplicaciones que se ejecutan en estas plataformas se vinculan explícitamente a Oleacc.dll en tiempo de ejecución mediante la función LoadLibrary en lugar de confiar en bibliotecas de importación. Active Accessibility 1.3 admite Windows 95 y Microsoft Windows NT 4.0. Las versiones anteriores de Windows no son compatibles con la accesibilidad activa de Microsoft.

Las aplicaciones de servidor usan la función GetProcAddress para recuperar la dirección de una función de accesibilidad activa de Microsoft y, a continuación, realizar la llamada a través de un puntero de función. Si llama a una función que se implementó en Oleacc.dll, las aplicaciones de servidor usan el identificador devuelto desde LoadLibrary en la llamada a GetProcAddress. Si llama a una función definida en user32.dll, las aplicaciones de servidor llaman a GetModuleHandle especificando "USER32" y usan el identificador de módulo devuelto en la llamada a GetProcAddress.

Por ejemplo, si una aplicación usa NotifyWinEvent, llama a GetProcAddress mediante el identificador de módulo de user32.dll para obtener la dirección de la función. Si la llamada se realiza correctamente (lo que significa que esta versión de Windows admite la accesibilidad activa de Microsoft), la aplicación establece una marca que indica que es seguro llamar a NotifyWinEvent. La dirección recibida de GetProcAddress se almacena en una variable de puntero de función y se usa en todo el código.