IADsContainer-Schnittstelle (iads.h)

Die IADsContainer-Schnittstelle ermöglicht es einem ADSI-Containerobjekt, enthaltene ADSI-Objekte zu erstellen, zu löschen und zu verwalten. Containerobjekte stellen hierarchische Verzeichnisstrukturen dar, z. B. in einem Dateisystem, und um die Verzeichnishierarchie zu organisieren.

Sie können die IADsContainer-Schnittstelle verwenden, um enthaltene Objekte aufzählen oder ihren Lebenszyklus zu verwalten. Ein Beispiel wäre es, eine Verzeichnisstruktur rekursiv zu navigieren. Durch Abfragen der IADsContainer-Schnittstelle auf einem ADSI-Objekt können Sie bestimmen, ob das Objekt über untergeordnete Elemente verfügt. Wenn die Schnittstelle nicht unterstützt wird, ist das Objekt ein Blatt. Andernfalls handelt es sich um einen Container. Sie können diesen Prozess für die neu gefundenen Containerobjekte fortsetzen. Um ein Objekt zu erstellen, zu kopieren oder zu löschen, senden Sie die Anforderung an das Containerobjekt, um die Aufgabe auszuführen.

Vererbung

Die IADsContainer-Schnittstelle erbt von der IDispatch-Schnittstelle . IADsContainer verfügt auch über diese Arten von Mitgliedern:

Methoden

Die IADsContainer-Schnittstelle weist diese Methoden auf.

 
IADsContainer::CopyHere

Die IADsContainer::CopyHere-Methode erstellt eine Kopie des angegebenen Verzeichnisobjekts in diesem Container.
IADsContainer::Create

Legt eine Anforderung fest, um ein Verzeichnisobjekt der angegebenen Schemaklasse und einen angegebenen Namen im Container zu erstellen.
IADsContainer::D elete

Löscht ein angegebenes Verzeichnisobjekt aus diesem Container.
IADsContainer::get__NewEnum

Ruft ein Aufzählungsobjekt für den Container ab.
IADsContainer::GetObject

Ruft eine Schnittstelle für ein Verzeichnisobjekt im Container ab.
IADsContainer::MoveHere

Verschiebt ein angegebenes Objekt in den Container, der diese Schnittstelle implementiert.

Hinweise

Um festzustellen, ob ein Objekt ein Container ist, verwenden Sie die IADsClass.Container-Eigenschaft des Objekts.

Wenn Sie eine Bindung an ein Containerobjekt mithilfe seiner GUID (oder SID) herstellen, können Sie nur bestimmte Vorgänge im Containerobjekt ausführen. Diese Vorgänge umfassen die Untersuchung der Objektattribute und aufzählung der unmittelbaren untergeordneten Elemente des Objekts. Diese Vorgänge werden im folgenden Codebeispiel angezeigt.

Dim con As IADsContainer
Dim obj As IADs
Set con = GetObject("LDAP://svr01/<GUID=xxxx>")
con.Filter = Array("user")
For Each item In con
    debug.print item.Name " &  " of " & item.Class
Next

Alle anderen Vorgänge, das heißt, GetObject, Create, Delete, CopyHere und MoveHere werden in der GUID-Darstellung des Containers nicht unterstützt. Beispielsweise führt die letzte Zeile des folgenden Codebeispiels zu einem Fehler.

Dim con As IADsContainer
Dim obj As IADs
Set con = GetObject("LDAP://svr01/<GUID=xxxx>")
Set obj = con.GetObject("user", "CN=Jeff Smith")

Bindung mit GUID (oder SID) ist für geringen Aufwand vorgesehen und somit schnelle Bindungsbindungen, die häufig für objektintrospection verwendet werden.

Wenn Sie diese Methoden des Containers aufrufen möchten, der mit seiner GUID (oder SID) gebunden ist, wird das Objekt mithilfe des unterschiedenen Namens erneut an das Objekt gebunden.

Dim conGUID, conDN As IADsContainer
Dim obj As IADs
Set conGUID = GetObject("LDAP://svr/<GUID=xxxx>")
Set conDN=GetObject("LDAP://svr/" & conGUID.Get("distinguishedName"))
Set obj = conDN.GetObject("user", "CN=Jeff Smith")

Weitere Informationen zur Objekt-GUID-Darstellung finden Sie unter IADs.GUID.

Beispiele

Im folgenden Codebeispiel wird bestimmt, ob ein ADSI-Objekt ein Container ist.

Dim obj As IADs
Dim cls As IADsClass
On Error GoTo Cleanup

Set obj = GetObject("WinNT://myComputer,computer")
Set cls = GetObject(obj.Schema)
If (cls.Container = TRUE) Then
    MsgBox "The object is a container."
Else
    MsgBox "The object is a leaf."
End If

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set obj = Nothing
    Set cls = Nothing

Im folgenden Codebeispiel wird bestimmt, ob ein ADSI-Objekt ein Container ist.

IADs *pADs = NULL;
IADsClass *pCls = NULL;
HRESULT hr = S_OK;
BSTR bstr;

hr = ADsGetObject(L"WinNT://myComputer,computer", IID_IADs, (void**)&pADs);
if(FAILED(hr)){return;}

pADs->get_Schema(&bstr);
hr = ADsGetObject(bstr, IID_IADsClass, (void**)&pCls);
pADs->Release();
SysFreeString(bstr);

if(FAILED(hr)){return;}

VARIANT_BOOL isContainer;
pCls->get_Container(&isContainer);

if(isContainer) 
    printf("Object is a container.\n");
else
    printf("Object is not a container.\n");

pCls->Release();

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h

Weitere Informationen

Erstellen und Löschen von Objekten

IADs::get_GUID

IADsClass::get_Container

IADsNamespaces

IDispatch