향상된 메타파일 레코드
향상된 메타파일은 레코드 배열입니다. 메타파일 레코드는 가변 길이 ENHMETARECORD 구조체입니다. 모든 향상된 메타파일 레코드의 시작 부분에는 두 멤버가 포함된 EMR 구조가 있습니다. 첫 번째 멤버인 iType은 레코드에 매개 변수가 포함된 GDI 함수인 레코드 형식을 식별합니다. 구조체의 길이가 가변적이므로 다른 멤버인 nSize에는 레코드의 크기가 포함됩니다. nSize 멤버 바로 다음에는 GDI 함수의 나머지 매개 변수(있는 경우)가 있습니다. 구조체의 나머지 부분에는 레코드 형식에 종속된 추가 데이터가 포함됩니다.
향상된 메타파일의 첫 번째 레코드는 항상 향상된 메타파일 헤더인 ENHMETAHEADER 구조체입니다. 헤더는 다음 정보를 지정합니다.
- 메타파일의 크기(바이트)
- 장치 단위로 된 그림 프레임의 차원
- 그림 프레임의 크기(.01밀리미터 단위)
- 메타파일의 레코드 수
- 선택적 텍스트 설명에 대한 오프셋
- 선택적 색상표의 크기
- 원래 디바이스의 해상도(픽셀)
- 원래 디바이스의 해상도(밀리미터)
선택적 텍스트 설명은 헤더 레코드를 따를 수 있습니다. 텍스트 설명은 그림과 작성자의 이름을 설명합니다. 선택적 색상표는 향상된 메타파일을 만드는 데 사용되는 색을 지정합니다. 나머지 레코드는 그림을 만드는 데 사용되는 GDI 함수를 식별합니다. 다음 16진수 출력은 SetMapMode 함수 호출에 대해 생성된 레코드에 해당합니다.
00000011 0000000C 00000004
0x00000011 값은 레코드 형식을 지정합니다(Wingdi.h 파일에 정의된 EMR_SETMAPMODE 상수에 해당). 0x0000000C 값은 레코드의 길이(바이트)를 지정합니다. 0x00000004 값은 매핑 모드를 식별합니다( SetMapMode 함수에 정의된 MM_LOENGLISH 상수에 해당).
추가 레코드 형식 목록은 메타파일 구조를 참조하세요.