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 |