Förbättrade metafilposter
En förbättrad metafil är en matris med poster. En metafilpost är en ENHMETARECORD- struktur. I början av varje utökad metafilpost finns en EMR- struktur som innehåller två medlemmar. Den första medlemmen, iType, identifierar den posttyp som är, den GDI-funktion vars parametrar finns i posten. Eftersom strukturerna är varierande i längd, innehåller den andra medlemmen, nSize, postens storlek. Omedelbart efter nSize-medlemmen är de återstående parametrarna, om några, för GDI-funktionen. Resten av strukturen innehåller ytterligare data som är beroende av posttypen.
Den första posten i en förbättrad metafil är alltid ENHMETAHEADER- struktur, som är rubriken enhanced-metafile. Rubriken anger följande information:
- Metafilens storlek i byte
- Bildramens dimensioner i enhetsenheter
- Bildramens dimensioner, i .01-millimetersenheter
- Antal poster i metafilen
- Förskjutning till en valfri textbeskrivning
- Storleken på den valfria paletten
- Upplösning på den ursprungliga enheten, i bildpunkter
- Upplösning på den ursprungliga enheten, i millimeter
En valfri textbeskrivning kan följa rubrikposten. Textbeskrivningen beskriver bilden och författarens namn. Den valfria paletten anger de färger som används för att skapa den förbättrade metafilen. De återstående posterna identifierar de GDI-funktioner som används för att skapa bilden. Följande hexadecimala utdata motsvarar en post som genererats för ett anrop till funktionen SetMapMode.
00000011 0000000C 00000004
Värdet 0x00000011 anger posttypen (motsvarar den EMR_SETMAPMODE konstant som definierats i filen Wingdi.h). Värdet 0x0000000C anger postens längd i byte. Värdet 0x00000004 identifierar mappningsläget (motsvarar den MM_LOENGLISH konstant som definierats i funktionen SetMapMode).
En lista över ytterligare posttyper finns i Metafile Structures.