Condividi tramite


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

Vedi anche

Codici di errore ADSI

ADS_ATTR_INFO

IDirectoryObject