Erweiterte Metadateidatensätze
Eine erweiterte Metadatei ist ein Array von Datensätzen. Ein Metadateidatensatz ist eine ENHMETARECORD-Struktur mit variabler Länge. Am Anfang jedes erweiterten Metadateidatensatzes befindet sich eine EMR-Struktur , die zwei Elemente enthält. Das erste Element, iType, identifiziert den Datensatztyp, d. h. die GDI-Funktion, deren Parameter im Datensatz enthalten sind. Da die Strukturen unterschiedlich lang sind, enthält das andere Element nSize die Größe des Datensatzes. Unmittelbar nach dem nSize-Member befinden sich die verbleibenden Parameter der GDI-Funktion, falls vorhanden. 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 , bei der es sich um den header enhanced-metafile handelt. Der Header gibt die folgenden Informationen an:
- Größe der Metadatei in Bytes
- Abmessungen des Bildrahmens in Geräteeinheiten
- Abmessungen des Bilderrahmens in Einheiten von 01 Millimetern
- Anzahl der Datensätze in der Metadatei
- Offset auf eine optionale Textbeschreibung
- Größe der optionalen Palette
- Auflösung des Originalgeräts in Pixel
- Auflösung des Originalgeräts in Millimetern
Eine optionale Textbeschreibung kann dem Headerdatensatz 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 restlichen 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 wurde.
00000011 0000000C 00000004
Der Wert 0x00000011 den Datensatztyp angibt (entspricht der in der Datei Wingdi.h definierten EMR_SETMAPMODE Konstanten). Der Wert 0x0000000C gibt die Länge des Datensatzes in Bytes an. Der Wert 0x00000004 den Zuordnungsmodus identifiziert (entspricht der in der SetMapMode-Funktion definierten MM_LOENGLISH Konstanten).
Eine Liste der zusätzlichen Datensatztypen finden Sie unter Metadateistrukturen.