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
-
-
Tipo de acceso: solo lectura
-
Tipo de datos de scripting: LONG
-
// C++ method syntax HRESULT get_Count( [out] LONG* plCount );
Recupera el número de elementos del contenedor. Cuando se establece Filter , Count devuelve solo el número de elementos filtrados.
-
-
Filter
-
-
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 );
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.
-
-
Sugerencias
-
-
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 );
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.
-
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 |
|
Archivo DLL |
|
IID |
IID_IADsContainer se define como 001677D0-FD16-11CE-ABC4-02608C9E7553 |