IDirectoryObject::SetObjectAttributes, méthode (iads.h)

La méthode IDirectoryObject::SetObjectAttributes modifie les données dans un ou plusieurs attributs d’objet spécifiés définis dans la structure ADS_ATTR_INFO .

Syntaxe

HRESULT SetObjectAttributes(
  [in]  PADS_ATTR_INFO pAttributeEntries,
  [in]  DWORD          dwNumAttributes,
  [out] DWORD          *pdwNumAttributesModified
);

Paramètres

[in] pAttributeEntries

Fournit un tableau d’attributs à modifier. Chaque attribut contient le nom de l’attribut, l’opération à effectuer et la valeur de l’attribut, le cas échéant. Pour plus d’informations, consultez la structure ADS_ATTR_INFO .

[in] dwNumAttributes

Fournit le nombre d’attributs à modifier. Cette valeur doit correspondre à la taille du tableau pAttributeEntries .

[out] pdwNumAttributesModified

Fournit un pointeur vers une variable DWORD qui contient le nombre d’attributs modifiés par la méthode SetObjectAttributes .

Valeur retournée

Cette méthode retourne les valeurs de retour standard, y compris S_OK lorsque les attributs sont correctement définis.

Pour plus d’informations et d’autres valeurs de retour, consultez Codes d’erreur ADSI.

Notes

Dans Active Directory (fournisseur LDAP), la méthode IDirectoryObject::SetObjectAttributes est un appel traité. Les attributs sont tous validées ou ignorées. D’autres fournisseurs d’annuaires peuvent ne pas traiter l’appel.

Active Directory n’autorise pas les valeurs en double sur un attribut à valeurs multiples. Toutefois, si vous appelez SetObjectAttributes pour ajouter une valeur en double à un attribut à valeurs multiples d’un objet Active Directory, l’appel SetObjectAttributes réussit, mais la valeur dupliquée est ignorée.

De même, si vous utilisez SetObjectAttributes pour supprimer une ou plusieurs valeurs d’une propriété à valeurs multiples d’un objet Active Directory, l’opération réussit même si une ou toutes les valeurs spécifiées ne sont pas définies pour la propriété

Exemples

L’exemple de code C++ suivant définit l’attribut sn d’un objet utilisateur sur la valeur price en tant que chaîne ne respectant pas la casse.

HRESULT hr;
IDirectoryObject *pDirObject=NULL;
DWORD  dwReturn;
ADSVALUE  snValue;
ADS_ATTR_INFO attrInfo[] = { {L"sn",ADS_ATTR_UPDATE, ADSTYPE_CASE_IGNORE_STRING, &snValue, 1} };
DWORD dwAttrs = sizeof(attrInfo)/sizeof(ADS_ATTR_INFO); 
 
snValue.dwType=ADSTYPE_CASE_IGNORE_STRING;
snValue.CaseIgnoreString = L"Price";
 
hr = ADsGetObject(L"LDAP://CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=com",
        IID_IDirectoryObject, 
        (void**) &pDirObject );
 
if ( SUCCEEDED(hr) )
{
    hr = pDirObject->SetObjectAttributes(attrInfo, dwAttrs, &dwReturn);

    pDirObject->Release();
}

Spécifications

   
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

Codes d’erreur ADSI

ADS_ATTR_INFO

IDirectoryObject