Erweiterte Metadateierstellung
Sie erstellen eine erweiterte Metadatei, indem Sie die CreateEnhMetaFile-Funktion verwenden und die entsprechenden Argumente angeben. Das System verwendet diese Argumente, um Bilddimensionen beizubehalten, zu bestimmen, ob die Metadatei auf einem Datenträger oder im Arbeitsspeicher gespeichert werden soll usw.
Um Bilddimensionen über Ausgabegeräte hinweg beizubehalten, erfordert CreateEnhMetaFile die Auflösung des Referenzgeräts. Dieses Referenzgerät ist das Gerät, auf dem das Bild zuerst angezeigt wurde, und der Referenz-DC ist der Gerätekontext , der dem Referenzgerät zugeordnet ist. Wenn Sie die CreateEnhMetaFile-Funktion aufrufen, müssen Sie ein Handle angeben, das diesen DC identifiziert. Sie können dieses Handle abrufen, indem Sie die GetDC - oder CreateDC-Funktion aufrufen. Sie können auch NULL als Handle angeben, um das aktuelle Anzeigegerät für das Referenzgerät zu verwenden.
Die meisten Anwendungen speichern Bilder dauerhaft und erstellen daher eine erweiterte Metadatei, die auf einem Datenträger gespeichert ist; es gibt jedoch einige Fälle, in denen dies nicht erforderlich ist. Beispielsweise könnte eine Textverarbeitungsanwendung, die Diagrammzeichnungsfunktionen bereitstellt, ein benutzerdefiniertes Diagramm als erweiterte Metadatei im Arbeitsspeicher speichern und dann die erweiterten Metadateibits aus dem Arbeitsspeicher in die Dokumentdatei des Benutzers kopieren. Eine Anwendung, die eine Metadatei erfordert, die dauerhaft auf einem Datenträger gespeichert ist, muss den Dateinamen angeben, wenn createEnhMetaFile aufgerufen wird. Wenn Sie keinen Dateinamen angeben, behandelt das System die Metadatei automatisch als temporäre Datei und speichert sie im Arbeitsspeicher.
Sie können einer Metadatei eine optionale Textbeschreibung hinzufügen, die Informationen über das Bild und den Autor enthält. Eine Anwendung kann diese Zeichenfolgen im Dialogfeld Datei öffnen anzeigen, um dem Benutzer Informationen zu Metadateiinhalten bereitzustellen, die bei der Auswahl der entsprechenden Datei hilfreich sind. Wenn eine Anwendung die Textbeschreibung enthält, muss sie beim Aufrufen von CreateEnhMetaFile einen Zeiger auf die Zeichenfolge angeben.
Wenn CreateEnhMetaFile erfolgreich ist, wird ein Handle zurückgegeben, das einen speziellen Metadateigerätekontext identifiziert. Ein Metadateigerätekontext ist eindeutig, da er einer Datei und nicht einem Ausgabegerät zugeordnet ist. Wenn das System eine GDI-Funktion verarbeitet, die ein Handle in einen Metadateigerätekontext empfangen hat, konvertiert es die GDI-Funktion in einen enhanced-metafile-Datensatz und fügt den Datensatz am Ende der erweiterten Metadatei an.
Nachdem ein Bild abgeschlossen ist und der letzte Datensatz an die erweiterte Metadatei angefügt wurde, kann die Anwendung die Datei durch Aufrufen der CloseEnhMetaFile-Funktion schließen. Diese Funktion schließt und löscht den speziellen Metadateigerätekontext und gibt ein Handle zurück, das die erweiterte Metadatei identifiziert.
Um eine Metadatei im erweiterten Format oder ein Metadateihandle im erweiterten Format zu löschen, rufen Sie die DeleteEnhMetaFile-Funktion auf.