2.3.4 Control Record Types

The Control record types define the start and end of an EMF metafile and its properties.

The following are EMF control record types.

Name

Section

Description

EMR_EOF

2.3.4.1

Indicates the end of the metafile and specifies a palette.

EMR_HEADER

2.3.4.2

Indicates the start of the metafile and specifies properties of the device on which the metafile was created.

The generic structure of control records is specified as follows.


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

Size

RecordBuffer (variable)

...

Type (4 bytes): An unsigned integer that defines the type of record. The control record types are listed in the following table. See the preceding table for descriptions of these record types.

Name

Value

EMR_HEADER

0x00000001

EMR_EOF

0x0000000E

Size (4 bytes): An unsigned integer that specifies the size in bytes of this record in the metafile. This value MUST be a multiple of 4 bytes.

RecordBuffer (variable): An array of bytes that contains the remainder of the control record.


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

ControlRecordParm (variable)

...

AlignmentPadding (variable, optional)

...

ControlRecordParm (variable): An array of bytes that contains the parameters for the control record.

AlignmentPadding (variable, optional): An array of up to 3 bytes that pads the record so that its total size is a multiple of 4 bytes. This field MUST be ignored.

See section 2.3 for more EMF record types.