Vector Object Values

SO_ARC

Draws an arc. dwDataSize must be 4* sizeof(SOPOINT), and pData must be the address of four SOPOINT structures.

SO_ARCCLOCKWISE

Draws an arc in the clockwise direction. dwDataSize must be 4* sizeof(SOPOINT), and pData must be the address of four SOPOINT structures.

SO_ARCANGLE

Draws an arc by defining the angles of the two points on the ellipse that locate the start and end of the arc. dwDataSize must be sizeof(SOARCINFO), and pData must be the address of a SOARCINFO structure that defines the arc.

SO_ARCANGLECLOCKWISE

Draws an arc in the clockwise direction by defining the angles of the two points on the ellipse that locate the start and end of the arc. dwDataSize must be sizeof(SOARCINFO), and pData must be the address of a SOARCINFO structure.

SO_CHORD

Draws a chord. dwDataSize must be 4 * sizeof(SOPOINT), and pData must be the address of four SOPOINT structures.

SO_CHORDANGLE

Draws a chord by defining the angles of the two points on the ellipse that locate the start and end of the chord. dwDataSize must be sizeof(SOARCINFO), and pData must be the address of a SOARCINFO structure that defines the chord in terms of the arc located on the chord.

SO_TEXTINRECT

Draws text in a rectangle. dwDataSize must be sizeof(SOTEXTINRECT) added to the length of the text string, and pData must be the address of a SOTEXTINRECT structure followed by the text string.

SO_ELLIPSE

Draws an ellipse. dwDataSize must be 2 * sizeof(SOPOINT), and pData must be the address of two SOPOINT structures.

SO_FLOODFILL

Fills the area with the given color. dwDataSize must be sizeof(SOPOINT) added to sizeof(SOCOLORREF), and pData must be the address of a variable containing the coordinates of the point to start at followed by the RGB color value to use to fill the area.

SO_LINE

Draws a line from point 1 to point 2 using the current pen. dwDataSize must be 2 * sizeof(SOPOINT), and pData must be the address of two SOPOINT structures.

SO_PIE

Draws a pie shape. dwDataSize must be 4 * sizeof(SOPOINT), and pData must be the address of four SOPOINT structures.

SO_PIEANGLE

Draws a pie by defining the angles of the two points on the ellipse that locate the start and end of the pie. dwDataSize must be sizeof(SOARCINFO), and pData must be the address of a SOARCINFO structure that defines the pie in terms of the arc located on the pie.

SO_STARTPOLY

Starts drawing of a polygon. dwDataSize must be sizeof(SOPOLYINFO), and pData must be the address of a SOPOLYINFO structure.

SO_POINTS

Specifies vertices of a polygon. dwDataSize must be N * sizeof(SOPOINT), and pData must be the address of consecutively stored SOPOINT structures. At most, SOMAXPOINTS can be passed in a single SO_POINTS object. Multiple SO_POINTS objects can be generated to define all of the points associated with a polygon object. The number of points defined in SO_STARTPOLY must be defined using SO_POINTS before the object is closed with SO_ENDPOLY.

SO_ENDPOLY

Ends drawing of a polygon. dwDataSize must be zero, and pData must be NULL.

SO_RECTANGLE

Draws a rectangle. dwDataSize must be 2 * sizeof(SOPOINT), and pData must be the address of two SOPOINT structures.

SO_ROUNDRECT

Draws a rectangle with rounded corners. dwDataSize must be 3 * sizeof(SOPOINT), and pData must be address of the three SOPOINT structures.

SO_SETPIXEL

Sets the color of a pixel. dwDataSize must be sizeof(SOPOINT) added to sizeof(SOCOLORREF), and pData must be the address of a variable containing the pixel point followed by the RGB color value to set.

SO_TEXTATPOINT

Draws text at the given point. dwDataSize must be sizeof(SOTEXTATPOINT) added to the length of the text string, and pData must be the address of a SOTEXTATPOINT structure followed by the text string.

SO_TEXTATARCANGLE

Draws text at the given location. dwDataSize must be sizeof(SOTEXTATARCANGLE) added to the length of the text string, and pData must be the address of a SOTEXTATARCANGLE structure followed by the text string.

SO_BEGINPATH

Starts the definition of a path. dwDataSize must be sizeof(SOPATHINFO) added to GroupInfo.nTransforms*sizeof(SOTRANSFORM), and pData must be the address of a SOPATHINFO structure followed by the number of SOTRANSFORM structures defined in the nTransforms member of the SOPATHINFO structure. The transformations will occur to all objects in the path in the order supplied. For more information, see the SO_OBJECTTRANSFORM vector attribute value.

