Share via


IADsContainer::get__NewEnum méthode (iads.h)

La méthode IADsContainer::get__NewEnum Récupère un objet énumérateur pour le conteneur. L’objet énumérateur implémente l’interface IEnumVARIANT pour énumérer les enfants de l’objet conteneur.

Syntaxe

HRESULT get__NewEnum(
  [out] IUnknown **retval
);

Paramètres

[out] retval

Pointeur vers un pointeur IUnknown qui reçoit l’objet énumérateur. L’appelant doit libérer cette interface quand elle n’est plus nécessaire.

Valeur retournée

Cette méthode prend en charge les valeurs de retour standard, y compris les S_OK pour une opération réussie. Pour plus d’informations sur les codes d’erreur, consultez Codes d’erreur ADSI.

Notes

Le nom de la fonction comporte deux traits de soulignement (« __ ») entre « get » et « NewEnum ».

En Visual Basic, utilisez ForEach... pour appeler implicitement la méthode IADsContainer::get__NewEnum .

En C/C++, utilisez les fonctions d’assistance ADsBuildEnumerator, ADsEnumerateNext et AdsFreeEnumerator .

Exemples

L’exemple de code suivant montre comment énumérer des objets enfants dans un conteneur.

Dim cont As IADsContainer
On Error GoTo Cleanup

Set cont = GetObject("LDAP://OU=Sales,DC=Fabrikam,DC=com")
For Each obj In cont
  Debug.Print obj.Name
Next

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

L’exemple de code suivant montre comment énumérer l’objet contenu dans un conteneur.

IEnumVARIANT *pEnum = NULL;
IADsContainer *pCont = NULL;
LPUNKNOWN pUnk = NULL;
VARIANT var;
IDispatch *pDisp = NULL;
ulong lFetch;
IADs *pADs = NULL;
 
// In this sample, skip error checking.
ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=COM", 
                        IID_IADsContainer, (void**) &pCont);
pCont->get__NewEnum(&pUnk);
pCont->Release();
 
pUnk->QueryInterface(IID_IEnumVARIANT, (void**) &pEnum);
pUnk->Release();
 
// Enumerate. 
HRESULT hr = pEnum->Next(1, &var, &lFetch);
while(SUCCEEDED(hr) && lFetch > 0)
{
    if (lFetch == 1)
    {
        BSTR bstr;

        pDisp = V_DISPATCH(&var);
        pDisp->QueryInterface(IID_IADs, (void**)&pADs); 
        pDisp->Release();
        hr = pADs->get_Name(&bstr);
        if(SUCCEEDED(hr))
        {
            SysFreeString(bstr);
        }

        pADs->Release();
    }

    VariantClear(&var);
    hr = pEnum->Next(1, &var, &lFetch);
};

 
pEnum->Release();

Configuration requise

   
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête iads.h
DLL Activeds.dll

Voir aussi

ADsBuildEnumerator

ADsEnumerateNext

AdsFreeEnumerator

IADsContainer

IEnumVARIANT

IUnknown