IADs ::SetInfo, méthode (iads.h)
La méthode IADs ::SetInfo enregistre les valeurs de propriété mises en cache de l’objet ADSI dans le magasin de répertoires sous-jacent.
Syntaxe
HRESULT SetInfo();
Valeur de retour
Cette méthode prend en charge les valeurs de retour standard, y compris les S_OK pour une opération réussie. Pour plus d’informations, consultez Codes d’erreur ADSI.
Remarques
Il est important de souligner les différences entre les méthodes IADs ::P ut et IADs ::SetInfo . Le premier définit (ou modifie) les valeurs d’une propriété donnée dans le cache de propriétés, tandis que le second propage les modifications du cache de propriétés dans le magasin de répertoires sous-jacent. Par conséquent, les modifications de valeur de propriété apportées par IADs ::P ut seront perdues si IADs ::GetInfo (ou IADs ::GetInfoEx) sont appelées avant l’appel d’IADs ::SetInfo .
Étant donné que IADs ::SetInfo envoie des données entre réseaux, réduisez l’utilisation de cette méthode. Cela réduit le nombre de déplacements qu’un client effectue vers le serveur. Par exemple, vous devez valider la totalité ou la plupart des modifications apportées aux propriétés du cache vers le magasin persistant dans un seul lot.
Cette directive concerne uniquement la relation entre IADs ::SetInfo et la méthode IADs ::P ut , qui diffère de la relation avec la méthode IADs ::P utEx .
L’exemple de code suivant illustre la relation recommandée entre IADs ::P ut et IADs ::SetInfo.
Dim obj as IADs
obj.Put(prop1,val1)
obj.Put(prop2.val2)
obj.Put(prop3.val3)
obj.SetInfo
L’exemple de code suivant illustre ce qui n’est pas recommandé entre IADs ::P ut et IADs ::SetInfo.
obj.Put(prop1,val1)
obj.SetInfo
obj.Put(prop2.val2)
obj.SetInfo
obj.Put(prop3.val3)
obj.SetInfo
Lorsqu’il est utilisé avec IADs ::P utEx, IADs ::SetInfo transmet les requêtes opérationnelles spécifiées par les codes de contrôle, tels que ADS_PROPERTY_UPDATE ou ADS_PROPERTY_CLEAR, au magasin d’annuaires sous-jacent.
Exemples
L’exemple de code Visual Basic suivant utilise la méthode IADs ::SetInfo pour enregistrer la valeur de propriété d’un utilisateur dans le répertoire sous-jacent.
Dim x as IADs
On Error GoTo Cleanup
Set x = GetObject("LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com")
'
' Update values in the cache.
'
x.Put "sn", "Smith"
x.Put "givenName", "Jeff"
x.Put "street", "1 Tanka Place"
x.Put "l", "Sammamish"
x.Put "st", "Washington"
'
' Commit changes to the directory.
x.SetInfo
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set x = Nothing
L’exemple de code C++ suivant met à jour les valeurs de propriété dans le cache de propriétés et valide la modification du magasin d’annuaires à l’aide de IADs ::SetInfo. Par souci de concision, la vérification des erreurs est omise.
IADs *pAds NULL;
VARIANT var;
HRESULT hr = S_OK;
LPWSTR path=L"LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com";
hr = ADsGetObject( path, IID_IADs, (void**) pADs);
if(!(hr==S_OK)) {return hr;}
VariantInit(&var);
// Update values in the cache.
V_BSTR(&var) = SysAllocString(L"Smith");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("sn"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"Jeff");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("givenName"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"1 Tanka Place");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("street"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"Sammamish");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("l"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"Washington");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("st"), var );
VariantClear(&var);
// Commit changes to the directory store.
hr = pADs->SetInfo();
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 |