3.2.32.21 EmfPlusObject Example

This section provides an example of the EmfPlusObject record (section 2.3.5.1).

 00000530:                                     08 40 00 03
 00000540: C4 00 00 00 B8 00 00 00 02 10 C0 DB 13 00 00 00
 00000550: 00 00 00 00 FC 7F F5 43 CF FF FF BF 9D 8E 08 44
 00000560: 1E 01 00 C0 FE BF 13 44 EB 15 2B 42 FF BF 13 44
 00000570: FC FF C3 42 FF BF 13 44 FE FF C3 42 FF BF 13 44
 00000580: 01 00 C4 42 FF BF 13 44 03 00 C4 42 FF BF 13 44
 00000590: FF FF F5 43 FF BF 13 44 9F CE 08 44 9F 8E 08 44
 000005A0: FF FF 13 44 00 80 F5 43 FF FF 13 44 05 00 C2 42
 000005B0: FF FF 13 44 16 16 27 42 00 00 14 44 72 FF 3F C0
 000005C0: 9F CE 08 44 E8 FF 3F C0 01 00 F6 43 10 00 40 C0
 000005D0: 04 00 C4 42 64 00 40 C0 17 16 2B 42 FA 15 27 42
 000005E0: E8 FE FF BF F6 FF C1 42 26 00 00 C0 00 03 03 03
 000005F0: 03 03 03 01 03 03 03 01 03 03 03 01 03 03 83 BF


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 (0x4008)

Flags (0x0300)

Size (0x000000C4)

DataSize (0x000000B8)

ObjectTypePath

Type (2 bytes): 0x4008 identifies the record type as EmfPlusObject.

Flags (2 bytes): 0x0300 specifies an EmfPlusPath object (section 2.2.1.6) from the ObjectType enumeration (section 2.1.1.21), and index 0x00 for the graphics object in the EMF+ Object Table (section 3.1.2).

Size (4 bytes): 0x000000C4 specifies the size in bytes of the entire record.

DataSize (4 bytes): 0x000000B8 specifies the size in bytes of the record-specific data that follows.

ObjectTypePath (4 bytes): An EmfPlusPath object.


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

Version (0xDBC01002)

PathPointCount (0x00000013)

PathPointFlags (0x00000000)

PathPoints (FC 7F F5 43 CF FF FF BF

9D 8E 08 44 1E 01 00 C0 FE BF 13 44 EB 15 2B 42

FF BF 13 44 FC FF C3 42 FF BF 13 44 FE FF C3 42

FF BF 13 44 01 00 C4 42 FF BF 13 44 03 00 C4 42

FF BF 13 44 FF FF F5 43 FF BF 13 44 9F CE 08 44

9F 8E 08 44 FF FF 13 44 00 80 F5 43 FF FF 13 44

05 00 C2 42 FF FF 13 44 16 16 27 42 00 00 14 44

72 FF 3F C0 9F CE 08 44 E8 FF 3F C0 01 00 F6 43

10 00 40 C0 04 00 C4 42 64 00 40 C0 17 16 2B 42

               FA 15 27 42 E8 FE FF BF F6 FF C1 42 26 00 00 C0) (variable)

...

PathPointTypes (0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03,

0x03, 0x01, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x83) (variable)

...

AlignmentPadding (0xBF)

Version (4 bytes): 0xDBC01002 specifies the graphics version that was used to create the EmfPlusPath object in this record. The value 0xDBC01002 corresponds to GDI+ version 1.1.

PathPointCount (4 bytes): 0x00000013 specifies the number of elements in the PathPoints and PathPointTypes arrays.

PathPointFlags (4 bytes): 0x00000000 specifies that the path point type values are not compressed.

PathPoints (variable): An array of PathPointCount EmfPlusPointF objects (section 2.2.2.36) that specify the endpoints and control points of the lines and Bezier curves that define the path.

PathPointTypes (variable): An array of PathPointCount bytes that specify the point types and flags for the data points in the path. Point types determine how the points are used to draw the path and are values in the PathPointType enumeration (section 2.1.1.22).

AlignmentPadding (4 bytes): An extra byte that makes the total size of this record a multiple of 4 bytes. The value of this field is indeterminate and is ignored.