持久对象接口

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

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

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

例如,下表列出了多个可支持不同的持久对象接口的对象类型。

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

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

初始化持久对象