IADsContainer, méthodes de propriété
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 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. Lorsque Filter 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 : VARIANT
-
// 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’objets dans une énumération donnée. Il s’agit d’un tableau de variantes, dont chaque élément est le nom d’une classe de schéma. Si Filter n’est pas défini ou 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 : VARIANT
-
// C++ method syntax HRESULT get_Hints( [out] VARIANT* pvHints ); HRESULT put_Hints( [in] VARIANT vHints );
Tableau de variantes 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. Toutefois, l’implémentation exacte est spécifique au fournisseur et n’est actuellement pas utilisée par le fournisseur WinNT.
-
Notes
Les processus d’énumération sous IADsContainer::get__NewEnum et IADsContainer::get_Count sont exécuté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é get_Count n’est pas prise en charge dans le fournisseur MICROSOFT LDAP.
Exemples
L’exemple de code Visual Basic suivant montre comment les méthodes de propriété d’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é d’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);
Spécifications
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 comme 001677D0-FD16-11CE-ABC4-02608C9E7553 |