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 |