Interfaces IAD et IDirectoryObject
Les clients ADSI gèrent et manipulent des objets de service d’annuaire à l’aide de l’une des deux interfaces COM : IADs ou IDirectoryObject. IADs est une interface IDispatch destinée à être utilisée par les clients à liaison tardive tels que ceux écrits dans Microsoft Visual Basic, Java et divers langages de script. IDirectoryObject est une interface de table virtuelle qui fournit un accès direct aux objets par les premiers clients liés, tels que ceux écrits en C et C++.
Chaque objet ADSI doit implémenter à la fois des IAD et IDirectoryObject. Les clients ADSI écrits dans des langages tels que C ou C++, qui peuvent accéder directement aux tables virtuelles, peuvent utiliser l’une ou l’autre interface, mais pas les deux dans la même application. Les clients ADSI écrits en Visual Basic ou Java sont limités à l’utilisation d’IAD.
L’interface IADs permet aux clients à liaison tardive de tirer parti des fonctionnalités de nettoyage inhérentes au modèle objet ADSI. Parmi ces fonctionnalités figure le cache de propriétés, qui permet aux clients de lire et d’écrire des propriétés sans passer par le câble pour chaque appel. En outre, les applications clientes utilisent des bibliothèques de contrôle ActiveX et d’interface utilisateur puissantes et un style de programmation plus simple. En retour, les clients à liaison tardive doivent utiliser le type de données VARIANT , ce qui empêche l’utilisation des types de données natifs plus riches fournis par ADSI.
L’interface IDirectoryObject permet aux premiers clients liés de tirer pleinement parti des types de données de service d’annuaire natifs au détriment d’un léger avantage en matière de performances de l’utilisation du cache de propriétés. En retour, l’interface IDirectoryObject fournit un accès direct et direct aux propriétés d’objet via une requête unique, plutôt que par le biais d’appels get et put individuels.