次の方法で共有


QueryService を使用して IAccessible オブジェクトのネイティブ インターフェイスを取得する

サーバー開発者は、この手法を使用して、 IAccessible オブジェクトのカスタム ドキュメント ノードへのポインターを公開できます。 これは、 IAccessible オブジェクトを既に公開していることを前提としています。 この手法により、クライアントは IAccessible オブジェクトからカスタム オブジェクトを取得できます。

IAccessible (サーバー) のネイティブ オブジェクト モデルを公開するには

  1. IAccessible オブジェクトで IServiceProvider インターフェイスのサポートを追加します。
  2. IAccessible オブジェクトからカスタム インターフェイスを取得する機能を表す GUID を定義します。 これはサービス ID と呼ばれます。 GUIDGEN.EXEを使用してサービス ID を生成したり、カスタム インターフェイスがある場合はインターフェイス ID を再利用したりできます。
  3. IServiceProvider::QueryService メソッドを実装して、この手順で前に定義したサービス ID を使用して呼び出されたときにカスタム インターフェイスへのポインターを返すようにします。 QueryService は、他のすべてのサービス ID 値に 対して NULL を 返す必要があります。
  4. クライアントがサービス ID を使用できるように、サービス ID を発行します。

クライアントはこの機能を使用して、 IAccessible オブジェクトからカスタム オブジェクトへのポインターを取得できます。

IAccessible (クライアント) からカスタム オブジェクトへのポインターを取得するには

  1. IServiceProvider インターフェイス ポインターを取得するには、IAccessible インターフェイス ポインターで QueryInterface(IID_IServiceProvider) を呼び出します。
  2. 発行されたサービス ID で IServiceProvider::QueryService を呼び出して、 IAccessible のカスタム オブジェクトへのポインターを取得します。
  3. 不要になった場合は、 IServiceProvider インターフェイスを解放します。

プロセス間で使用できるようにするには、返されたインターフェイスをコンポーネント オブジェクト モデル (COM) に登録する必要がある場合があります。

この手法は、Microsoft Internet エクスプローラー 4.0 以降で使用されます。 これにより、クライアントは IAccessible オブジェクトに対応する IHTMLElement2 インターフェイス ポインターを取得できます。