Metodo IDirectoryObject::SetObjectAttributes (iads.h)
Il metodo IDirectoryObject::SetObjectAttributes modifica i dati in uno o più attributi di oggetto specificati definiti nella struttura ADS_ATTR_INFO .
Sintassi
HRESULT SetObjectAttributes(
[in] PADS_ATTR_INFO pAttributeEntries,
[in] DWORD dwNumAttributes,
[out] DWORD *pdwNumAttributesModified
);
Parametri
[in] pAttributeEntries
Fornisce una matrice di attributi da modificare. Ogni attributo contiene il nome dell'attributo, l'operazione da eseguire e il valore dell'attributo, se applicabile. Per altre informazioni, vedere la struttura ADS_ATTR_INFO .
[in] dwNumAttributes
Fornisce il numero di attributi da modificare. Questo valore deve corrispondere alle dimensioni della matrice pAttributeEntries .
[out] pdwNumAttributesModified
Fornisce un puntatore a una variabile DWORD contenente il numero di attributi modificati dal metodo SetObjectAttributes .
Valore restituito
Questo metodo restituisce i valori restituiti standard, inclusi S_OK quando gli attributi vengono impostati correttamente.
Per altre informazioni e altri valori restituiti, vedere Codici di errore ADSI.
Commenti
In Active Directory (provider LDAP), il metodo IDirectoryObject::SetObjectAttributes è una chiamata transazionata. Gli attributi sono tutti sottoposti a commit o eliminati. Altri provider di directory potrebbero non eseguire la transazione della chiamata.
Active Directory non consente valori duplicati in un attributo multivalore. Tuttavia, se si chiama SetObjectAttributes per aggiungere un valore duplicato a un attributo multivalore di un oggetto Active Directory, la chiamata SetObjectAttributes ha esito positivo, ma il valore duplicato viene ignorato.
Analogamente, se si usa SetObjectAttributes per eliminare uno o più valori da una proprietà multivalore di un oggetto Active Directory, l'operazione ha esito positivo anche se uno o tutti i valori specificati non sono impostati per la proprietà
Esempio
L'esempio di codice C++ seguente imposta l'attributo sn di un oggetto utente sul valore di Price come stringa senza distinzione tra maiuscole e minuscole.
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();
}
Requisiti
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | iads.h |
DLL | Activeds.dll |