Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les objets qui ont un état persistant de n’importe quel type doivent implémenter au moins une interface IPersist* et de préférence plusieurs interfaces, afin de fournir au conteneur le choix le plus flexible de la façon dont il souhaite enregistrer l’état d’un contrôle.
Si un contrôle a un état persistant, il doit, au minimum, implémenter IPersistStream ou IPersistStreamInit (les deux sont mutuellement exclusifs et ne doivent pas être implémentés ensemble pour la plupart). Ce dernier est utilisé lorsqu’un contrôle souhaite savoir quand il est créé par opposition au rechargement à partir d’un état persistant existant (IPersistStream n’a pas la fonctionnalité créée). L’existence de l’une ou l’autre interface indique que le contrôle peut enregistrer et charger son état persistant dans un flux, autrement dit, une instance de IStream.
Au-delà de ces deux interfaces basées sur un flux, les interfaces IPersist* répertoriées dans le tableau suivant peuvent éventuellement être fournies pour prendre en charge la persistance aux emplacements autres qu’un IStreamextensible.
Un ensemble de catégories de composants est identifié pour couvrir la prise en charge des interfaces de persistance, consultez Catégories de composants.
| Interface | Usage |
|---|---|
|
IPersistMemory |
L’objet peut enregistrer et charger son état dans un tableau d’octets séquentiel de longueur fixe (en mémoire). |
|
IPersistStorage |
L’objet peut enregistrer et charger son état dans une instance IStorage. Les contrôles qui souhaitent être marqués Comme autres objets de document composés (pour l’insertion dans des conteneurs non prenant en charge les contrôles) doivent prendre en charge cette interface. |
|
IPersistPropertyBag |
L’objet peut enregistrer et charger son état en tant que propriétés individuelles écrites dans IPropertyBag que le conteneur implémente. Cette fonctionnalité est utilisée pour la fonctionnalité Enregistrer sous texte dans certains conteneurs. |
|
IPersistMoniker |
L’objet peut enregistrer et charger son état dans un emplacement nommé par un moniker. Le contrôle appelle IMoniker ::BindToStorage pour récupérer l’interface de stockage requise, telle que IStorage , IStream, ILockBytes, IDataObject, etc. |
Bien que la prise en charge de IPersistPropertyBag soit facultative, il est fortement recommandé d’optimiser les conteneurs avec des fonctionnalités Enregistrer sous texte, telles que Visual Basic.
À l’exception de IPersistStream ::GetSizeMax, IPersistStreamInit ::GetSizeMaxet IPersistMemory ::GetSizeMax, toutes les méthodes de chaque interface doivent être entièrement implémentées.