Partager via


Appel des API d’accessibilité active

Microsoft Active Accessibility fournit des interfaces de programmation d’applications (API) pour les clients et les serveurs. La plupart sont implémentés dans la bibliothèque de liens dynamiques Microsoft Active Accessibility, Oleacc.dll, mais NotifyWinEvent, SetWinEventHook et UnhookWinEvent sont implémentés dans user32.dll, qui est un composant principal du système d’exploitation Microsoft Windows.

Les ordinateurs exécutant Windows 95 ou Microsoft Windows NT 4.0 n’ont pas de Oleacc.dll et la version correcte de user32.dll installée, car Microsoft Active Accessibility a été incorporé par étapes dans les versions suivantes de Windows. Par conséquent, les applications qui s’exécutent sur ces plateformes se lient explicitement à Oleacc.dll au moment de l’exécution à l’aide de la fonction LoadLibrary au lieu de s’appuyer sur des bibliothèques d’importation. Active Accessibility 1.3 prend en charge Windows 95 et Microsoft Windows NT 4.0. Les versions antérieures de Windows ne sont pas prises en charge par Microsoft Active Accessibility.

Les applications serveur utilisent la fonction GetProcAddress pour récupérer l’adresse d’une fonction Microsoft Active Accessibility, puis effectuer l’appel via un pointeur de fonction. Si vous appelez une fonction implémentée dans Oleacc.dll, les applications serveur utilisent le handle retourné par LoadLibrary dans l’appel à GetProcAddress. Si vous appelez une fonction définie dans user32.dll, les applications serveur appellent GetModuleHandle en spécifiant « USER32 » et utilisent le handle de module retourné dans l’appel à GetProcAddress.

Par exemple, si une application utilise NotifyWinEvent, elle appelle GetProcAddress à l’aide du handle de module de user32.dll pour obtenir l’adresse de la fonction. Si l’appel réussit (ce qui signifie que cette version de Windows prend en charge Microsoft Active Accessibility), l’application définit un indicateur qui indique qu’il est sûr d’appeler NotifyWinEvent. L’adresse reçue de GetProcAddress est stockée dans une variable de pointeur de fonction et utilisée dans tout le code.