Registros de Metafile aprimorados
Um meta-arquivo aprimorado é uma matriz de registros. Um registro de metafile é uma estrutura ENHMETARECORD de comprimento variável. No início de cada registro de metafile aprimorado está uma estrutura EMR , que contém dois membros. O primeiro membro, iType, identifica o tipo de registro, ou seja, a função GDI cujos parâmetros estão contidos no registro. Como as estruturas são variáveis de comprimento, o outro membro, nSize, contém o tamanho do registro. Imediatamente após o membro nSize estão os parâmetros restantes, se houver, da função GDI. O restante da estrutura contém dados adicionais que dependem do tipo de registro.
O primeiro registro em um meta-arquivo aprimorado é sempre a estrutura ENHMETAHEADER , que é o cabeçalho enhanced-metafile. O cabeçalho especifica as seguintes informações:
- Tamanho do meta-arquivo, em bytes
- Dimensões do quadro de imagem, em unidades de dispositivo
- Dimensões do quadro de imagem, em unidades .01 milímetros
- Número de registros no metarquivo
- Deslocamento para uma descrição de texto opcional
- Tamanho da paleta opcional
- Resolução do dispositivo original, em pixels
- Resolução do dispositivo original, em milímetros
Uma descrição de texto opcional pode seguir o registro de cabeçalho. A descrição do texto descreve a imagem e o nome do autor. A paleta opcional especifica as cores usadas para criar o metarquivo aprimorado. Os registros restantes identificam as funções GDI usadas para criar a imagem. A saída hexadecimal a seguir corresponde a um registro gerado para uma chamada para a função SetMapMode .
00000011 0000000C 00000004
O valor 0x00000011 especifica o tipo de registro (corresponde à constante EMR_SETMAPMODE definida no arquivo Wingdi.h). O valor 0x0000000C especifica o comprimento do registro, em bytes. O valor 0x00000004 identifica o modo de mapeamento (corresponde à constante MM_LOENGLISH definida na função SetMapMode ).
Para obter uma lista de tipos de registro adicionais, consulte Estruturas de Metarquivo.