Methoden der IADsContainer-Eigenschaft

Die Eigenschaftenmethoden der IADsContainer-Schnittstelle rufen die in der folgenden Tabelle beschriebenen Eigenschaften ab oder legen sie fest. Weitere Informationen und eine allgemeine Erläuterung zu Eigenschaftenmethoden finden Sie unter Schnittstelleneigenschaftenmethoden.

Eigenschaften

Anzahl

Ruft die Anzahl der Elemente im Container ab. Wenn Filter festgelegt ist, gibt Count nur die Anzahl gefilterter Elemente zurück.

Zugriffstyp: Schreibgeschützt

Skriptdatentyp: LONG

// C++ method syntax
HRESULT get_Count(
  [out] LONG* plCount
);

Filter

Ruft den Filter ab, der zum Auswählen von Objektklassen in einer bestimmten Enumeration verwendet wird, oder legt diesen fest. Dies ist ein Variantenarray, wobei jedes Element der Name einer Schemaklasse ist. Wenn Filter nicht auf leer festgelegt oder festgelegt ist, werden alle Objekte aller Klassen vom Enumerator abgerufen.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: VARIANT

// C++ method syntax
HRESULT get_Filter(
  [out] VARIANT* pvFilter
);
HRESULT put_Filter(
  [in] VARIANT vFilter
);

Hinweise

Ein Variantenarray von BSTR-Zeichenfolgen . Jedes Element identifiziert den Namen einer Eigenschaft in der Schemadefinition. Mit dem vHints-Parameter kann der Client angeben, welche Attribute für jedes enumerierte Objekt geladen werden sollen. Diese Daten können verwendet werden, um den Netzwerkzugriff zu optimieren. Die genaue Implementierung ist jedoch anbieterspezifisch und wird derzeit nicht vom WinNT-Anbieter verwendet.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: VARIANT

// C++ method syntax
HRESULT get_Hints(
  [out] VARIANT* pvHints
);
HRESULT put_Hints(
  [in] VARIANT vHints
);

Bemerkungen

Die Enumerationsprozesse unter IADsContainer::get__NewEnum und IADsContainer::get_Count werden für die enthaltenen Objekte im Cache ausgeführt. Wenn ein Container eine große Anzahl von Objekten enthält, kann die Leistung beeinträchtigt werden. Um die Leistung zu verbessern, deaktivieren Sie den Cache, richten Sie eine geeignete Seitengröße ein, und verwenden Sie die IDirectorySearch-Schnittstelle . Aus diesem Grund wird die eigenschaft get_Count im Microsoft LDAP-Anbieter nicht unterstützt.

Beispiele

Das folgende Visual Basic-Codebeispiel zeigt, wie Eigenschaftenmethoden von IADsContainer verwendet werden können.

Dim cont As IADsContainer
Dim usr As IADsUser

On Error GoTo Cleanup
 
Set cont = GetObject("LDAP://OU=Sales, DC=Fabrikam, DC=COM")
cont.Hints = Array("adminDescription") ' Load this attribute. Optional.
Debug.Print cont.Get("adminDescription")

' Filter users.
cont.Filter = Array("user")

For Each usr In cont
  Debug.Print usr.Name
Next

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

Das folgende C++-Codebeispiel zeigt, wie die Eigenschaftenmethoden von IADsContainer verwendet werden können. Aus Gründen der Kürze wird die Fehlerüberprüfung ausgelassen.

IADsContainer *pCont;
IADs *pChild;
IADs *pADs;
 
HRESULT hr = ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=COM",
                          IID_IADsContainer, 
                          (void**)&pCont);

if(FAILED(hr)){goto Cleanup;}

LPWSTR pszArray[] = { L"adminDescription" };
DWORD dwNumber = sizeof(pszArray)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszArray, dwNumber, &var);
if(FAILED(hr)){goto Cleanup;}

hr = pCont->put_Hints( var );
if(FAILED(hr)){goto Cleanup;}

VariantClear(&var);
 
hr = pCont->QueryInterface(IID_IADs, (void**)pADs);
if(FAILED(hr)){goto Cleanup;}
 
hr = pADs->Get(CComBSTR("adminDescription"), var);
 
LPWSTR pszUsers = {L"user"};
dwNumber = sizeof(pszUsers)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr(pszUsers, dwNumber, &var);
hr = pCont->put_Filter( var );
VariantClear(&var);
 
// Enumerate user objects in the container.
IEnumVARIANT *pEnum = NULL;
hr = ADsBuildEnumerator(pCont, &pEnum);
pCont->Release();    // Not required when users are enumerated.
 
ULONG lFetch;
VariantClear(&var);
while (SUCCEEDED(ADsEnumerateNext(pEnum, 1, &var, &lFetch)) && 
                      lFetch==1) {
    hr = V_DISPATCH(&var)->QueryInterface(IID_IADs, (void**)&pChild)
    if(SUCCEEDED(hr)) {
        BSTR bstrName;
        pChild->get_Name(&bstrName);
        printf("  %S\n", bstrName);
        SysFreeString(bstrName);
        pChild->Release();
    }
    VariantClear(&var);
}
Cleanup:
    if(pADs)
        pADs->Release();

    if(pCont)
        pCont->Release();

    if(pChild)
        pChild->Release();

    VariantClear(&var);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
WindowsServer 2008
Header
Iads.h
DLL
Activeds.dll
IID
IID_IADsContainer ist definiert als 001677D0-FD16-11CE-ABC4-02608C9E7553

Weitere Informationen

IADsContainer

Idirectorysearch