Compartilhar via


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

O método IADs::GetInfoEx carrega os valores das propriedades especificadas do objeto ADSI do repositório de diretório subjacente para o cache de propriedades.

Sintaxe

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

Parâmetros

[in] vProperties

Matriz de entradas de cadeia de caracteres Unicode terminadas em nulo que listam as propriedades a serem carregadas no cache de propriedades do Active Directory. Cada nome de propriedade deve corresponder a um na definição da classe de esquema deste objeto.

[in] lnReserved

Reservado para uso futuro. Deve ser definido como zero.

Retornar valor

Esse método dá suporte aos valores retornados padrão, bem como aos seguintes.

Para obter mais informações, consulte Códigos de erro ADSI.

Comentários

O método IADs::GetInfoEx substitui todos os valores armazenados em cache anteriormente das propriedades especificadas com aqueles no repositório de diretórios. Portanto, qualquer alteração feita no cache será perdida se IADs::SetInfo não tiver sido invocado antes da chamada para IADs::GetInfoEx.

Use IADs::GetInfoEx para atualizar valores da propriedade selecionada no cache de propriedades de um objeto ADSI. Use IADs::GetInfo para atualizar todos os valores de propriedade.

Para um objeto de contêiner ADSI, IADs::GetInfoEx armazena em cache apenas os valores de propriedade do contêiner, mas não os dos objetos filho.

Exemplos

O exemplo de código a seguir mostra como usar o IADs::GetInfoEx para obter valores das propriedades selecionadas, supondo que os valores de propriedade desejados possam ser encontrados no diretório.

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

O exemplo de código a seguir mostra como usar o IADs::GetInfoEx para obter valores das propriedades selecionadas, supondo que os valores de propriedade desejados possam ser encontrados no diretório. Para resumir, a verificação de erros foi omitida.

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 Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho iads.h
DLL Activeds.dll

Confira também

Iads

IADs::GetInfo

IADs::SetInfo

Cache de Propriedades