Comment ADSI intègre les extensions
Les instructions suivantes décrivent comment ADSI interagit avec les extensions :
- Quelque chose est lié à un objet d’annuaire ADSI. Par exemple, « LDAP://CN=JeffSmith,OU=Sales,DC=Fabrikam,DC=COM ».
- ADSI identifie que l’objet se trouve dans la classe user .
- ADSI effectue une recherche dans le registre et identifie les CLSID d’extension pour l’utilisateur. N’oubliez pas qu’ADSI met en cache ces données.
- Quelque chose appelle la méthode QueryInterface pour IID_IMyExtension. ADSI recherche les interfaces associées à l’objet utilisateur , en commençant par ses propres interfaces, puis en examinant les interfaces d’extension.
- Si une correspondance est trouvée, ADSI crée une instance du composant qui prend en charge IID_IMyExtension et appelle QueryInterface pour l’extension. L’interface résultante est retournée.
- L’utilisateur utilise cette interface pour appeler les méthodes d’interface.
- Ensuite, le client appelle QueryInterface pour IID_IYourExtension, qui se trouve dans un autre composant. Ce composant délègue cet appel QueryInterface à l’interface IUnknown de l’agrégateur, qui se trouve être ADSI lui-même.
- Là encore, ADSI recherche les interfaces et crée le composant instance.