Registros de metarquivo aprimorados
Um metarquivo aprimorado é uma matriz de registros. Um registro de metarquivo é uma estrutura dedeENHMETARECORD de comprimento variável. No início de cada registro de metarquivo aprimorado há 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 em 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 metarquivo aprimorado é sempre o ENHMETAHEADER estrutura, que é o cabeçalho de metarquivo aprimorado. O cabeçalho especifica as seguintes informações:
- Tamanho do metaarquivo, em bytes
- Dimensões da moldura, em unidades de dispositivo
- Dimensões da moldura, em unidades de 0,01 milímetros
- Número de registos no metaficheiro
- 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 avançado. Os registos restantes identificam as funções GDI utilizadas 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 de MM_LOENGLISH definida na funçãoSetMapMode).
Para obter uma lista de tipos de registro adicionais, consulte Estruturas de metarquivo.