Beständiga objektgränssnitt
Ett beständigt objekt implementerar ett eller flera beständiga objektgränssnitt. Klienter använder beständiga objektgränssnitt för att tala om för dessa objekt när och var de ska lagra sitt tillstånd. Alla beständiga objektgränssnitt härleds från IPersist-, så alla objekt som implementerar ett beständigt objektgränssnitt implementerar även IPersist-.
Följande beständiga objektgränssnitt är för närvarande definierade:
- IPersistStream
- IPersistStreamInit
- IPersistStorage
- IPersistFile
- IPersistMoniker
- IPersistMemory
- IPersistPropertyBag
Implementerare väljer vilka beständiga objektgränssnitt som ett objekt stöder beroende på hur objektet ska användas. Genom att inte stödja några beständiga objektgränssnitt säger implementören effektivt: "Det här objektets tillstånd kan inte lagras beständigt." Genom att stödja ett eller flera beständiga objektgränssnitt säger implementeraren effektivt: "Det här objektets tillstånd kan lagras beständigt i ett eller flera datalagermedium."
I följande tabell visas till exempel flera objekttyper som tillåter stöd för olika beständiga objektgränssnitt.
Kategori | Beständiga objektgränssnitt stöds vanligtvis |
---|---|
Monikers |
IPersistStream |
OLE-inbäddningsbara objekt |
IPersistStorage, IPersistFile |
ActiveX-kontroller |
IPersistStreamInit, IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker |
ActiveX-dokumentobjekt |
IPersistStorage, IPersistFile |
Klientverktyg kan också välja vilka beständiga objektgränssnitt som klienten kan använda. De gränssnitt som en klient använder bestäms vanligtvis av var klienten kan lagra sina egna data. En klient som endast kan lagra sina data i en flat fil använder förmodligen bara IPersistStreamInit, IPersistMonikeroch IPersistPropertyBag. (IPersistStreamInit kan ersätta IPersistStream i de flesta program, eftersom den innehåller den definitionen och lägger till en initieringsmetod.) En klient som kan spara sina data i en strukturerad lagringsfil använder dessutom IPersistStorage.