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 操作系统。
目标平台 通用
标头 propsys.h
Library Propsys.idl
IRQL 所有级别

另请参阅

IPropertyStore

IPropertyStore::Commit

IPropertyStore::GetAt

IPropertyStore::GetCount