IPropertyStorage 接口 (propidl.h)
IPropertyStorage 接口管理单个属性集的永久性属性。 持久属性包含可永久存储在属性集中的信息,例如与文件关联的摘要信息。 这与与控件和自动化关联的运行时属性形成鲜明对比,后者可用于影响系统行为。 使用 IPropertySetStorage 接口的方法创建或打开永久性属性集。 IPropertySetStorage 接口的实例可以管理零个或多个 IPropertyStorage 实例。
属性集中的每个属性都由属性标识符 (ID) (该集唯一的四字节 ULONG 值)标识。 还可以通过 IPropertyStorage 接口为属性分配字符串名称。
属性 ID 不同于自动化 dispid 属性名称标记中使用的调度 ID。 一个区别是, IPropertyStorage 中禁止使用属性 ID 值零和 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 DeletePropertyNames 方法从当前属性集中删除指定的字符串名称。 (IPropertyStorage.DeletePropertyNames) |
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 |
标头 | propidl.h (包括 Objbase.h、Propidlbase.h) |