Persistente Objektschnittstellen

Ein persistentes -Objekt implementiert eine oder mehrere persistente Objektschnittstellen. Clients verwenden persistente Objektschnittstellen, um diese Objekte darüber zu informieren, wann und wo sie ihren Zustand speichern. Alle persistenten Objektschnittstellen werden von IPersistabgeleitet, sodass jedes Objekt, das eine persistente Objektschnittstelle implementiert, auch IPersist implementiert.

Die folgenden persistenten Objektschnittstellen sind derzeit definiert:

Implementierer wählen aus, welche persistenten Objektschnittstellen ein Objekt unterstützt, je nachdem, wie das Objekt verwendet werden soll. Da keine persistenten Objektschnittstellen unterstützt werden, sagt der Implementer effektiv: "Der Zustand dieses Objekts kann nicht dauerhaft gespeichert werden." Durch die Unterstützung einer oder mehrere persistenter Objektschnittstellen sagt der Implementer effektiv: "Der Zustand dieses Objekts kann dauerhaft in einem oder mehr Datenspeichermedium gespeichert werden."

In der folgenden Tabelle sind beispielsweise mehrere Objekttypen aufgeführt, die Unterstützung für verschiedene persistente Objektschnittstellen ermöglichen.

Category Persistente Objektschnittstellen werden in der Regel unterstützt.
Moniker
Ipersiststream
Einbettbare OLE-Objekte
IPersistStorage, IPersistFile
ActiveX-Steuerelemente
IPersistStreamInit, IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker
ActiveX Dokumentobjekte
IPersistStorage, IPersistFile

Client-Implementierer können auch auswählen, welche persistenten Objektschnittstellen der Client verwenden kann. Die Schnittstellen, die ein Client verwendet, werden in der Regel durch den Ort bestimmt, an dem der Client seine eigenen Daten speichern kann. Ein Client, der seine Daten nur in einer Flatdatei speichern kann, verwendet wahrscheinlich nur IPersistStreamInit, IPersistMonikerund IPersistPropertyBag. (IPersistStreamInit kann IPersistStream in den meisten Anwendungen ersetzen, da es diese Definition enthält und eine Initialisierungsmethode hinzufügt.) Ein Client, der seine Daten in einer strukturierten Speicherdatei speichern kann, verwendet zusätzlich IPersistStorage.

Initialisieren persistenter Objekte