Delen via


Verbeterde metabestandrecords

Een uitgebreid metabestand is een matrix met records. Een metabestandrecord is een variabele lengte ENHMETARECORD structuur. Aan het begin van elke verbeterde metabestandrecord bevindt zich een EMR- structuur, die twee leden bevat. Het eerste lid, iType, identificeert het recordtype, de GDI-functie waarvan de parameters zijn opgenomen in de record. Omdat de structuren variabel in lengte zijn, bevat het andere lid, nSize, de grootte van de record. Direct na het nSize-lid zijn de resterende parameters, indien van toepassing, van de GDI-functie. De rest van de structuur bevat aanvullende gegevens die afhankelijk zijn van het recordtype.

De eerste record in een uitgebreid metabestand is altijd de ENHMETAHEADER structuur. Dit is de header enhanced-metafile. De header geeft de volgende informatie op:

  • Grootte van het metabestand, in bytes
  • Afmetingen van het afbeeldingskader, in apparaateenheden
  • Afmetingen van het afbeeldingskader, in eenheden van 01 millimeter
  • Aantal records in het metabestand
  • Verschuiving naar een optionele tekstbeschrijving
  • Grootte van het optionele palet
  • Resolutie van het oorspronkelijke apparaat, in pixels
  • Resolutie van het oorspronkelijke apparaat, in millimeters

Een optionele tekstbeschrijving kan de koptekstrecord volgen. In de tekstbeschrijving worden de afbeelding en de naam van de auteur beschreven. Het optionele palet geeft de kleuren op die worden gebruikt om het verbeterde metabestand te maken. De resterende records identificeren de GDI-functies die worden gebruikt om de afbeelding te maken. De volgende hexadecimale uitvoer komt overeen met een record die is gegenereerd voor een aanroep naar de SetMapMode functie.

00000011 0000000C 00000004 

De waarde 0x00000011 geeft het recordtype op (komt overeen met de EMR_SETMAPMODE constante die is gedefinieerd in het bestand Wingdi.h). De waarde 0x0000000C geeft de lengte van de record op, in bytes. De waarde 0x00000004 identificeert de toewijzingsmodus (komt overeen met de MM_LOENGLISH constante die is gedefinieerd in de SetMapMode-functie).

Zie Metafile Structuresvoor een lijst met extra recordtypen.