アクティブなアクセシビリティ API の呼び出し
Microsoft Active Accessibility は、クライアントとサーバーの両方にアプリケーション プログラミング インターフェイス (API) を提供します。 ほとんどが Microsoft Active Accessibility ダイナミック リンク ライブラリ (Oleacc.dll) に実装されていますが、 NotifyWinEvent、 SetWinEventHook、 UnhookWinEvent は、Microsoft Windows オペレーティング システムのコア コンポーネントである user32.dll に実装されています。
Windows 95 または Microsoft Windows NT 4.0 を実行しているコンピューターには、Oleacc.dllと正しいバージョンのuser32.dllがインストールされていません。これは、Microsoft Active Accessibility が Windows の後続のバージョンに段階的に組み込まれたためです。 その結果、これらのプラットフォームで実行されるアプリケーションは、インポート ライブラリに依存するのではなく 、LoadLibrary 関数を使用して実行時にOleacc.dllに明示的にリンクします。 Active Accessibility 1.3 では、Windows 95 と Microsoft Windows NT 4.0 がサポートされています。 以前のバージョンの Windows は、Microsoft Active Accessibility ではサポートされていません。
サーバー アプリケーションでは 、GetProcAddress 関数を使用して Microsoft Active Accessibility 関数のアドレスを取得し、関数ポインターを介して呼び出しを行います。 Oleacc.dllで実装された関数を呼び出す場合、サーバー アプリケーションは GetProcAddress の呼び出しで LoadLibrary から返されたハンドルを使用します。 user32.dllで定義されている関数を呼び出す場合、サーバー アプリケーションは"USER32" を指定して GetModuleHandle を呼び出し、 GetProcAddress の呼び出しで返されたモジュール ハンドルを使用します。
たとえば、アプリケーションで NotifyWinEvent を使用する場合、user32.dllのモジュール ハンドルを使用して GetProcAddress を呼び出して、関数のアドレスを取得します。 呼び出しが成功した場合 (このバージョンの Windows で Microsoft Active Accessibility がサポートされていることを意味します)、アプリケーションは NotifyWinEvent を呼び出しても安全であることを示すフラグを設定します。 GetProcAddress から受信したアドレスは、関数ポインター変数に格納され、コード全体で使用されます。