IDirectoryObject::SetObjectAttributes 方法 (iads.h)
IDirectoryObject::SetObjectAttributes 方法修改ADS_ATTR_INFO结构中定义的一个或多个指定对象属性中的数据。
语法
HRESULT SetObjectAttributes(
[in] PADS_ATTR_INFO pAttributeEntries,
[in] DWORD dwNumAttributes,
[out] DWORD *pdwNumAttributesModified
);
parameters
[in] pAttributeEntries
提供要修改的属性数组。 每个属性都包含属性的名称、要执行的操作和属性值(如果适用)。 有关详细信息,请参阅 ADS_ATTR_INFO 结构。
[in] dwNumAttributes
提供要修改的属性数。 此值应对应于 pAttributeEntries 数组的大小。
[out] pdwNumAttributesModified
提供指向 DWORD 变量的指针,该变量包含 由 SetObjectAttributes 方法修改的属性数。
返回值
此方法返回标准返回值,包括成功设置属性时S_OK。
有关详细信息和其他返回值,请参阅 ADSI 错误代码。
注解
在 Active Directory (LDAP 提供程序) 中, IDirectoryObject::SetObjectAttributes 方法是事务处理调用。 属性要么全部提交,要么被丢弃。 其他目录提供程序可能不会处理调用。
Active Directory 不允许多值属性上的重复值。 但是,如果调用 SetObjectAttributes 将重复值追加到 Active Directory 对象的多值属性, 则 SetObjectAttributes 调用成功,但重复值将被忽略。
同样,如果使用 SetObjectAttributes 从 Active Directory 对象的多值属性中删除一个或多个值,则即使未为属性设置任何或所有指定值,该操作也会成功。
示例
下面的 C++ 代码示例将用户对象的 sn 属性设置为 Price 的值作为不区分大小写的字符串。
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();
}
要求
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | iads.h |
DLL | Activeds.dll |