IPropertySetStorage-独立实现

系统提供的 IPropertySetStorage 独立实现包括 IPropertyStorage 和 IPropertySetStorage 的实现。IPropertyStorage 是在属性集存储中读取和写入属性的接口。 IPropertySetStorage 是在存储中创建和打开属性集的接口。 独立实现中还提供了 IEnumSTATPROPSTGIEnumSTATPROPSETSTG 接口。

若要使用 IPropertySetStorage 的独立实现,请先获取指向系统提供的独立实现的指针,并将系统提供的实现与存储对象相关联。 若要获取指向 IPropertySetStorage 独立实现的指针,请调用 StgCreatePropSetStg 函数并提供 pStorage 参数,指定将包含属性集的存储对象。 此函数提供指向指定存储对象的新 IPropertySetStorage 接口的指针。

IPropertySetStorage 的独立实现对任何存储对象(而不仅仅是复合文件存储)创建属性集。 独立实现不依赖于复合文件,可以与结构化存储的任何实现一起使用。 对调用方提供的结构化存储的任何限制都适用于属性集的此实现。 例如,如果向 StgOpenPropStg 提供简单模式存储,则生成的 IPropertySetStorage 将受到提供的 IStorage 的限制。

有关此接口的复合文件实现的详细信息,请参阅 IPropertySetStorage-Compound File Implementation 部分。

何时使用

调用 IPropertySetStorage 的方法以在任何结构化存储中创建、打开和删除属性集。 还有一种方法提供指向 IEnumSTATPROPSETSTG 枚举器的指针,该枚举器可用于枚举存储中的属性集。

除了 CreateOpen 方法之外,独立实现还提供 StgCreatePropStgStgOpenPropStg 帮助程序函数来创建和打开属性集。 这两个函数添加了对 PROPSETFLAG_UNBUFFERED 值的支持,因此可以直接将更改写入属性集,而不是将它们缓冲到缓存中。 有关详细信息,请参阅 PROPSETFLAG 常量

方法

IPropertySetStorage 的独立实现支持以下方法。

IPropertySetStorage::Create

在存储中创建一个新属性集,并返回指向属性集上的 IPropertyStorage 接口的指针。

如果计划使用 PROPSETFLAG_UNBUFFERED 值,请改用 StgCreatePropStg 函数来创建并打开新的属性集,并获取指向属性集上 IPropertyStorage 接口的独立实现的指针。

IPropertySetStorage::Open

打开存储中的现有属性集,并返回指向属性集上的 IPropertyStorage 接口的指针。

如果计划使用 PROPSETFLAG_UNBUFFERED 值,请改用 StgOpenPropStg 函数来获取指向指定属性集上 IPropertyStorage 的独立实现的指针。

IPropertySetStorage::D elete

删除此属性集存储中的属性集。

IPropertySetStorage::Enum

创建可用于枚举 STATPROPSETSTG 结构的 对象。 每个 STATPROPSETSTG 结构都提供有关单个属性集的数据。

注意

DocumentSummaryInformation 和 UserDefined 属性集是唯一的,因为它可能在单个基础流中具有两个属性集部分。 有关详细信息,请参阅 DocumentSummaryInformation 和 UserDefined 属性集

 

IPropertyStorage-独立实现

IPropertySetStorage

IPropertyStorage

IStorage::EnumElements

PROPSETFLAG 常量

STATPROPSETSTG

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg

STGM 常量