Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Objecten met een permanente status van elk type moeten ten minste één IPersist*-interface implementeren, en bij voorkeur meerdere interfaces, om de container de meest flexibele keuze te bieden over hoe het de status van een besturingselement wilt opslaan.
Als een besturingselement een permanente status heeft, moet het ten minste IPersistStream- of IPersistStreamInit implementeren (de twee sluiten elkaar wederzijds uit en mogen niet voor het grootste deel samen worden geïmplementeerd). Deze laatste wordt gebruikt wanneer een besturingselement wil weten wanneer deze nieuw wordt gemaakt in plaats van opnieuw te laden vanuit een bestaande permanente status (IPersistStream niet beschikt over de nieuwe mogelijkheid). Het bestaan van een van beide interface geeft aan dat het besturingselement de permanente status ervan kan opslaan en laden in een stroom, dat wil gezegd, een exemplaar van IStream.
Naast deze twee streamgebaseerde interfaces kunnen de IPersist*-interfaces die in de volgende tabel worden vermeld, optioneel worden verstrekt om persistentie te ondersteunen voor andere locaties dan een uitbreidbare IStream-.
Er wordt een set onderdeelcategorieën geïdentificeerd om de ondersteuning voor persistentieinterfaces te behandelen, zie Onderdeelcategorieën.
| Interface | Gebruik |
|---|---|
|
IPersistMemory- |
Het object kan de status opslaan en laden in een sequentieel bytematrix met vaste lengte (in het geheugen). |
|
IPersistStorage- |
Het object kan de status opslaan en laden in een IStorage--exemplaar. Besturingselementen die kunnen worden gemarkeerd als andere samengestelde documentobjecten (voor invoeging in niet-controlebewuste containers) moeten deze interface ondersteunen. |
|
IPersistPropertyBag |
Het object kan de status opslaan en laden als afzonderlijke eigenschappen die zijn geschreven naar IPropertyBag die door de container wordt geïmplementeerd. Dit wordt gebruikt voor de functionaliteit Opslaan als tekst in sommige containers. |
|
IPersistMoniker- |
Het object kan de status opslaan en laden op een locatie met de naam van een moniker. Het besturingselement roept IMoniker::BindToStorage aan om de opslaginterface op te halen die nodig is, zoals IStorage, IStream, ILockBytes, IDataObject, enzovoort. |
Hoewel ondersteuning voor IPersistPropertyBag optioneel is, wordt het sterk aanbevolen als optimalisatie voor containers met functies voor Opslaan als tekst, zoals Visual Basic.
Met uitzondering van IPersistStream::GetSizeMax, IPersistStreamInit::GetSizeMaxen IPersistMemory::GetSizeMax, moeten alle methoden van elke interface volledig worden geïmplementeerd.