Partager via


Opérations de métafichier améliorées

Vous pouvez utiliser le handle pour effectuer les tâches suivantes :

  • Affichez l’image stockée dans un métafichier amélioré.
  • Créez des copies d’un métafichier amélioré.
  • Modifiez un métafichier amélioré.
  • Récupérez la description facultative stockée dans un métafichier amélioré.
  • Récupérez une copie d’un en-tête de métafichier amélioré.
  • Récupérez une version binaire d’un métafichier amélioré.
  • Énumérez les couleurs de la palette facultative.

Ces tâches sont abordées dans les sections du reste de cette rubrique.

Afficher l’image stockée dans un métafichier amélioré

Vous pouvez afficher l’image stockée dans un métafichier amélioré à l’aide de la fonction PlayEnhMetaFile. Transmettez à la fonction un handle au métafichier amélioré, sans être concerné par le format des enregistrements de métafichier améliorés. Toutefois, il est parfois souhaitable d’énumérer les enregistrements dans le métafichier amélioré pour rechercher une fonction GDI particulière et modifier les paramètres de la fonction d’une certaine manière. Pour ce faire, vous pouvez utiliser EnumEnhMetaFile et fournir une fonction de rappel, EnhMetaFileProc, pour traiter les enregistrements de métafichier améliorés. Pour modifier les paramètres d’un enregistrement de métafichier amélioré, vous devez connaître le format des paramètres au sein de l’enregistrement.

Créer des copies d’un métafichier amélioré

Certaines applications créent des copies de sauvegarde temporaire (ou dupliquées) d’un fichier avant d’autoriser l’utilisateur à modifier l’original. Une application peut créer une copie de sauvegarde d’un métafichier amélioré en appelant la fonction CopyEnhMetaFile, en fournissant un handle qui identifie le métafichier amélioré et en fournissant un pointeur au nom du nouveau fichier.

Pour créer un métafichier de format amélioré en mémoire, appelez la fonction SetEnhMetaFileBits.

Modifier un métafichier amélioré

La plupart des applications de dessin, d’illustration et de conception assistée par ordinateur nécessitent un moyen de modifier une image stockée dans un métafichier amélioré. Bien que la modification d’un métafichier amélioré soit une tâche complexe, vous pouvez utiliser la fonction EnumEnhMetaFile en combinaison avec d’autres fonctions pour fournir cette fonctionnalité dans votre application. La fonction EnumEnhMetaFile et sa fonction de rappel associée, EnhMetaFileProc, permettent à l’application de traiter des enregistrements individuels dans un métafichier amélioré.

Récupérer la description facultative stockée dans un métafichier amélioré

Certaines applications affichent la description textuelle d’un métafichier amélioré avec le nom de fichier correspondant dans la boîte de dialogue Ouvrir . Vous pouvez déterminer si cette chaîne existe dans un métafichier amélioré en récupérant l’en-tête de métafichier avec la fonction GetEnhMetaFileHeader et en examinant l’un de ses membres. Si la chaîne existe, l’application la récupère en appelant la fonction GetEnhMetaFileDescription.

Récupérer une version binaire d’un métafichier amélioré

Vous pouvez récupérer le contenu d’un métafichier en appelant la fonction GetEnhMetaFileBits ; Toutefois, avant de récupérer le contenu, vous devez spécifier la taille du fichier. Pour obtenir la taille, vous pouvez utiliser la fonction GetEnhMetaFileHeader et examiner le membre approprié.

Énumérer les couleurs dans la palette facultative

Pour obtenir des couleurs cohérentes lorsqu’une image est affichée sur différents appareils de sortie, vous pouvez appeler la fonction CreatePalette et stocker une palette logique dans un métafichier amélioré. Une application qui affiche l’image stockée dans le métafichier amélioré récupère cette palette et appelle la fonction RealizePalette avant d’afficher l’image. Pour déterminer si une palette est stockée dans un métafichier amélioré, récupérez l’en-tête de métafichier et examinez le membre approprié. Si une palette existe, vous pouvez appeler la fonction GetEnhMetaFilePaletteEntries pour récupérer la palette logique.