持久对象接口

永久性对象实现一个或多个 持久对象接口。 客户端使用持久性对象接口来告知这些对象何时和何处存储其状态。 所有持久对象接口都派生自 IPersist,因此任何实现任何永久性对象接口的对象也实现 IPersist

当前定义了以下持久性对象接口:

实现者根据对象的使用方式选择对象支持的持久性对象接口。 通过不支持任何持久性对象接口,实现者有效地说,“无法持久存储此对象的状态。通过支持一个或多个持久性对象接口,实现者有效地说,“此对象的状态可以持久存储在一个或多个数据存储介质中。

例如,下表列出了多个对象类型,这些对象类型允许支持不同的持久性对象接口。

类别 通常支持持久对象接口
名字对象
IPersistStream
OLE 可嵌入对象
IPersistStorageIPersistFile
ActiveX 控件
IPersistStreamInitIPersistStorage、IPersistMemory、IPersistPropertyBag、IPersistMoniker
ActiveX 文档对象
IPersistStorageIPersistFile

客户端实现者还可以选择客户端可以使用的持久性对象接口。 客户端使用的接口通常由客户端可以存储其自己的数据的位置确定。 只能将其数据存储在平面文件中的客户端可能只使用 IPersistStreamInitIPersistMoniker和 IPersistPropertyBag。 (IPersistStreamInit 可以替换大多数应用程序中 IPersistStream,因为它包含该定义并添加初始化方法。此外,可以将数据保存到结构化存储文件的客户端还将使用 IPersistStorage

初始化永久性对象