IDirectoryObject::SetObjectAttributes 方法 (iads.h)
IDirectoryObject::SetObjectAttributes方法會修改ADS_ATTR_INFO結構中定義的一或多個指定物件屬性中的資料。
語法
HRESULT SetObjectAttributes(
[in] PADS_ATTR_INFO pAttributeEntries,
[in] DWORD dwNumAttributes,
[out] DWORD *pdwNumAttributesModified
);
參數
[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 |