PathIterator Functions

Windows GDI+ exposes a flat API that consists of about 600 functions, which are implemented in Gdiplus.dll and declared in Gdiplusflat.h. The functions in the GDI+ flat API are wrapped by a collection of about 40 C++ classes. It is recommended that you do not directly call the functions in the flat API. Whenever you make calls to GDI+, you should do so by calling the methods and functions provided by the C++ wrappers. Microsoft Product Support Services will not provide support for code that calls the flat API directly. For more information on using these wrapper methods, see GDI+ Flat API.

The following flat API functions are wrapped by the GraphicsPathIterator C++ class.

GraphicsPathIterator Functions and Corresponding Wrapper Methods

Flat function Wrapper method Remarks
GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator **iterator, GpPath* path)
GraphicsPathIterator::GraphicsPathIterator(IN const GraphicsPath* path)
Creates a new GraphicsPathIterator object and associates it with a GraphicsPath object.
GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator *iterator)
GraphicsPathIterator::~GraphicsPathIterator()
Releases resources used by the GraphicsPathIterator object.
GpStatus WINGDIPAPI GdipPathIterNextSubpath(GpPathIterator* iterator, INT *resultCount, INT* startIndex, INT* endIndex, BOOL* isClosed)
INT GraphicsPathIterator::NextSubpath(OUT INT* startIndex, OUT INT* endIndex, OUT BOOL* isClosed)
Gets the starting index and the ending index of the next subpath (figure) in this iterator's associated path.
GpStatus WINGDIPAPI GdipPathIterNextSubpathPath(GpPathIterator* iterator, INT* resultCount, GpPath* path, BOOL* isClosed)
INT GraphicsPathIterator::NextSubpath(OUT const GraphicsPath* path, OUT BOOL* isClosed)
Getsthe next figure (subpath) from this iterator's associated path.
GpStatus WINGDIPAPI GdipPathIterNextPathType(GpPathIterator* iterator, INT* resultCount, BYTE* pathType, INT* startIndex, INT* endIndex)
INT GraphicsPathIterator::NextPathType(OUT BYTE* pathType, OUT INT* startIndex, OUT INT* endIndex)
Gets the starting index and the ending index of the next group of data points that all have the same type.
GpStatus WINGDIPAPI GdipPathIterNextMarker(GpPathIterator* iterator, INT *resultCount, INT* startIndex, INT* endIndex)
INT GraphicsPathIterator::NextMarker(OUT INT* startIndex, OUT INT* endIndex)
Gets the starting index and the ending index of the next marker-delimited section in this iterator's associated path.
GpStatus WINGDIPAPI GdipPathIterNextMarkerPath(GpPathIterator* iterator, INT* resultCount, GpPath* path)
INT GraphicsPathIterator::NextMarker(OUT const GraphicsPath* path)
Gets the next marker-delimited section of this iterator's associated path.
GpStatus WINGDIPAPI GdipPathIterGetCount(GpPathIterator* iterator, INT* count)
INT GraphicsPathIterator::GetCount() const
Returns the number of data points in the path.
GpStatus WINGDIPAPI GdipPathIterGetSubpathCount(GpPathIterator* iterator, INT* count)
INT GraphicsPathIterator::GetSubpathCount() const
Returns the number of subpaths (also called figures) in the path.
GpStatus WINGDIPAPI GdipPathIterIsValid(GpPathIterator* iterator, BOOL* valid)
Not called by wrapper methods.
This function passes a Boolean value that indicates whether the path iterator specified by the iterator parameter is valid. The output parameter valid receives the result.
GpStatus WINGDIPAPI GdipPathIterHasCurve(GpPathIterator* iterator, BOOL* hasCurve)
BOOL GraphicsPathIterator::HasCurve() const
Determines whether the path has any curves.
GpStatus WINGDIPAPI GdipPathIterRewind(GpPathIterator* iterator)
VOID GraphicsPathIterator::Rewind()
Rewinds this iterator to the beginning of its associated path.
GpStatus WINGDIPAPI GdipPathIterEnumerate(GpPathIterator* iterator, INT* resultCount, GpPointF *points, BYTE *types, INT count)
INT GraphicsPathIterator::Enumerate(OUT PointF *points, OUT BYTE *types, IN INT count)
Copies the path's data points to a PointF array and copies the path's point types to a BYTE array.
GpStatus WINGDIPAPI GdipPathIterCopyData(GpPathIterator* iterator, INT* resultCount, GpPointF* points, BYTE* types, INT startIndex, INT endIndex)
INT GraphicsPathIterator::CopyData(OUT PointF* points, OUT BYTE* types, IN INT startIndex, IN INT endIndex)
Copies a subset of the path's data points to a PointF array and copies a subset of the path's point types to a BYTE array.