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 |