IDirectoryObject::SetObjectAttributes メソッド (iads.h)
IDirectoryObject::SetObjectAttributes メソッドは、ADS_ATTR_INFO構造体で定義されている 1 つ以上の指定されたオブジェクト属性のデータを変更します。
構文
HRESULT SetObjectAttributes(
[in] PADS_ATTR_INFO pAttributeEntries,
[in] DWORD dwNumAttributes,
[out] DWORD *pdwNumAttributesModified
);
パラメーター
[in] pAttributeEntries
変更する属性の配列を提供します。 各属性には、属性の名前、実行する操作、属性値 (該当する場合) が含まれます。 詳細については、ADS_ATTR_INFO構造体に 関するページを 参照してください。
[in] dwNumAttributes
変更する属性の数を指定します。 この値は 、pAttributeEntries 配列のサイズに対応している必要があります。
[out] pdwNumAttributesModified
SetObjectAttributes メソッドによって変更された属性の数を含む DWORD 変数へのポインターを提供します。
戻り値
このメソッドは、属性が正常に設定されたときにS_OKを含む、標準の戻り値を返します。
詳細およびその他の戻り値については、「 ADSI エラー コード」を参照してください。
解説
Active Directory (LDAP プロバイダー) では、 IDirectoryObject::SetObjectAttributes メソッドはトランザクション呼び出しです。 属性はすべてコミットまたは破棄されます。 他のディレクトリ プロバイダーは、呼び出しを処理できない場合があります。
Active Directory では、複数値属性で重複する値を使用できません。 ただし、 SetObjectAttributes を呼び出して Active Directory オブジェクトの複数値属性に重複する値を追加すると、 SetObjectAttributes 呼び出しは成功しますが、重複する値は無視されます。
同様に、 SetObjectAttributes を使用して Active Directory オブジェクトの複数値プロパティから 1 つ以上の値を削除した場合、指定した値の一部またはすべてが プロパティに設定されていない場合でも、操作は成功します。
例
次の 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 |