Erweiterte Metadateidatensätze
Eine erweiterte Metadatei ist ein Array von Datensätzen. Ein Metadateidatensatz ist eine variable Länge ENHMETARECORD Struktur. Zu Beginn jedes erweiterten Metadateidatensatzes handelt es sich um eine EMR- Struktur, die zwei Member enthält. Das erste Element, iType, identifiziert den Datensatztyp, d. h. die GDI-Funktion, deren Parameter im Datensatz enthalten sind. Da die Strukturen variabel sind, enthält das andere Element nSize die Größe des Datensatzes. Unmittelbar nach dem nSize-Element befinden sich die verbleibenden Parameter (sofern vorhanden) der GDI-Funktion. Der Rest der Struktur enthält zusätzliche Daten, die vom Datensatztyp abhängig sind.
Der erste Datensatz in einer erweiterten Metadatei ist immer die ENHMETAHEADER Struktur, die der Enhanced-Metafile-Header ist. Die Kopfzeile gibt die folgenden Informationen an:
- Größe der Metadatei in Byte
- Abmessungen des Bildrahmens in Geräteeinheiten
- Abmessungen des Bildrahmens in 0,01-Millimeter-Einheiten
- Anzahl der Datensätze in der Metadatei
- Offset zu einer optionalen Textbeschreibung
- Größe der optionalen Palette
- Auflösung des ursprünglichen Geräts in Pixel
- Auflösung des originalen Geräts in Millimetern
Eine optionale Textbeschreibung kann dem Kopfzeilendatensatz folgen. Die Textbeschreibung beschreibt das Bild und den Namen des Autors. Die optionale Palette gibt die Farben an, die zum Erstellen der erweiterten Metadatei verwendet werden. Die verbleibenden Datensätze identifizieren die GDI-Funktionen, die zum Erstellen des Bilds verwendet werden. Die folgende hexadezimale Ausgabe entspricht einem Datensatz, der für einen Aufruf der SetMapMode--Funktion generiert wird.
00000011 0000000C 00000004
Der Wert 0x00000011 gibt den Datensatztyp an (entspricht der in der Datei Wingdi.h definierten EMR_SETMAPMODE Konstanten). Der Wert 0x0000000C gibt die Länge des Datensatzes in Byte an. Der Wert 0x00000004 identifiziert den Zuordnungsmodus (entspricht der in der SetMapMode-funktion definierten MM_LOENGLISH Konstanten).
Eine Liste zusätzlicher Datensatztypen finden Sie unter MetafileStrukturen.