EngStrokeAndFillPath

BOOL EngStrokeAndFillPath(

IN SURFOBJ *pso,
IN PATHOBJ *ppo,
IN CLIPOBJ *pco,
IN XFORMOBJ *pxo,
IN BRUSHOBJ *pboStroke,
IN LINEATTRS *plineattrs,
IN BRUSHOBJ *pboFill,
IN POINTL *pptlBrushOrg,
IN MIX mix,
IN FLONG flOptions
);

EngStrokeAndFillPath causes GDI to fill a path and stroke it at the same time.

Parameters

pso

Points to a SURFOBJ structure that defines the drawing surface.

ppo

Points to a PATHOBJ structure that defines the path to be filled. The PATHOBJ_Xxx service routines are provided to enumerate the lines, Bezier curves, and other data that make up the path.

pco

Points to a CLIPOBJ structure. The CLIPOBJ_Xxx service routines are provided to enumerate the clip region as a set of rectangles.

pxo

Points to a XFORMOBJ structure that is only needed when a geometric wide line is to be drawn and specifies the transform that converts world coordinates to device coordinates. The path is provided in device coordinates but a geometric wide line is actually widened in world coordinates.

The driver can use the XFORMOBJ_Xxx service routines to determine the transform.

pboStroke

Points to a BRUSHOBJ structure that describes the brush to use when stroking the path.

plineattrs

Points to a LINEATTRS structure.

pboFill

Points to a BRUSHOBJ structure that describes the brush to use when filling the path.

pptlBrushOrg

Points to a POINTL structure that defines the brush origin for both brushes.

mix

Defines the foreground and background raster operations to use for the fill brush.

flOptions

Specifies which fill mode to use. This parameter can be FP_WINDINGMODE or FP_ALTERNATEMODE; all other bits should be ignored.

Return Value

The return value is TRUE if GDI fills the path. If the driver should fill the path, the return value is FALSE, and an error code is not logged. If GDI encounters an unexpected error, such as not being able to realize the brush, the return value is DDI_ERROR, and an error code is logged.

Comments

The mix mode defines how the incoming pattern should be mixed with the data already on the device surface. The MIX data type consists of two ROP2 values packed into a single ULONG. The low-order byte defines the foreground raster operation; the next byte defines the background raster operation. For more information about raster operation codes, see the Win32 SDK.

See Also

BRUSHOBJ, CLIPOBJ, DrvStrokeAndFillPath, LINEATTRS, PATHOBJ, SURFOBJ, XFORMOBJ