Appendix D: Miscellaneous Enumerated Types
// MSOSHAPEPATH
typedef enum
{
msoshapeLines, // A line of straight segments
msoshapeLinesClosed, // A closed polygonal object
msoshapeCurves, // A line of Bezier curve segments
msoshapeCurvesClosed, // A closed shape with curved edges
msoshapeComplex, // pSegmentInfo must be non-empty
} MSOSHAPEPATH;
// MSOWRAPMODE
typedef enum
{
msowrapSquare,
msowrapByPoints,
msowrapNone,
msowrapTopBottom,
msowrapThrough,
} MSOWRAPMODE;
// MSOBWMODE
typedef enum
{
msobwColor, // only used for predefined shades
msobwAutomatic, // depends on object type
msobwGrayScale, // shades of gray only
msobwLightGrayScale, // shades of light gray only
msobwInverseGray, // dark gray mapped to light gray, etc.
msobwGrayOutline, // pure gray and white
msobwBlackTextLine, // black text and lines, all else grayscale
msobwHighContrast, // pure black and white mode (no grays)
msobwBlack, // solid black
msobwWhite, // solid white
msobwDontShow, // object not drawn
msobwNumModes // number of Black and white modes
} MSOBWMODE;
// MSOANCHOR
typedef enum
{
msoanchorTop,
msoanchorMiddle,
msoanchorBottom,
msoanchorTopCentered,
msoanchorMiddleCentered,
msoanchorBottomCentered,
msoanchorTopBaseline,
msoanchorBottomBaseline,
msoanchorTopCenteredBaseline,
msoanchorBottomCenteredBaseline
} MSOANCHOR;
// MSOCDIR
typedef enum
{
msocdir0, // Right
msocdir90, // Down
msocdir180, // Left
msocdir270 // Up
} MSOCDIR;
// MSOCXSTYLE – connector style
typedef enum
{
msocxstyleStraight = 0,
msocxstyleBent,
msocxstyleCurved,
msocxstyleNone
} MSOCXSTYLE;
// MSOTXFL -- text flow
typedef enum
{
msotxflHorzN, // Horizontal non-@
msotxflTtoBA, // Top to Bottom @-font
msotxflBtoT, // Bottom to Top non-@
msotxflTtoBN, // Top to Bottom non-@
msotxflHorzA, // Horizontal @-font
msotxflVertN, // Vertical, non-@
} MSOTXFL;
// MSOTXDIR - text direction (needed for Bi-Di support)
typedef enum
{
msotxdirLTR, // left-to-right text direction
msotxdirRTL, // right-to-left text direction
msotxdirContext, // context text direction
} MSOTXDIR;
// MSOSPCOT -- Callout Type
typedef enum
{
msospcotRightAngle = 1,
msospcotOneSegment = 2,
msospcotTwoSegment = 3,
msospcotThreeSegment = 4,
} MSOSPCOT;
// MSOSPCOA -- Callout Angle
typedef enum
{
msospcoaAny,
msospcoa30,
msospcoa45,
msospcoa60,
msospcoa90,
msospcoa0,
} MSOSPCOA;
// MSOSPCOD -- Callout Drop
typedef enum
{
msospcodTop,
msospcodCenter,
msospcodBottom,
msospcodSpecified,
} MSOSPCOD;
// MSOGEOTEXTALIGN – WordArt alignment
typedef enum
{
msoalignTextStretch, /* Stretch each line of text to fit width. */
msoalignTextCenter, /* Center text on width. */
msoalignTextLeft, /* Left justify. */
msoalignTextRight, /* Right justify. */
msoalignTextLetterJust, /* Spread letters out to fit width. */
msoalignTextWordJust, /* Spread words out to fit width. */
msoalignTextInvalid /* Invalid */
} MSOGEOTEXTALIGN;
// MSOBLIPFLAGS – flags for pictures
typedef enum
{
msoblipflagDefault = 0,
msoblipflagComment = 0, // Blip name is a comment
msoblipflagFile, // Blip name is a file name
msoblipflagURL, // Blip name is a full URL
msoblipflagType = 3, // Mask to extract type
/* Or the following flags with any of the above. */
msoblipflagDontSave = 4, // A "dont" is the depression in the metal
// body work of an automobile caused when a
// cyclist violently thrusts his or her nose
// at it, thus a DontSave is another name for
// a cycle lane.
msoblipflagDoNotSave = 4, // For those who prefer English
msoblipflagLinkToFile = 8,
} MSOBLIPFLAGS;
// MSO3DRENDERMODE
typedef enum
{
msoFullRender, // Generate a full rendering
msoWireframe, // Generate a wireframe
msoBoundingCube, // Generate a bounding cube
} MSO3DRENDERMODE;
// MSOXFORMTYPE
typedef enum
{
msoxformAbsolute, // Apply transform in absolute space centered on shape
msoxformShape, // Apply transform to shape geometry
msoxformDrawing // Apply transform in drawing space
} MSOXFORMTYPE;
// MSOSHADOWTYPE
typedef enum
{
msoshadowOffset, // N pixel offset shadow
msoshadowDouble, // Use second offset too
msoshadowRich, // Rich perspective shadow (cast relative to shape)
msoshadowShape, // Rich perspective shadow (cast in shape space)
msoshadowDrawing, // Perspective shadow cast in drawing space
msoshadowEmbossOrEngrave,
} MSOSHADOWTYPE;
// MSODZTYPE - the type of a (length) measurement
typedef enum
{
msodztypeMin = 0,
msodztypeDefault = 0, // Default size, ignore the values
msodztypeA = 1, // Values are in EMUs
msodztypeV = 2, // Values are in pixels
msodztypeShape = 3, // Values are 16.16 fractions of shape size
msodztypeFixedAspect = 4, // Aspect ratio is fixed
msodztypeAFixed = 5, // EMUs, fixed aspect ratio
msodztypeVFixed = 6, // Pixels, fixed aspect ratio
msodztypeShapeFixed = 7, // Proportion of shape, fixed aspect ratio
msodztypeFixedAspectEnlarge
= 8, // Aspect ratio is fixed, favor larger size
msodztypeAFixedBig = 9, // EMUs, fixed aspect ratio
msodztypeVFixedBig = 10, // Pixels, fixed aspect ratio
msodztypeShapeFixedBig= 11, // Proportion of shape, fixed aspect ratio
msodztypeMax = 11
} MSODZTYPE;
// MSOFILLTYPE
typedef enum
{
msofillSolid, // Fill with a solid color
msofillPattern, // Fill with a pattern (bitmap)
msofillTexture, // A texture (pattern with its own color map)
msofillPicture, // Center a picture in the shape
msofillShade, // Shade from start to end points
msofillShadeCenter, // Shade from bounding rectangle to end point
msofillShadeShape, // Shade from shape outline to end point
msofillShadeScale, // Similar to msofillShade, but the fillAngle
// is additionally scaled by the aspect ratio of
// the shape. If shape is square, it is the
// same as msofillShade.
msofillShadeTitle, // special type - shade to title --- for PP
msofillBackground // Use the background fill color/pattern
} MSOFILLTYPE;
// MSOSHADETYPE – how to interpret the colors in a shaded fill.
typedef enum
{
msoshadeNone = 0, // Interpolate without correction between RGBs
msoshadeGamma = 1, // Apply gamma correction to colors
msoshadeSigma = 2, // Apply a sigma transfer function to position
msoshadeBand = 4, // Add a flat band at the start of the shade
msoshadeOneColor = 8, // This is a one color shade
/* A parameter for the band or sigma function can be stored in the top
16 bits of the value - this is a proportion of *each* band of the
shade to make flat (or the approximate equal value for a sigma
function). NOTE: the parameter is not used for the sigma function,
instead a built in value is used. This value should not be changed
from the default! */
msoshadeParameterShift = 16,
msoshadeParameterMask = 0xffff0000,
msoshadeDefault = (msoshadeGamma|msoshadeSigma|
(16384<<msoshadeParameterShift))
} MSOSHADETYPE;
// MSOLINESTYLE - compound line style
typedef enum
{
msolineSimple, // Single line (of width lineWidth)
msolineDouble, // Double lines of equal width
msolineThickThin, // Double lines, one thick, one thin
msolineThinThick, // Double lines, reverse order
msolineTriple // Three lines, thin, thick, thin
} MSOLINESTYLE;
// MSOLINETYPE - how to "fill" the line contour
typedef enum
{
msolineSolidType, // Fill with a solid color
msolinePattern, // Fill with a pattern (bitmap)
msolineTexture, // A texture (pattern with its own color map)
msolinePicture // Center a picture in the shape
} MSOLINETYPE;
// MSOLINEDASHING - dashed line style
typedef enum
{
msolineSolid, // Solid (continuous) pen
msolineDashSys, // PS_DASH system dash style
msolineDotSys, // PS_DOT system dash style
msolineDashDotSys, // PS_DASHDOT system dash style
msolineDashDotDotSys, // PS_DASHDOTDOT system dash style
msolineDotGEL, // square dot style
msolineDashGEL, // dash style
msolineLongDashGEL, // long dash style
msolineDashDotGEL, // dash short dash
msolineLongDashDotGEL, // long dash short dash
msolineLongDashDotDotGEL // long dash short dash short dash
} MSOLINEDASHING;
// MSOLINEEND - line end effect
typedef enum
{
msolineNoEnd,
msolineArrowEnd,
msolineArrowStealthEnd,
msolineArrowDiamondEnd,
msolineArrowOvalEnd,
msolineArrowOpenEnd,
} MSOLINEEND;
// MSOLINEENDWIDTH - size of arrowhead
typedef enum
{
msolineNarrowArrow,
msolineMediumWidthArrow,
msolineWideArrow
} MSOLINEENDWIDTH;
// MSOLINEENDLENGTH - size of arrowhead
typedef enum
{
msolineShortArrow,
msolineMediumLenArrow,
msolineLongArrow
} MSOLINEENDLENGTH;
// MSOLINEJOIN - line join style.
typedef enum
{
msolineJoinBevel, // Join edges by a straight line
msolineJoinMiter, // Extend edges until they join
msolineJoinRound // Draw an arc between the two edges
} MSOLINEJOIN;
// MSOLINECAP - line cap style (applies to ends of dash segments too).
typedef enum
{
msolineEndCapRound, // Rounded ends - the default
msolineEndCapSquare, // Square protrudes by half line width
msolineEndCapFlat // Line ends at end point
} MSOLINECAP;