Registros de metafile aprimorados
Um metafile aprimorado é uma matriz de registros. Um registro de metafile é uma estrutura deENHMETARECORDde comprimento variável. No início de cada registro de metafile aprimorado está uma estrutura deemR, 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 metafile aprimorado é sempre a estrutura ENHMETAHEADER, que é o cabeçalho de metafile aprimorado. O cabeçalho especifica as seguintes informações:
- Tamanho do metafile, em bytes
- Dimensões do quadro de imagem, em unidades de dispositivo
- Dimensões do quadro de imagem, em unidades de .01 milímetros
- Número de registros no metafile
- 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 metafile 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çãoSetMapMode.
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 Metafile.