IPropertySetStorage-独立实现

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

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

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

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

何时使用

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

独立实现还提供 StgCreatePropStgStgOpenPropStg 帮助程序函数,以及 CreateOpen 方法,用于创建和打开属性集。 这两个函数添加了对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 常量