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
-
-
Zugriffstyp: Schreibgeschützt
-
Skriptdatentyp: LONG
-
// C++ method syntax HRESULT get_Count( [out] LONG* plCount );
Ruft die Anzahl der Elemente im Container ab. Wenn Filter festgelegt ist, gibt Count nur die Anzahl gefilterter Elemente zurück.
-
-
Filter
-
-
Zugriffstyp: Lese-/Schreibzugriff
-
Skriptdatentyp: VARIANT
-
// C++ method syntax HRESULT get_Filter( [out] VARIANT* pvFilter ); HRESULT put_Filter( [in] VARIANT vFilter );
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.
-
-
Hinweise
-
-
Zugriffstyp: Lese-/Schreibzugriff
-
Skriptdatentyp: VARIANT
-
// C++ method syntax HRESULT get_Hints( [out] VARIANT* pvHints ); HRESULT put_Hints( [in] VARIANT vHints );
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.
-
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 |
|
DLL |
|
IID |
IID_IADsContainer ist definiert als 001677D0-FD16-11CE-ABC4-02608C9E7553 |