Méthodes de propriété IADsContainer
Les méthodes de propriété de l’interface IADsContainer obtiennent ou définissent les propriétés décrites dans le tableau suivant. Pour plus d’informations et pour obtenir une discussion générale sur les méthodes de propriété, consultez méthodes de propriété d’interface.
Propriétés
-
Count
-
-
Type d'accès : Lecture seule
-
Type de données de script : long
-
// C++ method syntax HRESULT get_Count( [out] LONG* plCount );
Récupère le nombre d’éléments dans le conteneur. Quand le filtre est défini, Count retourne uniquement le nombre d’éléments filtrés.
-
-
Filter
-
-
Type d’accès : lecture/écriture
-
Type de données de script : variante
-
// C++ method syntax HRESULT get_Filter( [out] VARIANT* pvFilter ); HRESULT put_Filter( [in] VARIANT vFilter );
Récupère ou définit le filtre utilisé pour sélectionner des classes d’objet dans une énumération donnée. Il s’agit d’un tableau variant, dont chaque élément est le nom d’une classe de schéma. Si le filtre n’est pas défini ou n’est pas défini sur vide, tous les objets de toutes les classes sont récupérés par l’énumérateur.
-
-
Indicateurs
-
-
Type d’accès : lecture/écriture
-
Type de données de script : variante
-
// C++ method syntax HRESULT get_Hints( [out] VARIANT* pvHints ); HRESULT put_Hints( [in] VARIANT vHints );
Tableau de variant de chaînes BSTR . Chaque élément identifie le nom d’une propriété trouvée dans la définition de schéma. Le paramètre vHints permet au client d’indiquer les attributs à charger pour chaque objet énuméré. Ces données peuvent être utilisées pour optimiser l’accès réseau. L’implémentation exacte, toutefois, est spécifique au fournisseur et n’est actuellement pas utilisée par le fournisseur Winnt.
-
Remarques
Les processus d’énumération sous IADsContainer :: obten _ _ NewEnum et IADsContainer :: obtient _ Count sont effectués sur les objets contenus dans le cache. Lorsqu’un conteneur contient un grand nombre d’objets, les performances peuvent être affectées. Pour améliorer les performances, désactivez le cache, configurez une taille de page appropriée et utilisez l’interface IDirectorySearch . Pour cette raison, la propriété obtenir le _ nombre n’est pas prise en charge dans le fournisseur LDAP Microsoft.
Exemples
l’exemple de code Visual Basic suivant montre comment les méthodes de propriété de IADsContainer peuvent être utilisées.
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
L’exemple de code C++ suivant montre comment les méthodes de propriété de IADsContainer peuvent être utilisées. Par souci de concision, la vérification des erreurs est omise.
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);
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows Vista |
| Serveur minimal pris en charge |
Windows Server 2008 |
| En-tête |
|
| DLL |
|
| IID |
IID _ IADsContainer est défini en tant que 001677D0-FD16-11CE-ABC4-02608C9E7553 |