Freigeben über


Erweiterte Metadateivorgänge

Sie können das Handle für eine erweiterte Metadatei verwenden, um die folgenden Aufgaben auszuführen:

  • Zeigt das in einer erweiterten Metadatei gespeicherte Bild an.
  • Erstellen Sie Kopien einer erweiterten Metadatei.
  • Bearbeiten Sie eine erweiterte Metadatei.
  • Rufen Sie die optionale Beschreibung ab, die in einer erweiterten Metadatei gespeichert ist.
  • Ruft eine Kopie eines enhanced-metafile-Headers ab.
  • Ruft eine binärversion einer erweiterten Metadatei ab.
  • Auflisten der Farben in der optionalen Palette.

Diese Aufgaben werden in den Abschnitten im weiteren Verlauf dieses Themas erläutert.

Anzeigen des in einer erweiterten Metadatei gespeicherten Bilds

Sie können das in einer erweiterten Metadatei gespeicherte Bild mit der Funktion PlayEnhMetaFile anzeigen. Übergeben Sie der Funktion ein Handle an die erweiterte Metadatei, ohne sich um das Format der erweiterten Metadateidatensätze kümmern zu müssen. Es ist jedoch manchmal wünschenswert, die Datensätze in der erweiterten Metadatei aufzuzählen, um nach einer bestimmten GDI-Funktion zu suchen und die Parameter der Funktion in irgendeiner Weise zu ändern. Dazu können Sie EnumEnhMetaFile verwenden und die Rückruffunktion EnhMetaFileProc bereitstellen, um die erweiterten Metadateidatensätze zu verarbeiten. Um die Parameter für einen erweiterten Metadateidatensatz zu ändern, müssen Sie das Format der Parameter innerhalb des Datensatzes kennen.

Erstellen von Kopien einer erweiterten Metadatei

Einige Anwendungen erstellen temporäre Sicherungskopien (oder Duplikate) einer Datei, bevor der Benutzer das Original ändern kann. Eine Anwendung kann eine Sicherungskopie einer erweiterten Metadatei erstellen, indem sie die CopyEnhMetaFile-Funktion aufruft, ein Handle bereitstellt, das die erweiterte Metadatei identifiziert, und einen Zeiger auf den Namen der neuen Datei bereitstellt.

Um eine speicherbasierte Metadatei im erweiterten Format zu erstellen, rufen Sie die SetEnhMetaFileBits-Funktion auf.

Bearbeiten einer erweiterten Metadatei

Die meisten Cad-Anwendungen (Computer-Aided Design) erfordern ein Mittel zum Bearbeiten eines Bilds, das in einer erweiterten Metadatei gespeichert ist. Obwohl das Bearbeiten einer erweiterten Metadatei eine komplexe Aufgabe ist, können Sie die Funktion EnumEnhMetaFile in Kombination mit anderen Funktionen verwenden, um diese Funktion in Ihrer Anwendung bereitzustellen. Die EnumEnhMetaFile-Funktion und die zugehörige Rückruffunktion EnhMetaFileProc ermöglichen es der Anwendung, einzelne Datensätze in einer erweiterten Metadatei zu verarbeiten.

Abrufen der in einer erweiterten Metadatei gespeicherten optionalen Beschreibung

Einige Anwendungen zeigen die Textbeschreibung einer erweiterten Metadatei mit dem entsprechenden Dateinamen im Dialogfeld Öffnen an. Sie können bestimmen, ob diese Zeichenfolge in einer erweiterten Metadatei vorhanden ist, indem Sie den Metadateiheader mit der GetEnhMetaFileHeader-Funktion abrufen und eines ihrer Member untersuchen. Wenn die Zeichenfolge vorhanden ist, ruft die Anwendung sie durch Aufrufen der GetEnhMetaFileDescription-Funktion ab.

Abrufen einer Binärversion einer erweiterten Metadatei

Sie können den Inhalt einer Metadatei abrufen, indem Sie die GetEnhMetaFileBits-Funktion aufrufen. Vor dem Abrufen des Inhalts müssen Sie jedoch die Größe der Datei angeben. Um die Größe zu erhalten, können Sie die GetEnhMetaFileHeader-Funktion verwenden und den entsprechenden Member untersuchen.

Auflisten der Farben in der optionalen Palette

Um konsistente Farben zu erzielen, wenn ein Bild auf verschiedenen Ausgabegeräten angezeigt wird, können Sie die CreatePalette-Funktion aufrufen und eine logische Palette in einer erweiterten Metadatei speichern. Eine Anwendung, die das in der erweiterten Metadatei gespeicherte Bild anzeigt, ruft diese Palette ab und ruft die RealizePalette-Funktion auf, bevor das Bild angezeigt wird. Um zu bestimmen, ob eine Palette in einer erweiterten Metadatei gespeichert ist, rufen Sie den Metadateiheader ab, und untersuchen Sie den entsprechenden Member. Wenn eine Palette vorhanden ist, können Sie die GetEnhMetaFilePaletteEntries-Funktion aufrufen, um die logische Palette abzurufen.