次の方法で共有


IADs::SetInfo メソッド (iads.h)

IADs::SetInfo メソッドは、ADSI オブジェクトのキャッシュされたプロパティ値を基になるディレクトリ ストアに保存します。

構文

HRESULT SetInfo();

戻り値

このメソッドは、正常な操作のS_OKなど、標準の戻り値をサポートしています。 詳細については、「 ADSI エラー コード」を参照してください。

注釈

IADs::P ut メソッドと IADs::SetInfo メソッドの違いを強調することが重要です。 前者はプロパティ キャッシュ内の特定のプロパティの値を設定 (または変更) しますが、後者はプロパティ キャッシュから基になるディレクトリ ストアに変更を反映します。 そのため、IADs:::SetInfo が呼び出される前に IADs::GetInfo (または IADs::GetInfoEx) が呼び出されると、IADs::P ut によって行われたプロパティ値の変更はすべて失われます。

IADs::SetInfo はネットワーク間でデータを送信するため、このメソッドの使用を最小限に抑えます。 これにより、クライアントがサーバーに対して行うトリップの数が減ります。 たとえば、キャッシュから永続ストアへのプロパティに対する変更のすべて (またはほとんど) を 1 つのバッチでコミットする必要があります。

このガイドラインは、IADs::SetInfo と IADs::P ut メソッドの関係にのみ関連します。これは、IADs::P utEx メソッドとの関係とは異なります。

次のコード例は、IADs::P ut と IADs::SetInfo の推奨される関係を示しています。

Dim obj as IADs
 
obj.Put(prop1,val1)
obj.Put(prop2.val2)
obj.Put(prop3.val3)
obj.SetInfo

次のコード例は、IADs::P ut と IADs::SetInfo の間で推奨されないものを示しています。

obj.Put(prop1,val1)
obj.SetInfo
obj.Put(prop2.val2)
obj.SetInfo
obj.Put(prop3.val3)
obj.SetInfo

IADs::P utEx と共に使用すると、IADs::SetInfo は、コントロール コードで指定された操作要求 (ADS_PROPERTY_UPDATEやADS_PROPERTY_CLEARなど) を基になるディレクトリ ストアに渡します。

次の Visual Basic コード例では 、IADs::SetInfo メソッドを使用して、ユーザーのプロパティ値を基になるディレクトリに保存します。

Dim x as IADs
On Error GoTo Cleanup

Set x = GetObject("LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com")
'
' Update values in the cache.
'
x.Put "sn", "Smith"
x.Put "givenName", "Jeff"
x.Put "street", "1 Tanka Place"
x.Put "l", "Sammamish"
x.Put "st", "Washington"
'
' Commit changes to the directory.
x.SetInfo

Cleanup:
   If (Err.Number<>0) Then
      MsgBox("An error has occurred. " & Err.Number)
   End If
   Set x = Nothing

次の C++ コード例では、プロパティ キャッシュ内のプロパティ値を更新し、 IADs::SetInfo を使用してディレクトリ ストアに変更をコミットします。 簡潔にするために、エラー チェックは省略されます。

IADs *pAds NULL;
VARIANT var;
HRESULT hr = S_OK;
LPWSTR path=L"LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com";
hr = ADsGetObject( path, IID_IADs, (void**) pADs);

if(!(hr==S_OK)) {return hr;}

VariantInit(&var);
// Update values in the cache.
V_BSTR(&var) = SysAllocString(L"Smith");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("sn"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"Jeff");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("givenName"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"1 Tanka Place");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("street"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"Sammamish");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("l"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"Washington");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("st"), var );
VariantClear(&var);
 
// Commit changes to the directory store.
hr = pADs->SetInfo();

if(pADs)
   pADs->Release();

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー iads.h
[DLL] Activeds.dll

こちらもご覧ください

Iad

IADs::GetInfo

IADs::GetInfoEx

IADs::P ut

IADs::P utEx