2.3.4 Drawing Record Types
The drawing record types specify graphics output. The following are EMF+ drawing record types:
Name |
Section |
Description |
---|---|---|
EmfPlusClear |
Clears the output coordinate space and initializes it with a background color and transparency. |
|
EmfPlusDrawArc |
Draws the arc of an ellipse. |
|
EmfPlusDrawBeziers |
Draws a sequence of connected Bezier curves. |
|
EmfPlusDrawClosedCurve |
Draws a closed cardinal spline. |
|
EmfPlusDrawCurve |
Draws a cardinal spline. |
|
EmfPlusDrawDriverString |
Outputs text with character positions. |
|
EmfPlusDrawEllipse |
Draws an ellipse. |
|
EmfPlusDrawImage |
Draws a scaled image. |
|
EmfPlusDrawImagePoints |
Draws a scaled image inside a parallelogram. |
|
EmfPlusDrawLines |
Draws a series of connected lines. |
|
EmfPlusDrawPath |
Draws a graphics path. |
|
EmfPlusDrawPie |
Draws a section of the interior of an ellipse. |
|
EmfPlusDrawRects |
Draws a series of rectangles. |
|
EmfPlusDrawString |
Outputs text with string formatting. |
|
EmfPlusFillClosedCurve |
Draws the interior of a closed cardinal spline. |
|
EmfPlusFillEllipse |
Draws the interior of an ellipse. |
|
EmfPlusFillPath |
Draws the interior of a graphics path. |
|
EmfPlusFillPie |
Draws a section of the interior of an ellipse. |
|
EmfPlusFillPolygon |
Draws the interior of a polygon. |
|
EmfPlusFillRects |
Draws the interiors of a series of rectangles. |
|
EmfPlusFillRegion |
Draws the interior of a graphics region. |
The generic structure of EMF+ drawing records is specified as follows:
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Type |
Flags |
||||||||||||||||||||||||||||||
Size |
|||||||||||||||||||||||||||||||
DataSize |
|||||||||||||||||||||||||||||||
RecordData (variable) |
|||||||||||||||||||||||||||||||
... |
Type (2 bytes): An unsigned integer that identifies the record type. The drawing record types are listed below. See the table above for descriptions of these records.
-
Name
Value
EmfPlusClear
0x4009
EmfPlusFillRects
0x400A
EmfPlusDrawRects
0x400B
EmfPlusFillPolygon
0x400C
EmfPlusDrawLines
0x400D
EmfPlusFillEllipse
0x400E
EmfPlusDrawEllipse
0x400F
EmfPlusFillPie
0x4010
EmfPlusDrawPie
0x4011
EmfPlusDrawArc
0x4012
EmfPlusFillRegion
0x4013
EmfPlusFillPath
0x4014
EmfPlusDrawPath
0x4015
EmfPlusFillClosedCurve
0x4016
EmfPlusDrawClosedCurve
0x4017
EmfPlusDrawCurve
0x4018
EmfPlusDrawBeziers
0x4019
EmfPlusDrawImage
0x401A
EmfPlusDrawImagePoints
0x401B
EmfPlusDrawString
0x401C
EmfPlusDrawDriverString
0x4036
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.