Registros de metarchivo mejorados
Un metarchivo mejorado es una matriz de registros. Un registro de metarchivo es una estructura ENHMETARECORD de longitud variable. Al principio de cada registro de metarchivo mejorado se encuentra una estructura EMR , que contiene dos miembros. El primer miembro, iType, identifica el tipo de registro que es, la función GDI cuyos parámetros se encuentran en el registro. Dado que las estructuras son variables de longitud, el otro miembro, nSize, contiene el tamaño del registro. Inmediatamente después del miembro nSize son los parámetros restantes, si los hay, de la función GDI. El resto de la estructura contiene datos adicionales que dependen del tipo de registro.
El primer registro de un metarchivo mejorado es siempre la estructura ENHMETAHEADER , que es el encabezado de metarchivo mejorado. El encabezado especifica la siguiente información:
- Tamaño del metarchivo, en bytes
- Dimensiones del marco de imagen, en unidades de dispositivo
- Dimensiones del marco de imagen, en unidades de .01 milímetros
- Número de registros del metarchivo
- Desplazamiento a una descripción de texto opcional
- Tamaño de la paleta opcional
- Resolución del dispositivo original, en píxeles
- Resolución del dispositivo original, en milímetros
Una descripción de texto opcional puede seguir el registro de encabezado. La descripción del texto describe la imagen y el nombre del autor. La paleta opcional especifica los colores usados para crear el metarchivo mejorado. Los registros restantes identifican las funciones de GDI usadas para crear la imagen. La siguiente salida hexadecimal corresponde a un registro generado para una llamada a la función SetMapMode .
00000011 0000000C 00000004
El valor 0x00000011 especifica el tipo de registro (corresponde a la constante EMR_SETMAPMODE definida en el archivo Wingdi.h). El valor 0x0000000C especifica la longitud del registro, en bytes. El valor 0x00000004 identifica el modo de asignación (corresponde a la constante MM_LOENGLISH definida en la función SetMapMode ).
Para obtener una lista de tipos de registros adicionales, vea Estructuras de metarchivo.