Partager via


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.