Método IADsContainer::get__NewEnum (iads.h)

El método IADsContainer::get__NewEnum recupera un objeto enumerador para el contenedor. El objeto enumerador implementa la interfaz IEnumVARIANT para enumerar los elementos secundarios del objeto contenedor.

Sintaxis

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

Parámetros

[out] retval

Puntero a un puntero IUnknown que recibe el objeto enumerador. El autor de la llamada debe liberar esta interfaz cuando ya no sea necesaria.

Valor devuelto

Este método admite los valores devueltos estándar, incluidos S_OK para una operación correcta. Para obtener más información sobre los códigos de error, consulta Códigos de error ADSI.

Comentarios

Hay dos caracteres de subrayado ("__") en el nombre de la función entre "get" y "NewEnum".

En Visual Basic, use ForEach... instrucción para invocar el método IADsContainer::get__NewEnum implícitamente.

En C/C++, use las funciones auxiliares ADsBuildEnumerator, ADsEnumerateNext y AdsFreeEnumerator .

Ejemplos

En el ejemplo de código siguiente se muestra cómo enumerar objetos secundarios en un contenedor.

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

En el ejemplo de código siguiente se muestra cómo enumerar el objeto contenido en un contenedor.

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

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado iads.h
Archivo DLL Activeds.dll

Consulte también

ADsBuildEnumerator

ADsEnumerateNext

AdsFreeEnumerator

IADsContainer

IEnumVARIANT

IUnknown