IPropertyStore::SetValue 方法 (propsys.h)

這個方法會設定屬性值,或取代或移除現有的值。

語法

HRESULT SetValue(
  REFPROPERTYKEY key,
  REFPROPVARIANT propvar
);

參數

key

TBD

propvar

TBD

傳回值

方法 IPropertyStore::SetValue 可以傳回下列任一項:

傳回碼 描述
S_OK
屬性變更成功。
INPLACE_S_TRUNCATED
已設定值,但已截斷。
STG_E_ACCESSDENIED
這是錯誤碼。 屬性存放區是唯讀的,因此方法無法設定值。

備註

IPropertyStore::SetValue 只會影響目前的屬性存放區實例。 屬性處理程式會 IPropertyStore::SetValue 藉由累積記憶體內部數據結構中的屬性變更來實作。 只有在呼叫 IPropertyStore::Commit 時,屬性變更才會寫入數據流。

如果在只讀屬性存放區上呼叫 IPropertyStore::Commit ,則屬性處理程式會決定此專案,並傳回STG_E_ACCESSDENIED。

如果值已新增或移除,SetValue則 IPropertyStore::GetCountIPropertyStore::GetAt 的後續列舉會反映該變更和後續呼叫以IPropertyStore::SetValue反映變更的值。

新增屬性

如果索引鍵所指向的屬性值不存在於存放區中, IPropertyStore::SetValue 請將值新增至存放區。

取代現有的屬性值

如果索引鍵所指向的屬性值已存在於存放區中,則會取代預存的值。

拿掉現有屬性

若要從屬性存放區中移除值,請將 pv 指向之 結構的 vt 成員設定為VT_EMPTY。 如果該值不存在,則不執行任何動作,而且方法會傳回S_OK。

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 和更新版本的 Windows 作業系統。
目標平台 Universal
標頭 propsys.h
程式庫 Propsys.idl
IRQL 所有層級

另請參閱

IPropertyStore

IPropertyStore::Commit

IPropertyStore::GetAt

IPropertyStore::GetCount