Rozszerzone rekordy metaplików
Rozszerzony metaplik to tablica rekordów. Rekord metapliku jest zmienną długością strukturę ENHMETARECORD. Na początku każdego rozszerzonego rekordu metapliku jest struktura EMR zawierająca dwa elementy członkowskie. Pierwszy element członkowski, iType, identyfikuje typ rekordu, czyli funkcję GDI, której parametry są zawarte w rekordzie. Ponieważ struktury są zmiennej długości, drugi element członkowski, nSize, zawiera rozmiar rekordu. Bezpośrednio po elemencie nSize znajdują się pozostałe parametry funkcji GDI, jeśli istnieją. Pozostała część struktury zawiera dodatkowe dane zależne od typu rekordu.
Pierwszy rekord w rozszerzonym metapliku jest zawsze enHMETAHEADER struktury, która jest nagłówkiem rozszerzonym metapliku. Nagłówek określa następujące informacje:
- Rozmiar metapliku w bajtach
- Wymiary ramki obrazu w jednostkach urządzeń
- Wymiary ramki obrazu w jednostkach 01-milimetrowych
- Liczba rekordów w metapliku
- Przesunięcie do opcjonalnego opisu tekstowego
- Rozmiar opcjonalnej palety
- Rozdzielczość oryginalnego urządzenia w pikselach
- Rozdzielczość oryginalnego urządzenia w milimetrach
Opcjonalny opis tekstu może podążać za rekordem nagłówka. Opis tekstu opisuje obraz i nazwę autora. Opcjonalna paleta określa kolory używane do tworzenia rozszerzonego metapliku. Pozostałe rekordy identyfikują funkcje GDI używane do tworzenia obrazu. Następujące dane wyjściowe szesnastkowe odpowiadają rekordowi wygenerowanemu dla wywołania funkcji SetMapMode.
00000011 0000000C 00000004
Wartość 0x00000011 określa typ rekordu (odpowiada stałej EMR_SETMAPMODE zdefiniowanej w pliku Wingdi.h). Wartość 0x0000000C określa długość rekordu w bajtach. Wartość 0x00000004 identyfikuje tryb mapowania (odpowiada stałej MM_LOENGLISH zdefiniowanej w funkcji SetMapMode).
Aby uzyskać listę dodatkowych typów rekordów, zobacz Metafile Structures.