Partager via


IADs ::GetInfoEx, méthode (iads.h)

La méthode IADs ::GetInfoEx charge les valeurs des propriétés spécifiées de l’objet ADSI à partir du magasin de répertoires sous-jacent dans le cache de propriétés.

Syntaxe

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

Paramètres

[in] vProperties

Tableau d’entrées de chaîne Unicode terminées par un caractère Null qui répertorie les propriétés à charger dans le cache de propriétés Active Directory. Chaque nom de propriété doit correspondre à un dans la définition de classe de schéma de cet objet.

[in] lnReserved

Réservé pour un usage futur. Doit être défini sur zéro.

Valeur retournée

Cette méthode prend en charge les valeurs de retour standard, ainsi que les éléments suivants.

Pour plus d’informations, consultez Codes d’erreur ADSI.

Remarques

La méthode IADs ::GetInfoEx remplace toutes les valeurs précédemment mises en cache des propriétés spécifiées par celles du magasin d’annuaires. Par conséquent, toute modification apportée au cache sera perdue si IADs ::SetInfo n’a pas été appelé avant l’appel à IADs ::GetInfoEx.

Utilisez IADs ::GetInfoEx pour actualiser les valeurs de la propriété sélectionnée dans le cache de propriétés d’un objet ADSI. Utilisez IADs ::GetInfo pour actualiser toutes les valeurs de propriété.

Pour un objet conteneur ADSI, IADs ::GetInfoEx met en cache uniquement les valeurs de propriété du conteneur, mais pas celles des objets enfants.

Exemples

L’exemple de code suivant montre comment utiliser IADs ::GetInfoEx pour obtenir des valeurs des propriétés sélectionnées, en supposant que les valeurs de propriété souhaitées se trouvent dans le répertoire.

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

L’exemple de code suivant montre comment utiliser IADs ::GetInfoEx pour obtenir des valeurs des propriétés sélectionnées, en supposant que les valeurs de propriété souhaitées se trouvent dans le répertoire. Par souci de concision, la vérification des erreurs a été omise.

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();


Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête iads.h
DLL Activeds.dll

Voir aussi

IADs

IADs ::GetInfo

IADs ::SetInfo

Cache de propriétés