IPropertyStorage 接口管理单个属性集的持久属性。 持久属性包含可永久存储在属性集中的信息,例如与文件关联的摘要信息。 这与与控件和自动化关联的运行时属性形成鲜明对比,后者可用于影响系统行为。 使用 IPropertySetStorage 接口的方法创建或打开永久性属性集。 IPropertySetStorage 接口的实例可以管理零个或多个 IPropertyStorage 实例。
属性集中的每个属性都由属性标识符 (ID) (该集唯一的四字节 ULONG 值)标识。 还可以通过 IPropertyStorage 接口将字符串名称分配给属性。
属性 ID 不同于自动化 dispid 属性名称标记中使用的调度 ID。 一个区别是, IPropertyStorage 中禁止使用属性 ID 值 0 和 1 的常规用途,而 IDispatch 中不存在此类限制。 此外,虽然可在 IPropertyStorage 和 IDispatch 中使用的属性值的数据类型之间存在明显的重叠,但属性集并不相同。 IPropertyStorage 方法中使用的持久属性数据类型在 PROPVARIANT 结构中定义。
IPropertyStorage 接口可用于访问简单和非简单属性集。 非简单属性集可以保存多个复杂属性类型,这些属性类型不能保存在简单属性集中。 有关详细信息,请参阅属性集的存储和Stream对象。
继承
IPropertyStorage 接口继承自 IUnknown 接口。 IPropertyStorage 还具有以下类型的成员:
方法
IPropertyStorage 接口包含以下方法。
IPropertyStorage::Commit IPropertyStorage::Commit 方法将对属性存储对象所做的更改保存到父存储对象。 |
IPropertyStorage::D eleteMultiple IPropertyStorage::D eleteMultiple 方法删除属性集中存在的指示属性的数量。 |
IPropertyStorage::D eletePropertyNames IPropertyStorage::D eletePropertyNames 方法从当前属性集中删除指定的字符串名称。 |
IPropertyStorage::Enum IPropertyStorage::Enum 方法创建一个枚举器对象,该对象旨在枚举类型为 STATPROPSTG 的数据,其中包含有关当前属性集的信息。 |
IPropertyStorage::ReadMultiple IPropertyStorage::ReadMultiple 方法从当前属性集中读取指定的属性。 |
IPropertyStorage::ReadPropertyNames IPropertyStorage::ReadPropertyNames 方法检索指定属性 ID 的任何现有字符串名称。 |
IPropertyStorage::Revert IPropertyStorage::Revert 方法放弃自上次打开以来对命名属性集所做的所有更改,或放弃上次提交到属性集的更改。 |
IPropertyStorage::SetClass IPropertyStorage::SetClass 方法将新的 CLSID 分配给当前属性存储对象,并将 CLSID 与 对象一起持久存储。 |
IPropertyStorage::SetTimes IPropertyStorage::SetTimes 方法设置此属性集的修改、访问和创建时间(如果实现支持)。 |
IPropertyStorage::Stat IPropertyStorage::Stat 方法检索有关当前打开的属性集的信息。 (IPropertyStorage.Stat) |
IPropertyStorage::WriteMultiple IPropertyStorage::WriteMultiple 方法将指定的属性组写入当前属性集。 |
IPropertyStorage::WritePropertyNames IPropertyStorage::WritePropertyNames 方法将字符串 IPropertyStoragenames 分配给当前属性集中的指定属性 ID 数组。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | propidlbase.h (包括 Objbase.h、Propidlbase.h) |