Verwenden der IADs-Schnittstellen
ADSI: Jedes Element eines Verzeichnisdiensts wird durch ein ADSI-Objekt dargestellt. Dabei handelt es sich um ein Component Object Model-Objekt (COM), das die COM IUnknown-Standardschnittstelle sowie die IDispatch- und IADs-Schnittstellen unterstützt. IADs stellen die grundlegenden Wartungsfunktionen für ADSI-Objekte bereit.
Jedes ADSI-Objekt muss diese Schnittstelle unterstützen, die Für:
- Geben Sie die Objektidentifikation nach Name, Klasse oder ADsPath an.
- Identifizieren Sie den Objektcontainer, der das Erstellen und Löschen von Objekten verwaltet.
- Rufen Sie die Objektschemadefinition ab.
- Laden Sie die Objektattribute in den Eigenschaftencache, und committen Sie Änderungen an den persistenten Verzeichnisspeicher.
- Greifen Sie auf die Objektattributwerte im Eigenschaftencache zu, und ändern Sie sie.
Die IADs-Schnittstelle soll sicherstellen, dass ADSI-Objekte Netzwerkadministratoren und Verzeichnisdienstanbietern eine effiziente und konsistente Darstellung verschiedener zugrunde liegender Verzeichnisdienste bieten.

Die obige Abbildung zeigt ein generisches ADSI-Objekt, das die grundlegenden Schnittstellen IADs, IADsPropertyList, IUnknown, IDirectoryObjectund IDispatchunterstützt. Ein ADSI-Objekt wie dieses verwaltet Daten aus dem Datenspeicher des zugrunde liegenden Verzeichnisdiensts über die unterstützten Schnittstellen. Diese Daten werden als Eigenschaften des -Objekts bezeichnet, und die Routinen, die diese Eigenschaften abrufen und festlegen, werden als Eigenschaftenmethoden bezeichnet. Schreibgeschützte Eigenschaften verfügen über eine Eigenschaftsmethode, die den Eigenschaftswert erhält. Lese-/Schreibeigenschaften verfügen über zwei Methoden: Eine Methode, die den Wert festlegt, und eine Methode, die den Wert erhält. Eigenschaften werden für jedes ADSI-Objekt mithilfe eines Eigenschaftencachesimplementiert. IADs::get _ ADsPath und IADs::p ut _ ADsPath sind Beispiele für Eigenschaftsmethoden. Eigenschaftenmethoden sind für Visual Basic und andere Automation-Clients, die direkte Verweise auf die Eigenschaft ermöglichen, nicht offensichtlich. Visual Basic verweist beispielsweise direkt mithilfe der Object.ADsPath-Syntax auf IADs::ADsPath. Weitere Informationen finden Sie unter Schnittstelleneigenschaftsmethoden.
Darüber hinaus interagiert ein ADSI-Objekt über Methoden mit anderen ADSI-Objekten und direkt mit einem Namespace. Methoden werden sofort ausgeführt. Beispiele für Methoden sind IADs::SetInfo und IADs::GetInfo.
Auf Eigenschaften, Eigenschaftenmethoden und Methoden wird über COM-Standardschnittstellen zugegriffen.
Ein ADSI-Objekt wird durch seinen ADsPath eindeutig identifiziert. Ein ADsPath für den LDAP-Namespace ist beispielsweise "LDAP://MyServer/DC=Fabrikam,DC=COM". Weitere Informationen zu ADsPaths finden Sie unter ADSI-Bindung. Für Programmierer, die mit COM-Monikern vertraut sind, ähnelt dies konzeptionell dem Anzeigenamen des COM-Monikers.
Jedes ADSI-Objekt, das andere ADSI-Objekte enthält, das als ADSI-Containerobjekt bezeichnet wird, unterstützt auch die IADsContainer-Schnittstelle, die Methoden und Eigenschaften bereitstellt, die die Erstellung, Löschung und Enumeration von ADSI-Objekten verwalten, die im -Objekt enthalten sind. Die folgende Abbildung zeigt ein ADSI-Containerobjekt.

Die meisten ADSI-Objekte sind in anderen Objekten enthalten. Das einzige ADSI-Objekt ohne übergeordneten Container ist das ADSI-Namespaceobjekt der obersten Ebene ("ADS:").
Die IADs::SetInfo-Methode für ein Containerobjekt speichert dauerhaft die zwischengespeicherten Eigenschaften des ADSI-Containerobjekts im Speicher zusätzlich zu allen Objekten, die mit der IADsContainer::Create-Methode erstellt wurden. IADsContainer::D elete wirkt sich nicht auf den Eigenschaftencache aus, löscht jedoch das zugrunde liegende Namespaceverzeichniselement, das durch dieses Objekt dargestellt wird.