Dela via


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:

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.

Initiera beständiga objekt