Compartir a través de


Métodos de propiedad IADsContainer

Los métodos de propiedad de la interfaz IADsContainer obtienen o establecen las propiedades descritas en la tabla siguiente. Para obtener más información y una explicación general sobre los métodos de propiedad, vea Métodos de propiedad de interfaz.

Propiedades

Recuento

Recupera el número de elementos del contenedor. Cuando se establece Filter , Count devuelve solo el número de elementos filtrados.

Tipo de acceso: solo lectura

Tipo de datos de scripting: LONG

// C++ method syntax
HRESULT get_Count(
  [out] LONG* plCount
);

Filter

Recupera o establece el filtro utilizado para seleccionar clases de objeto en una enumeración determinada. Se trata de una matriz variant, cada elemento del que es el nombre de una clase de esquema. Si Filter no está establecido o establecido en vacío, el enumerador recupera todos los objetos de todas las clases.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: VARIANT

// C++ method syntax
HRESULT get_Filter(
  [out] VARIANT* pvFilter
);
HRESULT put_Filter(
  [in] VARIANT vFilter
);

Sugerencias

Matriz variante de cadenas BSTR . Cada elemento identifica el nombre de una propiedad que se encuentra en la definición de esquema. El parámetro vHints permite al cliente indicar qué atributos se van a cargar para cada objeto enumerado. Estos datos se pueden usar para optimizar el acceso a la red. Sin embargo, la implementación exacta es específica del proveedor y actualmente no la usa el proveedor winNT.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: VARIANT

// C++ method syntax
HRESULT get_Hints(
  [out] VARIANT* pvHints
);
HRESULT put_Hints(
  [in] VARIANT vHints
);

Comentarios

Los procesos de enumeración en IADsContainer::get__NewEnum e IADsContainer::get_Count se realizan en los objetos contenidos en la memoria caché. Cuando un contenedor contiene un gran número de objetos, el rendimiento puede verse afectado. Para mejorar el rendimiento, desactive la memoria caché, configure un tamaño de página adecuado y use la interfaz IDirectorySearch . Por este motivo, la propiedad get_Count no se admite en el proveedor LDAP de Microsoft.

Ejemplos

En el siguiente ejemplo de código de Visual Basic se muestra cómo se pueden usar los métodos de propiedad de IADsContainer .

Dim cont As IADsContainer
Dim usr As IADsUser

On Error GoTo Cleanup
 
Set cont = GetObject("LDAP://OU=Sales, DC=Fabrikam, DC=COM")
cont.Hints = Array("adminDescription") ' Load this attribute. Optional.
Debug.Print cont.Get("adminDescription")

' Filter users.
cont.Filter = Array("user")

For Each usr In cont
  Debug.Print usr.Name
Next

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

En el ejemplo de código de C++ siguiente se muestra cómo se pueden usar los métodos de propiedad de IADsContainer . Para mayor brevedad, se omite la comprobación de errores.

IADsContainer *pCont;
IADs *pChild;
IADs *pADs;
 
HRESULT hr = ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=COM",
                          IID_IADsContainer, 
                          (void**)&pCont);

if(FAILED(hr)){goto Cleanup;}

LPWSTR pszArray[] = { L"adminDescription" };
DWORD dwNumber = sizeof(pszArray)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszArray, dwNumber, &var);
if(FAILED(hr)){goto Cleanup;}

hr = pCont->put_Hints( var );
if(FAILED(hr)){goto Cleanup;}

VariantClear(&var);
 
hr = pCont->QueryInterface(IID_IADs, (void**)pADs);
if(FAILED(hr)){goto Cleanup;}
 
hr = pADs->Get(CComBSTR("adminDescription"), var);
 
LPWSTR pszUsers = {L"user"};
dwNumber = sizeof(pszUsers)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr(pszUsers, dwNumber, &var);
hr = pCont->put_Filter( var );
VariantClear(&var);
 
// Enumerate user objects in the container.
IEnumVARIANT *pEnum = NULL;
hr = ADsBuildEnumerator(pCont, &pEnum);
pCont->Release();    // Not required when users are enumerated.
 
ULONG lFetch;
VariantClear(&var);
while (SUCCEEDED(ADsEnumerateNext(pEnum, 1, &var, &lFetch)) && 
                      lFetch==1) {
    hr = V_DISPATCH(&var)->QueryInterface(IID_IADs, (void**)&pChild)
    if(SUCCEEDED(hr)) {
        BSTR bstrName;
        pChild->get_Name(&bstrName);
        printf("  %S\n", bstrName);
        SysFreeString(bstrName);
        pChild->Release();
    }
    VariantClear(&var);
}
Cleanup:
    if(pADs)
        pADs->Release();

    if(pCont)
        pCont->Release();

    if(pChild)
        pChild->Release();

    VariantClear(&var);

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Iads.h
Archivo DLL
Activeds.dll
IID
IID_IADsContainer se define como 001677D0-FD16-11CE-ABC4-02608C9E7553

Consulte también

IADsContainer

IDirectorySearch