2.3.5.16 EMR_POLYBEZIER Record

The EMR_POLYBEZIER record specifies one or more Bezier curves.


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

Bounds

...

...

...

Count

aPoints (variable)

...

Type (4 bytes): An unsigned integer that identifies this record type as EMR_POLYBEZIER. This value is 0x00000002.

Size (4 bytes): An unsigned integer that specifies the size of this record in bytes.

Bounds (16 bytes): A RectL object ([MS-WMF] section 2.2.2.19) that specifies the bounding rectangle in logical units.

Count (4 bytes): An unsigned integer that specifies the number of points in the aPoints array. This value MUST be one more than three times the number of curves to be drawn because each Bezier curve requires two control points and an endpoint, and the initial curve requires an additional starting point.

 Line width

Device supports wideline

 Maximum points allowed

1

n/a

16K

> 1

yes

16K

> 1

no

1360

Any extra points MUST be ignored.

aPoints (variable): An array of PointL objects ([MS-WMF] section 2.2.2.15) that specify the endpoints and control points of the Bezier curves in logical units.

Cubic Bezier curves are defined using the endpoints and control points specified by the aPoints field. The first curve is drawn from the first point to the fourth point, using the second and third points as control points. Each subsequent curve in the sequence needs exactly three more points: the ending point of the previous curve is used as the starting point, the next two points in the sequence are control points, and the third is the ending point.

The cubic Bezier curves SHOULD be drawn using the current pen.

See section 2.3.5 for more drawing record types.