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 |