ADSI で拡張機能を統合する方法
次のガイドラインでは、ADSI が拡張機能とどのように相互作用するかについて説明します。
- 何かが ADSI ディレクトリ オブジェクトにバインドされます。 たとえば、"LDAP://CN=JeffSmith,OU=Sales,DC=Fabrikam,DC=COM" などです。
- ADSI は、オブジェクトがユーザー クラスにあることを識別します。
- ADSI は、レジストリで検索を実行し、ユーザーの拡張機能 CLSID を識別します。 ADSI はこのデータをキャッシュしていることに注意してください。
- IID_IMyExtension の QueryInterface メソッドが呼び出されます。 ADSI は、ユーザー オブジェクトに関連するインターフェイスを独自のインターフェイスから検索し、次に拡張インターフェイスを検索します。
- 一致するものが見つかった場合、ADSI は IID_IMyExtension をサポートするコンポーネントのインスタンスを作成し、拡張機能のの QueryInterface を呼び出します。 結果のインターフェイスが返されます。
- ユーザーはこのインターフェイスを使用してインターフェイス メソッドを呼び出します。
- 次に、クライアントは別のコンポーネントにある IID_IYourExtension の QueryInterface を呼び出します。 このコンポーネントは、この QueryInterface 呼び出しを ADSI 自体であるアグリゲーターの IUnknown インターフェイスに委任します。
- 再び、ADSI はインターフェイスを検索し、コンポーネント インスタンスを作成します。