Condividi tramite


Metodo IADsContainer::get__NewEnum (iads.h)

Il metodo IADsContainer::get__NewEnum Recupera un oggetto enumeratore per il contenitore. L'oggetto enumeratore implementa l'interfaccia IEnumVARIANT per enumerare gli elementi figlio dell'oggetto contenitore.

Sintassi

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

Parametri

[out] retval

Puntatore a un puntatore IUnknown che riceve l'oggetto enumeratore. Il chiamante deve rilasciare questa interfaccia quando non è più necessaria.

Valore restituito

Questo metodo supporta i valori restituiti standard, inclusi S_OK per un'operazione riuscita. Per altre informazioni sui codici di errore, vedere Codici di errore ADSI.

Commenti

Esistono due caratteri di sottolineatura ("__") nel nome della funzione tra "get" e "NewEnum".

In Visual Basic usare ForEach... istruzione per richiamare il metodo IADsContainer::get__NewEnum in modo implicito.

In C/C++usare le funzioni helpererator ADsBuildEnumerator, ADsEnumerateNext e AdsFreeEnumerator .

Esempio

Nell'esempio di codice seguente viene illustrato come enumerare oggetti figlio in un contenitore.

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

Nell'esempio di codice seguente viene illustrato come enumerare l'oggetto contenuto in un contenitore.

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();

Requisiti

   
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione iads.h
DLL Activeds.dll

Vedi anche

ADsBuildEnumerator

ADsEnumerateNext

AdsFreeEnumerator

IADsContainer

IEnumVARIANT

IUnknown