IADs::SetInfo 方法 (iads.h)

IADs::SetInfo 方法會將ADSI物件的快取屬性值儲存至基礎目錄存放區。

Syntax

HRESULT SetInfo();

傳回值

這個方法支持標準傳回值,包括成功作業S_OK。 如需詳細資訊,請參閱 ADSI 錯誤碼

備註

請務必強調 IADs::P utIADs::SetInfo 方法之間的差異。 前者會設定 (或修改屬性快取中指定屬性的) 值,而後者則會將屬性快取的變更傳播到基礎目錄存放區。 因此,如果在呼叫 IADs::SetInfo 之前叫用 IADs::GetInfo (或 IADs::GetInfoEx) ,則 IADs:::P ut 所做的任何屬性值變更都會遺失。

由於 IADs::SetInfo 會跨網路傳送數據,因此請將此方法的使用方式降到最低。 這可減少客戶端對伺服器所做的車程數目。 例如,您應該將快取屬性變更的所有或大部分變更認可到一個批次中的永續性存放區。

此指導方針僅與 IADs::SetInfo 與 IADs::P ut 方法的關聯性相關,與 IADs::P utEx 方法的關聯性不同。

下列程式代碼範例說明 IADs::P utIADs::SetInfo 之間的建議關聯性。

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

下列程式代碼範例說明 IADs::P utIADs::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

另請參閱

IADs

IADs::GetInfo

IADs::GetInfoEx

IADs::P ut

IADs::P utEx