CPersistStream, classe

hiérarchie de la classe cpersiststream

CPersistStream est la classe de base pour les propriétés persistantes des filtres (c’est-à-dire les propriétés de filtre dans les graphiques enregistrés).

La façon la plus simple d’utiliser CPersistStream consiste à :

  1. Organisez votre filtre pour qu’il hérite de cette classe.

  2. Implémentez WriteToStream et readFromStream dans votre classe. Celles-ci remplacent les fonctions ici, qui ne font rien, mais agissent comme des espaces réservés.

  3. Modifiez votre NonDelegatingQueryInterface pour gérer IPersistStream.

  4. Implémentez SizeMax pour retourner une limite supérieure au nombre d’octets de données que vous enregistrez.

    Si vous enregistrez des données Unicode™, n’oubliez pas qu’un WCHAR est de 2 octets.

  5. Lorsque vos données changent, appelez SetDirty.

Numéros de versions

À un moment donné, vous pouvez décider de modifier ou d’étendre le format de vos données. Vous souhaiterez alors avoir un numéro de version dans tous les anciens flux enregistrés, ce qui vous permettra de savoir, quand vous les lisez, s’ils représentent l’ancien ou le nouveau formulaire. Pour vous aider, cette classe écrit et lit un numéro de version. Lorsqu’il écrit, il appelle GetSoftwareVersion pour se renseigner sur la version du logiciel actuellement utilisée. (En fait, il s’agit d’un numéro de version de la disposition des données dans le fichier.) Il écrit ceci comme première chose dans les données. Si vous souhaitez modifier la version, implémentez (override) GetSoftwareVersion. Il lit le numéro de version du fichier dans MPS _ dwFileVersion avant d’appeler readFromStream. ainsi, dans readFromStream , vous pouvez vérifier les _ dwFileVersion MPS pour voir si vous lisez un ancien fichier de version. En général, vous devez accepter les fichiers dont la version n’est pas plus récente que la version du logiciel qui les lit.

CPersistStream implémente IPersistStream. Pour plus d’informations sur l’implémentation, consultez la référence COM dans le kit de développement logiciel (SDK) Microsoft Platform.

Membres de données protégés Description
_DwFileVersion mPS Numéro de version du fichier.
_FDirty mPS Les données de ce flux doivent être enregistrées.
Fonctions de membre Description
CPersistStream Construit un objet CPersistStream .
SetDirty Indique que l’objet doit être enregistré dans le flux.
Fonctions membres substituables Description
GetClassID Récupère l’identificateur de classe de ce flux.
GetSoftwareVersion Récupère le numéro de version pour ce format de fichier.
ReadFromStream Lit les données du filtre à partir du flux.
SizeMax Récupère le nombre d’octets nécessaires pour les données (à l’exclusion du numéro de version).
WriteToStream Écrit les données du filtre dans le flux.
IPersistStream, méthodes Description
GetSizeMax Récupère le nombre d’octets nécessaires pour les données (y compris le numéro de version).
IsDirty Vérifie si l’objet doit être enregistré.
Load Charge les données du flux en mémoire.
Enregistrer Enregistre les données de la mémoire dans le flux.