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.
- Rufen Sie eine Kopie eines Enhanced-Metafile-Headers ab.
- Ruft eine Binärversion einer erweiterten Metadatei ab.
- Enumerieren Sie die Farben in der optionalen Palette.
Diese Aufgaben werden in den Abschnitten im restlichen Teil dieses Themas erläutert.
Anzeigen des in einer erweiterten Metadatei gespeicherten Bilds
Sie können das in einer erweiterten Metadatei gespeicherte Bild mithilfe der PlayEnhMetaFile-Funktion anzeigen. Übergeben Sie der Funktion ein Handle an die erweiterte Metadatei, ohne sich mit dem Format der erweiterten Metadateidatensätze zu kümmern. Es ist jedoch manchmal wünschenswert, die Datensätze in der erweiterten Metadatei aufzählen, um nach einer bestimmten GDI-Funktion zu suchen und die Parameter der Funktion in irgendeiner Weise zu ändern. Hierzu können Sie EnumEnhMetaFile verwenden und die Rückruffunktion EnhMetaFileProcbereitstellen, 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 duplizierte) Kopien einer Datei, bevor der Benutzer das Ändern des Originals ermöglicht. Eine Anwendung kann eine Sicherungskopie einer erweiterten Metadatei erstellen, indem sie die CopyEnhMetaFile-Funktion aufruft, ein Handle zur Identifizierung der erweiterten Metadatei und einen Zeiger auf den Namen der neuen Datei an die Hand gibt.
Um eine speicherbasierte Metadatei im erweiterten Format zu erstellen, rufen Sie die SetEnhMetaFileBits-Funktion auf.
Bearbeiten einer erweiterten Metadatei
Die meisten Anwendungen für Zeichnung, Abbildung und computergestütztes Design (CAD) erfordern eine Möglichkeit 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 EnumEnhMetaFile-Funktion in Kombination mit anderen Funktionen verwenden, um diese Funktion in Ihrer Anwendung zur Verfügung zu stellen. Mit der EnumEnhMetaFile-Funktion und der zugehörigen Rückruffunktion EnhMetaFileProckann die Anwendung einzelne Datensätze in einer erweiterten Metadatei verarbeiten.
Abrufen der optionalen Beschreibung, die in einer erweiterten Metadatei gespeichert ist
Einige Anwendungen zeigen im Dialogfeld Öffnen die Textbeschreibung einer erweiterten Metadatei mit dem entsprechenden Dateinamen an. Sie können ermitteln, ob diese Zeichenfolge in einer erweiterten Metadatei vorhanden ist, indem Sie den Metadateiheader mit der GetEnhMetaFileHeader-Funktion abrufen und einen seiner Member untersuchen. Wenn die Zeichenfolge vorhanden ist, ruft die Anwendung sie ab, indem sie die GetEnhMetaFileDescription-Funktion aufruft.
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.
Aufzählen 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 Funktion RealizePalette 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 den entsprechenden Member. Wenn eine Palette vorhanden ist, können Sie die GetEnhMetaFilePaletteEntries-Funktion aufrufen, um die logische Palette abzurufen.