2.3.1 Clipping Record Types

The Clipping Record types specify clipping regions and operations. The following are EMF+ clipping record types:

Name

Section

Description

EmfPlusOffsetClip

2.3.1.1

Applies a translation transform on the current clipping region for the world space.

EmfPlusResetClip

2.3.1.2

Resets the current clipping region for the world space to infinity.

EmfPlusSetClipPath

2.3.1.3

Combines the current clipping region with a graphics path.

EmfPlusSetClipRect

2.3.1.4

Combines the current clipping region with a rectangle.

EmfPlusSetClipRegion

2.3.1.5

Combines the current clipping region with another graphics region.

The generic structure of EMF+ clipping 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 clipping record types are listed below. See the table above for descriptions of these records.

Name

Value

EmfPlusResetClip

0x4031

EmfPlusSetClipRect

0x4032

EmfPlusSetClipPath

0x4033

EmfPlusSetClipRegion

0x4034

EmfPlusOffsetClip

0x4035

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, contained within this field, see individual record definitions.