ADsBuildEnumerator, fonction (adshlp.h)
La fonction ADsBuildEnumerator crée un objet d’énumérateur pour l’objet conteneur ADSI spécifié.
Syntaxe
HRESULT ADsBuildEnumerator(
[in] IADsContainer *pADsContainer,
[out] IEnumVARIANT **ppEnumVariant
);
Paramètres
[in] pADsContainer
Type : IADsContainer*
Pointeur vers l’interface IADsContainer de l’objet à énumérer.
[out] ppEnumVariant
Type : IEnumVARIANT**
Pointeur vers un pointeur IEnumVARIANT pointeur d’interface qui reçoit l’objet énumérateur créé pour l’objet conteneur spécifié.
Valeur de retour
Type : HRESULT
Cette méthode prend en charge les valeurs de retour HRESULT standard, y compris les S_OK pour une opération réussie. Pour plus d’informations sur les autres valeurs de retour, consultez codes d’erreur ADSI.
Remarques
La fonction d’assistance ADsBuildEnumerator wrappe les appels utilisés pour récupérer l’interface IEnumVARIANT sur l’objet énumérateur.
Pour énumérer les objets disponibles dans un conteneur
- Appelez la fonction ADsBuildEnumerator pour créer un objet IEnumVARIANT qui énumère le contenu du conteneur.
- Appelez la fonction ADsEnumerateNext autant de fois que nécessaire pour récupérer les éléments de l’objet énumérateur.
- Appelez la fonction ADSFreeEnumerator pour libérer l’objet énumérateur lorsqu’il n’est plus nécessaire.
Exemples
L’exemple de code suivant montre comment les ADsBuildEnumerator, ADsEnumerateNextet fonctions ADSFreeEnumerator peuvent être utilisées pour énumérer le contenu d’un conteneur.
HRESULT PrintAllObjects(IADsContainer* pContainer)
{
HRESULT hr;
if(NULL == pContainer)
{
return E_INVALIDARG;
}
IEnumVARIANT *pEnum = NULL;
// Create an enumerator object in the container.
hr = ADsBuildEnumerator(pContainer, &pEnum);
if(SUCCEEDED(hr))
{
VARIANT var;
ULONG ulFetched = 0L;
// Get the next contained object.
while(S_OK == (hr = ADsEnumerateNext(pEnum, 1, &var, &ulFetched)) && (ulFetched > 0))
{
IADs *pADs;
// Print the object
hr = V_DISPATCH(&var)->QueryInterface(IID_IADs, (void**)&pADs);
if(SUCCEEDED(hr))
{
CComBSTR sbstr;
IADsContainer *pChildContainer;
hr = pADs->get_Name(&sbstr);
if(SUCCEEDED(hr))
{
wprintf(sbstr);
wprintf(L"\n");
}
hr = pADs->QueryInterface(IID_IADsContainer, (void**)&pChildContainer);
if(SUCCEEDED(hr))
{
// If the retrieved object is a container, recursively print its contents as well.
PrintAllObjects(pChildContainer);
}
pADs->Release();
}
// Release the VARIANT.
VariantClear(&var);
}
ADsFreeEnumerator(pEnum);
}
return hr;
}
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
serveur minimum pris en charge | Windows Server 2008 |
plateforme cible | Windows |
d’en-tête | adshlp.h |
bibliothèque | Activeds.lib |
DLL | Activeds.dll |