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 |