這個方法會設定屬性值,或取代或移除現有的值。
語法
HRESULT SetValue(
REFPROPERTYKEY key,
REFPROPVARIANT propvar
);
參數
key
TBD
propvar
TBD
傳回值
方法 IPropertyStore::SetValue 可以傳回下列任一項:
| 傳回碼 | 描述 |
|---|---|
|
屬性變更成功。 |
|
已設定值,但已截斷。 |
|
這是錯誤碼。 屬性存放區是唯讀的,因此方法無法設定值。 |
備註
IPropertyStore::SetValue 只會影響目前的屬性存放區實例。 屬性處理程式會 IPropertyStore::SetValue 藉由累積記憶體內部數據結構中的屬性變更來實作。 只有在呼叫 IPropertyStore::Commit 時,屬性變更才會寫入數據流。
如果在只讀屬性存放區上呼叫 IPropertyStore::Commit ,則屬性處理程式會決定此專案,並傳回STG_E_ACCESSDENIED。
如果值已新增或移除,SetValue則 IPropertyStore::GetCount 和 IPropertyStore::GetAt 的後續列舉會反映該變更和後續呼叫以IPropertyStore::SetValue反映變更的值。
新增屬性
如果索引鍵所指向的屬性值不存在於存放區中, IPropertyStore::SetValue 請將值新增至存放區。
取代現有的屬性值
如果索引鍵所指向的屬性值已存在於存放區中,則會取代預存的值。
拿掉現有屬性
若要從屬性存放區中移除值,請將 pv 指向之 結構的 vt 成員設定為VT_EMPTY。 如果該值不存在,則不執行任何動作,而且方法會傳回S_OK。
規格需求
| 需求 | 值 |
|---|---|
| 最低支援的用戶端 | 適用於 Windows Vista 和更新版本的 Windows 作業系統。 |
| 目標平台 | Universal |
| 標頭 | propsys.h |
| 程式庫 | Propsys.idl |
| IRQL | 所有層級 |