2.3.3.3 EmfPlusHeader Record

The EmfPlusHeader record specifies the start of EMF+ data in the metafile.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Type

Flags

Size

DataSize

Version

EmfPlusFlags

LogicalDpiX

LogicalDpiY

Type (2 bytes): An unsigned integer that identifies this record type as EmfPlusHeader from the RecordType enumeration. The value MUST be 0x4001.

Flags (2 bytes): An unsigned integer that provides information about the structure of the metafile.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

D

X (1 bit): Reserved and MUST be ignored.

D (1 bit): If set, this flag indicates that this metafile is EMF+ Dual, which means that it contains two sets of records, each of which completely specifies the graphics content. If clear, the graphics content is specified by EMF+ records, and possibly EMF records ([MS-EMF] section 2.3) that are preceded by an EmfPlusGetDC record. If this flag is set, EMF records alone SHOULD suffice to define the graphics content. Note that whether the EMF+ Dual flag is set or not, some EMF records are always present, namely EMF control records and the EMF records that contain EMF+ records.

Size (4 bytes): An unsigned integer that specifies the 32-bit-aligned size of the entire record in bytes, including the 12-byte record header and record-specific data. For this record type, the value is 0x0000001C.

DataSize (4 bytes): An unsigned integer that specifies the 32-bit-aligned number of bytes of data in the record-specific data that follows. This number does not include the size of the invariant part of this record. For this record type, the value is 0x00000010.

Version (4 bytes): An EmfPlusGraphicsVersion object that specifies the version of operating system graphics that was used to create this metafile.

EmfPlusFlags (4 bytes): An unsigned integer that contains information about how this metafile was recorded.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

V

X (1 bit): Reserved and MUST be ignored.

V (1 bit): If set, this flag indicates that the metafile was recorded with a reference device context for a video display. If clear, the metafile was recorded with a reference device context for a printer.

LogicalDpiX (4 bytes): An unsigned integer that specifies the horizontal resolution for which the metafile was recorded, in units of pixels per inch.

LogicalDpiY (4 bytes): An unsigned integer that specifies the vertical resolution for which the metafile was recorded, in units of lines per inch.

The EmfPlusHeader record MUST be embedded in an EMF EMR_COMMENT_EMFPLUS record, which MUST be the record immediately following the EMF header in the metafile.

See section 2.3.3 for the specification of additional control record types.