IPropertySetStorage-独立实现
系统提供的 IPropertySetStorage 独立实现包括 IPropertyStorage 和 IPropertySetStorage 的实现。IPropertyStorage 是在属性集存储中读取和写入属性的接口。 IPropertySetStorage 是在存储中创建和打开属性集的接口。 独立实现中还提供了 IEnumSTATPROPSTG 和 IEnumSTATPROPSETSTG 接口。
若要使用 IPropertySetStorage 的独立实现,请先获取指向系统提供的独立实现的指针,并将系统提供的实现与存储对象相关联。 若要获取指向 IPropertySetStorage 独立实现的指针,请调用 StgCreatePropSetStg 函数并提供 pStorage 参数,指定将包含属性集的存储对象。 此函数提供指向指定存储对象的新 IPropertySetStorage 接口的指针。
IPropertySetStorage 的独立实现对任何存储对象(而不仅仅是复合文件存储)创建属性集。 独立实现不依赖于复合文件,可以与结构化存储的任何实现一起使用。 对调用方提供的结构化存储的任何限制都适用于属性集的此实现。 例如,如果向 StgOpenPropStg 提供简单模式存储,则生成的 IPropertySetStorage 将受到提供的 IStorage 的限制。
有关此接口的复合文件实现的详细信息,请参阅 IPropertySetStorage-Compound File Implementation 部分。
何时使用
调用 IPropertySetStorage 的方法以在任何结构化存储中创建、打开和删除属性集。 还有一种方法提供指向 IEnumSTATPROPSETSTG 枚举器的指针,该枚举器可用于枚举存储中的属性集。
除了 Create 和 Open 方法之外,独立实现还提供 StgCreatePropStg 和 StgOpenPropStg 帮助程序函数来创建和打开属性集。 这两个函数添加了对 PROPSETFLAG_UNBUFFERED 值的支持,因此可以直接将更改写入属性集,而不是将它们缓冲到缓存中。 有关详细信息,请参阅 PROPSETFLAG 常量。
方法
IPropertySetStorage 的独立实现支持以下方法。
-
在存储中创建一个新属性集,并返回指向属性集上的 IPropertyStorage 接口的指针。
如果计划使用 PROPSETFLAG_UNBUFFERED 值,请改用 StgCreatePropStg 函数来创建并打开新的属性集,并获取指向属性集上 IPropertyStorage 接口的独立实现的指针。
-
打开存储中的现有属性集,并返回指向属性集上的 IPropertyStorage 接口的指针。
如果计划使用 PROPSETFLAG_UNBUFFERED 值,请改用 StgOpenPropStg 函数来获取指向指定属性集上 IPropertyStorage 的独立实现的指针。
-
删除此属性集存储中的属性集。
-
创建可用于枚举 STATPROPSETSTG 结构的 对象。 每个 STATPROPSETSTG 结构都提供有关单个属性集的数据。
注意
DocumentSummaryInformation 和 UserDefined 属性集是唯一的,因为它可能在单个基础流中具有两个属性集部分。 有关详细信息,请参阅 DocumentSummaryInformation 和 UserDefined 属性集 。
相关主题