属性和属性集
虽然自动化和Microsoft ActiveX 控件提供的运行时属性类型很重要,但它们不直接解决存储包含持久存储在文件系统中的对象的信息的需要。 这些实体可以包括文件(结构化、复合等)、目录和摘要目录。 COM 为这些持久性属性提供标准序列化格式,以及一组接口和函数,可用于创建和作属性集及其属性。
持久性属性存储为集,一个或多个集可能与文件系统实体相关联。 这些永久性属性集用于存储适合表示为细粒度值的集合的数据。 它们不打算用作大型数据库。 它们可用于存储系统上有关对象的摘要信息,然后可由任何其他理解如何解释该属性集的对象访问这些信息。
以前版本的 COM 在属性及其用法方面指定很少,但确实定义了一种序列化格式,允许开发人员将属性和属性集存储在 IStorage 实例中。 还定义了单个属性集的属性标识符和语义,用于文档的摘要信息。 当时,必须直接创建和作该结构作为数据流。 请参阅 结构化存储序列化属性集格式。
但是,COM 现在定义了两个主要接口来管理属性集:
当这些接口在支持 IStorage 接口(如复合文件)的对象上实现时,不再需要直接处理序列化格式。 通过 IPropertySetStorage 和 IPropertyStorage 编写属性 创建符合 COM 属性集格式的数据,如通过 IStorage 方法查看。 相反的是,使用 IStorage 写入 COM 属性集格式的属性通过 IPropertySetStorage 和 IPropertyStorage 可见(尽管你不能期望写入到 IStream,并通过 IPropertyStorage 立即可用,反之亦然)。
IPropertySetStorage 接口定义创建和管理属性集的方法。 IPropertyStorage 接口直接作属性集中的属性。 通过调用这些接口的方法,应用程序开发人员可以管理适用于给定文件系统实体的任何属性集。 使用这些接口可为属性提供一个优化的读取和写入实现,而不是在每个应用程序中都有一个实现,其中可能存在性能瓶颈,例如不断寻求。 可以通过实现接口来增强性能,以便可以更快地读取和写入属性,例如,更高效的缓存。 此外,IPropertyStorage 和 IPropertySetStorage 可以作不支持 IStorage实体的属性,尽管一般情况下,大多数应用程序都不会这样做。
本节包含以下主题:
相关主题