QueryService を使用して IAccessible オブジェクトのネイティブ インターフェイスを取得する
サーバー開発者は、この手法を使用して、 IAccessible オブジェクトのカスタム ドキュメント ノードへのポインターを公開できます。 これは、 IAccessible オブジェクトを既に公開していることを前提としています。 この手法により、クライアントは IAccessible オブジェクトからカスタム オブジェクトを取得できます。
IAccessible (サーバー) のネイティブ オブジェクト モデルを公開するには
- IAccessible オブジェクトで IServiceProvider インターフェイスのサポートを追加します。
- IAccessible オブジェクトからカスタム インターフェイスを取得する機能を表す GUID を定義します。 これはサービス ID と呼ばれます。 GUIDGEN.EXEを使用してサービス ID を生成したり、カスタム インターフェイスがある場合はインターフェイス ID を再利用したりできます。
- IServiceProvider::QueryService メソッドを実装して、この手順で前に定義したサービス ID を使用して呼び出されたときにカスタム インターフェイスへのポインターを返すようにします。 QueryService は、他のすべてのサービス ID 値に 対して NULL を 返す必要があります。
- クライアントがサービス ID を使用できるように、サービス ID を発行します。
クライアントはこの機能を使用して、 IAccessible オブジェクトからカスタム オブジェクトへのポインターを取得できます。
IAccessible (クライアント) からカスタム オブジェクトへのポインターを取得するには
- IServiceProvider インターフェイス ポインターを取得するには、IAccessible インターフェイス ポインターで QueryInterface(IID_IServiceProvider) を呼び出します。
- 発行されたサービス ID で IServiceProvider::QueryService を呼び出して、 IAccessible のカスタム オブジェクトへのポインターを取得します。
- 不要になった場合は、 IServiceProvider インターフェイスを解放します。
プロセス間で使用できるようにするには、返されたインターフェイスをコンポーネント オブジェクト モデル (COM) に登録する必要がある場合があります。
この手法は、Microsoft Internet エクスプローラー 4.0 以降で使用されます。 これにより、クライアントは IAccessible オブジェクトに対応する IHTMLElement2 インターフェイス ポインターを取得できます。