Compartilhar via


Chamando APIs de Acessibilidade Ativa

O Microsoft Active Accessibility fornece APIs (interfaces de programação de aplicativos) para clientes e servidores. A maioria é implementada na biblioteca de vínculo dinâmico de Acessibilidade Ativa da Microsoft, Oleacc.dll, mas NotifyWinEvent, SetWinEventHook e UnhookWinEvent são implementados no user32.dll, que é um componente principal do sistema operacional Microsoft Windows.

Os computadores que executam o Windows 95 ou o Microsoft Windows NT 4.0 não têm Oleacc.dll e a versão correta do user32.dll instalada porque a Acessibilidade Ativa da Microsoft foi incorporada em estágios para versões bem-sucedidas do Windows. Como resultado, os aplicativos executados nessas plataformas vinculam explicitamente a Oleacc.dll em tempo de execução usando a função LoadLibrary em vez de depender de bibliotecas de importação. O Active Accessibility 1.3 dá suporte ao Windows 95 e ao Microsoft Windows NT 4.0. Versões anteriores do Windows não têm suporte da Acessibilidade Ativa da Microsoft.

Os aplicativos de servidor usam a função GetProcAddress para recuperar o endereço de uma função de Acessibilidade Ativa da Microsoft e, em seguida, fazer a chamada por meio de um ponteiro de função. Se chamar uma função que foi implementada no Oleacc.dll, os aplicativos de servidor usarão o identificador retornado de LoadLibrary na chamada para GetProcAddress. Se chamar uma função definida em user32.dll, os aplicativos de servidor chamarão GetModuleHandle especificando "USER32" e usarão o identificador de módulo retornado na chamada para GetProcAddress.

Por exemplo, se um aplicativo usa NotifyWinEvent, ele chama GetProcAddress usando o identificador de módulo de user32.dll para obter o endereço da função. Se a chamada for bem-sucedida (o que significa que essa versão do Windows dá suporte à Acessibilidade Ativa da Microsoft), o aplicativo define um sinalizador que indica que é seguro chamar NotifyWinEvent. O endereço recebido de GetProcAddress é armazenado em uma variável de ponteiro de função e usado em todo o código.