Freigeben über


IDirectoryObject::SetObjectAttributes-Methode (iads.h)

Die IDirectoryObject::SetObjectAttributes-Methode ändert Daten in einem oder mehreren angegebenen Objektattributen, die in der ADS_ATTR_INFO-Struktur definiert sind.

Syntax

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

Parameter

[in] pAttributeEntries

Stellt ein Array von Zu ändernden Attributen bereit. Jedes Attribut enthält den Namen des Attributs, den auszuführenden Vorgang und ggf. den Attributwert. Weitere Informationen finden Sie in der ADS_ATTR_INFO-Struktur .

[in] dwNumAttributes

Gibt die Anzahl der zu ändernden Attribute an. Dieser Wert sollte der Größe des pAttributeEntries-Arrays entsprechen.

[out] pdwNumAttributesModified

Stellt einen Zeiger auf eine DWORD-Variable bereit, die die Anzahl der Attribute enthält, die von der SetObjectAttributes-Methode geändert wurden.

Rückgabewert

Diese Methode gibt die Standardmäßigen Rückgabewerte zurück, einschließlich S_OK, wenn die Attribute erfolgreich festgelegt wurden.

Weitere Informationen und andere Rückgabewerte finden Sie unter ADSI-Fehlercodes.

Hinweise

In Active Directory (LDAP-Anbieter) ist die IDirectoryObject::SetObjectAttributes-Methode ein transaktionsfähiger Aufruf. Die Attribute werden entweder alle committet oder verworfen. Andere Verzeichnisanbieter führen den Aufruf möglicherweise nicht durch.

Active Directory lässt keine doppelten Werte für ein mehrwertiges Attribut zu. Wenn Sie jedoch SetObjectAttributes aufrufen, um einen doppelten Wert an ein mehrwertiges Attribut eines Active Directory-Objekts anzufügen, ist der SetObjectAttributes-Aufruf erfolgreich, aber der doppelte Wert wird ignoriert.

Wenn Sie SetObjectAttributes verwenden, um einen oder mehrere Werte aus einer mehrwertigen Eigenschaft eines Active Directory-Objekts zu löschen, ist der Vorgang auch dann erfolgreich, wenn keine oder alle der angegebenen Werte für die Eigenschaft festgelegt sind.

Beispiele

Im folgenden C++-Codebeispiel wird das sn-Attribut eines Benutzerobjekts auf den Wert von Price als Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung festgelegt.

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();
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll

Weitere Informationen

ADSI-Fehlercodes

ADS_ATTR_INFO

IDirectoryObject