Erweiterte Metadateidatensätze

Eine erweiterte Metadatei ist ein Array von Datensätzen. Ein Metadateidatensatz ist eine ENHMETARECORD-Struktur variabler Länge. Am Anfang jedes erweiterten Metadateidatensatzes befindet sich eine EMR-Struktur, die zwei Member enthält. Der erste Member, iType, identifiziert den Datensatztyp, d. h. die GDI-Funktion, deren Parameter im Datensatz enthalten sind. Da die Strukturen eine variable Länge aufweisen, enthält der andere Member nSize die Größe des Datensatzes. Unmittelbar nach dem nSize-Member folgen die verbleibenden Parameter der GDI-Funktion, sofern 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 Bildrahmens in Einheiten von 0,01 Mm
  • 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 ursprünglichen Geräts in Millimeter

Eine optionale Textbeschreibung kann dem Headerdatensatz folgen. In der Textbeschreibung werden das Bild und der Name des Autors beschrieben. 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 wurde.

00000011 0000000C 00000004 

Der Wert 0x00000011 gibt den Datensatztyp an (entspricht der _ in der Datei Wingdi.h definierten EMR SETMAPMODE-Konstante). Der Wert 0x0000000C gibt die Länge des Datensatzes in Bytes an. Der Wert 0x00000004 identifiziert den Zuordnungsmodus (entspricht der _ in der SetMapMode-Funktion definierten MM LOENGLISH-Konstante).

Eine Liste der zusätzlichen Datensatztypen finden Sie unter Metafilestrukturen.