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 |