Rozšířené záznamy metasouboru
Rozšířený metasoubor je pole záznamů. Záznam metasouboru je proměnná délka ENHMETARECORD struktury. Na začátku každého rozšířeného záznamu metasouboru je struktura EMR, která obsahuje dva členy. První člen iType identifikuje typ záznamu, tj. funkci GDI, jejíž parametry jsou obsaženy v záznamu. Vzhledem k tomu, že struktury jsou proměnné délky, druhý člen nSize, obsahuje velikost záznamu. Bezprostředně po členu nSize jsou zbývající parametry funkce GDI( pokud existuje). Zbývající část struktury obsahuje další data, která jsou závislá na typu záznamu.
První záznam v rozšířeném metasouboru je vždy ENHMETAHEADER struktury, což je hlavička enhanced-metafile. Hlavička určuje následující informace:
- Velikost metasouboru v bajtech
- Rozměry rámečku obrázku v jednotkách zařízení
- Rozměry rámečku obrázku v 01 milimetrových jednotkách
- Počet záznamů v metasouboru
- Posun na volitelný textový popis
- Velikost volitelné palety
- Rozlišení původního zařízení v pixelech
- Rozlišení původního zařízení v milimetrech
Volitelný textový popis může následovat za záznamem záhlaví. Popis textu popisuje obrázek a jméno autora. Volitelná paleta určuje barvy použité k vytvoření rozšířeného metasouboru. Zbývající záznamy identifikují funkce GDI použité k vytvoření obrázku. Následující šestnáctkový výstup odpovídá záznamu generovanému pro volání SetMapMode funkce.
00000011 0000000C 00000004
Hodnota 0x00000011 určuje typ záznamu (odpovídá konstantě EMR_SETMAPMODE definované v souboru Wingdi.h). Hodnota 0x0000000C určuje délku záznamu v bajtech. Hodnota, 0x00000004 identifikuje režim mapování (odpovídá MM_LOENGLISH konstantě definované ve funkci SetMapMode).