This item is used to begin the definition of a path. Paths are a collection of points connected by lines that form opened or closed objects. Multiple subpaths may be created using SO_CLOSESUBPATH while defining a path. Note that the current object and group transformations will also apply during creation of a path. This allows maximum flexibility with transforming paths. Any object can be rendered to create the path. However, due to current limitations, text objects will not be added to the path. Multiple levels of paths are also allowed.

SO_ENDPATH

Ends the definition of a path. dwDataSize must be zero, and pData must be NULL.

SO_CLOSESUBPATH

Closes the current subpath. dwDataSize must be zero, and pData must be NULL.

SO_DRAWPATH

Strokes, fills, or both strokes and fills the current path with the current pen and brush. Since the group, path, and object transformations were applied when the path was created, they are not applied again. dwDataSize must be sizeof(WORD), and pData must be the address of a variable containing the SODP_STROKE or SODP_FILL value, or both.

SO_BEGINGROUP

Starts the definition of a group. dwDataSize must be sizeof(SOGROUPINFO) added to GroupInfo.nTransforms*sizeof(SOTRANSFORM), and pData must be the address of a SOGROUPINFO structure followed by the number of SOTRANSFORM structures defined in the nTransforms member of the SOGROUPINFO structure. The transformations will occur to all objects in the group in the order supplied. For more information, see the SO_OBJECTTRANSFORM vector attribute value.

SO_ENDGROUP

Ends the definition of a group. dwDataSize must be zero, and pData must be NULL.

SO_CPSET

Moves the current pen position to this point. dwDataSize must be sizeof(SOPOINT), and pData must be the address of the variable containing the point.

SO_CPLINE

Draws a line from the current pen position. dwDataSize must be sizeof(SOPOINT), and pData must be the address of a variable containing the point to draw to.

SO_CPRECTANGLE

Draws a rectangle starting at the current pen position. dwDataSize must be sizeof(SOPOINT), and pData must be the address of a variable containing the point to be the opposite corner of the rectangle.

SO_CPELLIPSE

Draws an ellipse around the current point with an x- and y-radius described by the SOPOINT data. dwDataSize must be sizeof(SOPOINT), and pData must be the address of a variable containing the x- and y-radius values.

SO_CPARCTRIPLE

Draws a circle arc from the current point through the first point and ending at the second point. dwDataSize must be 2*(sizeof(SOPOINT), and pData must be the address of two SOPOINT structures.

SO_CPARCANGLE

Draws an arc from the current point pivoting around the center point of the specified sweep angle. dwDataSize must be sizeof(SOCPARCANGLE), and pData must be the address of a SOCPARCANGLE structure that gives the center point of the arc and the sweep angle.

SO_CPPIEANGLE

Draws a pie with the current position as the center and with the given start and sweep angles. dwDataSize must be sizeof(SOCPPIECANGLE), and pData must be the address of a SOCPPIEANGLE structure that gives the radius of the circle.

SO_BEGINSYMBOL

Starts the definition of a symbol. A symbol is collection of vector commands that together make up a single symbol. Symbols are considered in the wrapping algorithm of frame text. dwDataSize must be sizeof(SORECT), and pData must be the address of a SORECT structure that identifies the bounding rectangle of all commands used within the symbol.

SO_ENDSYMBOL

Ends the definition of a symbol. dwDataSize must be zero, and pData must be NULL.

SO_BEGINTEXTFRAME

Starts the definition of a text frame. A text frame is used in conjunction with SO_TEXTINPARA to wrap text within a frame. Text is wrapped according to the SO_PARAINDENTS vector attribute value. Symbols are included in the wrapping algorithm. dwDataSize must be sizeof(SORECT), and pData must be the address of a SORECT structure that identifies the bounding rectangle of the text frame.

SO_ENDTEXTFRAME

Ends the definition of a text frame. dwDataSize must be zero, and pData must be NULL.

SO_TEXTINPARA

Draws the text string in the current font and text attributes at the current wrap location. The wrap location is moved by the text extent. Any words that would extend beyond the right indent of the frame are wrapped. This object is only valid within a text frame. dwDataSize must be sizeof(INT) added to the length of the text string, and pData must be the address of a integer variable containing the size of the text string that follows.

SO_PARAEND

Ends a paragraph. dwDataSize must be zero, and pData must be NULL.