2.3.7 State Record Types

The State Record Types specify operations on the state of the playback device context. The following are EMF+ state record types:

Name

Section

Description

EmfPlusBeginContainer

2.3.7.1

Starts a new graphics state container with a transformation.

EmfPlusBeginContainerNoParams

2.3.7.2

Starts a new graphics state container.

EmfPlusEndContainer

2.3.7.3

Closes a graphics state container that was previously opened by a begin container operation.

EmfPlusRestore

2.3.7.4

Restores a saved graphics state.

EmfPlusSave

2.3.7.5

Saves the current graphics state.

The generic structure of EMF+ state 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

Flags

Size

DataSize

RecordData (variable)

...

Type (2 bytes): An unsigned integer that identifies the record type. The state record types are listed below. See the table above for descriptions of these records.

Name

Value

EmfPlusSave

0x4025

EmfPlusRestore

0x4026

EmfPlusBeginContainer

0x4027

EmfPlusBeginContainerNoParams

0x4028

EmfPlusEndContainer

0x4029

Flags (2 bytes): An unsigned integer that contains information for some records on how the operation is to be performed and on the structure of the record.

Size (4 bytes): An unsigned integer that defines the 32-bit-aligned size of the entire record in bytes, including the 12-byte record header and the record-specific data.

DataSize (4 bytes): An unsigned integer that defines the 32-bit-aligned number of bytes of data in the RecordData field that follows. This number does not include the 12-byte record header.

RecordData (variable): An optional, variable-length array of bytes that, if present, defines the data specific to individual records. For specifications of the additional information, if any, which is contained within this field, see individual record definitions.