常設物件介面
持續性物件會實作一或多個 持續性物件介面。 用戶端會使用永續性物件介面來告訴這些物件儲存其狀態的時機和位置。 所有持續性物件介面都是衍生自 IPersist,因此任何實作任何持續性物件介面的物件也會實作 IPersist。
目前已定義下列持續性物件介面:
- IPersistStream
- IPersistStreamInit
- IPersist 儲存體
- IPersistFile
- IPersistMoniker
- IPersistMemory
- IPersistPropertyBag
實作者會根據物件的使用方式,選擇物件支持的持續性物件介面。 藉由不支援任何持續性物件介面,實作者實際上表示:「無法持續儲存此物件的狀態」。藉由支援一或多個持續性物件介面,實作者實際上表示:「此物件的狀態可以持續儲存在一或多個數據存放區媒體中。
例如,下表列出數種物件類型,允許支援不同的永續性物件介面。
類別 | 一般支持持續性物件介面 |
---|---|
Monikers |
IPersistStream |
OLE 可內嵌的物件 |
IPersist 儲存體、IPersistFile |
ActiveX 控制項 |
IPersistStreamInit、IPersist 儲存體、IPersistMemory、IPersistPropertyBag、IPersistMoniker |
ActiveX 檔物件 |
IPersist 儲存體、IPersistFile |
用戶端實作者也可以選擇用戶端可以使用的持續性物件介面。 用戶端使用的介面通常取決於用戶端可以儲存自己的數據的位置。 只能將其數據儲存在一般檔案中的用戶端,可能會只使用 IPersistStreamInit、IPersistMoniker 和 IPersistPropertyBag。 (IPersistStreamInit 可以取代大多數應用程式中的 IPersistStream,因為它包含該定義並新增初始化方法。此外,可將數據儲存至結構化記憶體檔案的用戶端,也會使用 IPersist 儲存體。