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.
Un objet persistant implémente une ou plusieurs interfaces d’objet persistant . Les clients utilisent des interfaces d’objet persistantes pour indiquer à ces objets quand et où stocker leur état. Toutes les interfaces d’objet persistantes sont dérivées de IPersist , de sorte que tout objet qui implémente n’importe quelle interface d’objet persistante implémente également IPersist .
Les interfaces d’objet persistantes suivantes sont actuellement définies :
- IPersistStream
- IPersistStreamInit
- IPersistStorage
- IPersistFile
- IPersistMoniker
- IPersistMemory
- IPersistPropertyBag
Les implémenteurs choisissent les interfaces d’objet persistantes qu’un objet prend en charge selon la façon dont l’objet doit être utilisé. En ne prenant pas en charge les interfaces d’objet persistantes, l’implémenteur dit en fait : « L’état de cet objet ne peut pas être stocké de manière permanente ». En prenant en charge une ou plusieurs interfaces d’objet persistantes, l’implémenteur dit en fait : « L’état de cet objet peut être stocké de manière permanente dans un ou plusieurs supports de magasin de données ».
Par exemple, le tableau suivant répertorie plusieurs types d’objets qui autorisent la prise en charge de différentes interfaces d’objets persistantes.
| Catégorie | Interfaces d’objet persistantes généralement prises en charge |
|---|---|
| Monikers |
IPersistStream |
| Objets ole incorporés |
IPersistStorage, IPersistFile |
| Contrôles ActiveX |
IPersistStreamInit, IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker |
| Objets de document ActiveX |
IPersistStorage, IPersistFile |
Les implémenteurs clients peuvent également choisir les interfaces d’objet persistantes que le client peut utiliser. Les interfaces qu’un client utilise sont généralement déterminées par l’emplacement où le client peut stocker ses propres données. Un client qui peut stocker ses données uniquement dans un fichier plat n’utilisera probablement que IPersistStreamInit, IPersistMonikeret IPersistPropertyBag. ( IPersistStreamInit peut remplacer IPersistStream dans la plupart des applications, car elle contient cette définition et ajoute une méthode d’initialisation.) Un client capable d’enregistrer ses données dans un fichier de stockage structuré utilise également IPersistStorage.