Método IADs::GetInfoEx (iads.h)

El método IADs::GetInfoEx carga los valores de las propiedades especificadas del objeto ADSI desde el almacén de directorios subyacente en la memoria caché de propiedades.

Sintaxis

HRESULT GetInfoEx(
  [in] VARIANT vProperties,
  [in] long    lnReserved
);

Parámetros

[in] vProperties

Matriz de entradas de cadena Unicode terminadas en null que enumeran las propiedades que se van a cargar en la caché de propiedades de Active Directory. Cada nombre de propiedad debe coincidir con uno en la definición de la clase de esquema de este objeto.

[in] lnReserved

Reservado para uso futuro. Debe establecerse en cero.

Valor devuelto

Este método admite los valores devueltos estándar, así como los siguientes.

Para obtener más información, consulta Códigos de error adsi.

Comentarios

El método IADs::GetInfoEx sobrescribe los valores previamente almacenados en caché de las propiedades especificadas con los del almacén de directorios. Por lo tanto, cualquier cambio realizado en la memoria caché se perderá si no se invocó IADs::SetInfo antes de la llamada a IADs::GetInfoEx.

Use IADs::GetInfoEx para actualizar los valores de la propiedad seleccionada en la memoria caché de propiedades de un objeto ADSI. Use IADs::GetInfo para actualizar todos los valores de propiedad.

Para un objeto contenedor ADSI, IADs::GetInfoEx almacena en caché solo los valores de propiedad del contenedor, pero no los de los objetos secundarios.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar iaDs::GetInfoEx para obtener valores de las propiedades seleccionadas, suponiendo que los valores de propiedad deseados se pueden encontrar en el directorio .

Dim x As IADs
On Error GoTo Cleanup

Set x = GetObject("LDAP://CN=JeffSmith,CN=Users,DC=Fabrikam,DC=com")
 
' Retrieve givenName and sn from the underlying directory storage.
' Cache should have givenName and sn values.
x.GetInfoEx Array("givenName", "sn"), 0 
Debug.Print x.Get("givenName")  ' Property is in the cache.
Debug.Print x.Get("sn")         ' Property is in the cache.
 
' If the "homePhone" property is not in the cache (in the next line), 
' GetInfo is called implicitly.
Debug.Print x.Get("homePhone")

Cleanup:
   If(Err.Number<>0) Then
      MsgBox("An error has occurred. " & Err.Number);
   End If

   Set x = Nothing

En el ejemplo de código siguiente se muestra cómo usar iaDs::GetInfoEx para obtener valores de las propiedades seleccionadas, suponiendo que los valores de propiedad deseados se pueden encontrar en el directorio . Por motivos de brevedad, se ha omitido la comprobación de errores.

IADs *pADs = NULL;
VARIANT var;
HRESULT hr = S_OK;
 
hr = ADsGetObject(L"WinNT://somecomputer,computer",
                  IID_IADs,
                  (void**)&pADs);

if(!(hr==S_OK)){return hr;} 

VariantInit(&var);
 
// Get "Owner" and "Division" attribute values.
LPWSTR pszAttrs[] = { L"Owner", L"Division" };
DWORD dwNumber = sizeof( pszAttrs ) /sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszAttrs, dwNumber, &var );
hr = pADs->GetInfoEx(var, 0);
VariantClear(&var);
 
hr = pADs->Get(CComBSTR("Division"), &var);  
printf("    division   = %S\n", V_BSTR(&var));
VariantClear(&var);
hr = pADs->Get(CComBSTR("Owner"), &var);
printf("    owner      = %S\n", V_BSTR(&var));
VariantClear(&var);

if(pADs)
   pADs->Release();


Requisitos

Requisito Value
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

Iads

IADs::GetInfo

IADs::SetInfo

Caché de propiedades