Syncfusion.MetafileRenderer.NET
Used to specify the background mode to be used with text, hatched brushes, and pen styles that are not solid.
The background mode determines how to combine the background with foreground text, hatched brushes, and pen styles that are not solid lines
Background remains untouched
Background is filled with the current background color before the text, hatched brush, or pen is drawn
[MS-WMF] 2.1.1.2 BinaryRasterOperation Enumeration
The BinaryRasterOperation Enumeration section lists the binary raster-operation codes. Rasteroperation codes define how metafile
processing combines the bits from the selected pen with the bits in the destination bitmap.
Each raster-operation code represents a Boolean operation in which the values of the pixels in the selected pen and the destination bitmap
are combined. Following are the two operands used in these operations.
Operand Meaning
P Selected pen
D Destination bitmap
Following are the Boolean operators used in these operations.
Operator Meaning
a Bitwise AND
n Bitwise NOT (inverse)
o Bitwise OR
R2_BLACK: 0, Pixel is always 0.
R2_NOTMERGEPEN: DPon, Pixel is the inverse of the R2_MERGEPEN color.
R2_MASKNOTPEN: DPna, Pixel is a combination of the screen color and the inverse of the pen color.
R2_NOTCOPYPEN: Pn, Pixel is the inverse of the pen color.
R2_MASKPENNOT: PDna, Pixel is a combination of the colors common to both the pen and the inverse of the screen.
R2_NOT: Dn, Pixel is the inverse of the screen color.
R2_XORPEN: DPx, Pixel is a combination of the colors in the pen or in the screen, but not in both.
R2_NOTMASKPEN: DPan, Pixel is the inverse of the R2_MASKPEN color.
R2_MASKPEN: DPa, Pixel is a combination of the colors common to both the pen and the screen.
R2_NOTXORPEN: DPxn, Pixel is the inverse of the R2_XORPEN color.
R2_NOP: D, Pixel remains unchanged.
R2_MERGENOTPEN: DPno, Pixel is a combination of the colors common to both the screen and the inverse of the pen.
R2_COPYPEN: P, Pixel is the pen color.
R2_MERGEPENNOT: PDno, Pixel is a combination of the pen color and the inverse of the screen color.
R2_MERGEPEN: DPo, Pixel is a combination of the pen color and the screen color.
R2_WHITE: 1, Pixel is always 1
Specifies the different possible brush types that can be used in graphics operations
Defines how to interpret the values in the color table of a DIB (device-independent bitmap)
The color table contains literal RGB values
The color table consists of an array of 16-bit indexes into the LogPalette object that is currently defined in the playback device context
No color table exists. The pixels in the DIB are indices into the current logical palette in the playback device context
Defines values that uniquely identify records in an EMF metafile.
These values are specified in the fields of EMF records
Defines the start of the metafile and specifies its characteristics; its
contents, including the dimensions of the embedded image; the number of records in the metafile;
and the resolution of the device on which the embedded image was created
Defines one or more Bezier curves.
Cubic Bezier curves are defined using specified endpoints and control points, and are stroked with the current pen
Defines a polygon consisting of two or more vertexes connected by straight lines
The polygon is outlined by using the current pen and filled by using the current brush and polygon fill mode.
The polygon is closed automatically by drawing a line from the last vertex to the first
Defines a series of line segments by connecting the points in the specified array
Defines one or more Bezier curves based upon the current drawing position
The Bezier curves SHOULD be drawn using the current pen
Defines one or more straight lines based upon the current drawing position
A line is drawn from the current drawing position to the first point specified by the points field by using the current pen
For each additional line, drawing is performed from the ending point of the previous line to the next point specified by points
Defines multiple series of connected line segments
The line segments are drawn by using the current pen
The figures formed by the segments are not filled
The current position is neither used nor updated by this record
Defines a series of closed polygons
Each polygon is outlined by using the current pen and filled by using the current brush and polygon fill mode
The polygons defined by this record can overlap
Defines the window extent
Defines the window origin
Defines the viewport extent
Defines the viewport origin
Defines the mapping mode, which defines the unit of measure used to transform page space units into device space units,
and defines the orientation of the device's X and Y axes
Defines the background mix mode, which is used with text, hatched brushes, and pen styles that are not solid lines
Defines polygon fill mode
Indicates the end of the metafile
Defines the color of the pixel at the specified logical coordinates
Redefines the current clipping region by the specified offsets
Defines coordinates of the new drawing position in logical units
Defines a new clipping region that consists of the current clipping region intersected with the specified rectangle
Defines a new clipping region from the intersection of the current clipping region and the specified rectangle
Saves the current state of the playback device context in an array of states
Restores the playback device context to the specified state, which was saved by a preceding record
Defines a two-dimensional linear transform between world space and page space
Redefines the world transform by using the specified mode
Selects an object in the playback device context, which is identified by its index in the EMF object table
Defines a logical brush for filling figures in graphics operations
Deletes a graphics object, clearing its index in the EMF object table
Defines a line segment of an arc
The line segment is drawn from the current drawing position to the beginning of the arc.
The arc is drawn along the perimeter of a circle with the given radius and center.
The length of the arc is defined by the given start and sweep angles
Defines an ellipse. The center of the ellipse is the center of the specified bounding rectangle
The ellipse is outlined by using the current pen and is filled by using the current brush
Defines a rectangle
The rectangle is outlined by using the current pen and filled by using the current brush
The current drawing position is neither used nor updated by this record.
If a PS_NULL pen is used, the dimensions of the rectangle are 1 pixel less in height and 1 pixel less in width
Defines a rectangle with rounded corners
The rectangle is outlined by using the current pen and filled by using the current brush
Defines an elliptical arc
Defines a chord, which is a region bounded by the intersection of an ellipse and a line segment, called a secant
The chord is outlined by using the current pen and filled by using the current brush
If the starting point and ending point of the curve are the same, a complete ellipse is drawn
The current drawing position is neither used nor updated by processing this record
Defines a pie-shaped wedge bounded by the intersection of an ellipse and two radials
The pie is outlined by using the current pen and filled by using the current brush
The curve of the pie is defined by an ellipse that fits the specified bounding rectangle.
The curve begins at the point where the ellipse intersects the first radial and extends counterclockwise to the
point where the ellipse intersects the second radial
The current drawing position is neither used nor updated by this record
Fills an area of the display surface with the current brush
Defines a line from the current drawing position up to, but not including,
the specified point. It resets the current drawing position to the specified point
Defines an elliptical arc
It resets the current position to the endpoint of the arc
Defines a set of line segments and Bezier curves
Opens a path bracket for specifying the current path
Once path bracket construction is open, an application can begin specifying records to
define the points that lie in the path. Path bracket construction MUST be closed by an
or record.
When an application processes an record, path bracket construction MUST NOT be open
Closes an open path bracket and selects the path into the playback device context
Closes an open figure in a path
Processing this record closes the figure by drawing a line from the
current drawing position to the first point of the figure, and then it connects the lines by
using the current line join. If the figure is closed by processing an record
instead of this record, the current line cap is used to create the corner
instead of the line join. The line parameters are specified by the PenStyle field in the
current LogPen and LogPenEx objects
This record SHOULD be used only if there is an open figure in the path bracket.
A figure in a path is open unless it is explicitly closed by processing this record.
A figure can be open even if the current point is the same as the starting point.
After processing this record, adding a line or curve to the path bracket starts a new figure
Closes any open figures in the current path bracket and fills its interior by using the current brush and polygon-filling mode
Closes any open figures in a path, strokes the outline of the path by using the current pen,
and fills its interior by using the current brush
Renders the specified path by using the current pen
Turns each curve in the path into a sequence of lines
Redefines the current path bracket as the area that would be painted if the path were stroked using the current pen
Specifies a clipping region as the current clipping region combined with the current path bracket, using the specified mode
Aborts a path bracket or discards the path from a closed path bracket
Fills the specified region by using the specified brush
The current clipping regions used by this record are maintained in a Regions state element in the playback device context
Draws a border around the specified region using the specified brush
The current clipping regions used by this record are maintained in a Regions state element in the playback device context
Paints the specified region by using the current brush
The current clipping regions used by this record are maintained in a Regions state element in the playback device context
Combines the specified region with the current clipping region, using the specified mode
Specifies a block transfer of pixels from a source bitmap to a destination rectangle,
optionally in combination with a brush pattern, according to a specified raster operation
Specifies a block transfer of pixels from a source bitmap to a destination rectangle,
optionally in combination with a brush pattern, according to a specified raster operation,
stretching or compressing the output to fit the dimensions of the destination, if necessary
Draws an ASCII text string using the current font and text colors
Draws a Unicode text string using the current font and text colors
Defines an extended logical pen that has the specified style, width, color, and brush attributes
Draws one or more ASCII text strings using the current font and text colors
Draws one or more Unicode text strings using the current font and text colors
Passes arbitrary information to the driver. The intent is that the information results in drawing being done
Passes arbitrary information to the driver. The intent is that the information does not result in drawing being done
Outputs a string
Passes arbitrary information to the given named driver
Specifies filling rectangles or triangles with gradients of
Specifies parameters that control various aspects of the output of text
Indicates that the current background color SHOULD be used to fill the rectangle
Indicates that the text SHOULD be clipped to the rectangle
Indicates that the codes for characters in an output text string are indexes of the character glyphs in a TrueType font
Glyph indexes are font-specific, so to display the correct characters on playback,
the font that is used MUST be identical to the font used to generate the indexes
Indicates that the text MUST be laid out in right-to-left reading order, instead of the default left-to-right order
This SHOULD be applied only when the font selected into the playback device context is either Hebrew or Arabic
Indicates that the record does not specify a bounding rectangle for the text output
Indicates that the codes for characters in an output text string are 8 bits,
derived from the low bytes of Unicode UTF16-LE character codes, in which the high byte is assumed to be 0
Indicates that to display numbers, digits appropriate to the locale SHOULD be used
Indicates that to display numbers, European digits SHOULD be used
Indicates that no special operating system processing for glyph placement is performed on right-to-left strings;
that is, all glyph positioning SHOULD be taken care of by drawing and state records in the metafile
Indicates that both horizontal and vertical character displacement values SHOULD be provided
Reserved and SHOULD NOT be used
Flags (4 bytes): An unsigned integer that specifies parameters for the font matching process.
0x00000000 The font mapper is not limited to fonts that match the aspect ratio of the output device.
0x00000001 The font mapper SHOULD select only fonts that match the aspect ratio of the output device.
Specifies how to determine the area for a flood fill operation
The fill area is bounded by a specific color
The fill area is defined by a specific color.
Filling continues outward in all directions as long as the color is encountered
This style is useful for filling areas with multicolored boundaries
Defines values that are used to identify the format of embedded data in EMF metafiles
The sequence of ASCII characters "FME ", which denotes EMF data. The reverse of the string is " EMF"
The sequence of ASCII characters "FSPE", which denotes encapsulated PostScript (EPS) data. The reverse of the string is "EPSF"
LCS_GM_ABS_COLORIMETRIC: Specifies that the white point SHOULD be maintained. Typically used when logical colors
MUST be matched to their nearest physical color in the destination color gamut.
Intent: Match
ICC name: Absolute Colorimetric
LCS_GM_BUSINESS: Specifies that saturation SHOULD be maintained. Typically used for business charts and other situations
in which dithering is not required.
Intent: Graphic
ICC name: Saturation
LCS_GM_GRAPHICS: Specifies that a colorimetric match SHOULD be maintained. Typically used for graphic designs and
named colors.
Intent: Proof
ICC name: Relative Colorimetric
LCS_GM_IMAGES: Specifies that contrast SHOULD be maintained. Typically used for photographs and natural images.
Intent: Picture
ICC name: Perceptual
Defines the modes for gradient fill operations
Color interpolation along a gradient from the left to the right edges of a rectangle
Color interpolation along a gradient from the top to the bottom edges of a rectangle
Color interpolation between vertexes of a triangle
Specifies how to interpret shape data such as rectangle coordinates
TrueType text MUST be written from left to right and right side up, even if the
rest of the graphics are rotated about the x-axis or y-axis because of the current world-to-device
transform. Only the height of the text SHOULD be scaled
Arcs MUST be drawn using the current arc direction, but they MUST NOT reflect the current world-to-device transform,
which might require a rotation along the x-axis or y-axis
In graphics mode, bottom and rightmost edges MUST be excluded when rectangles are drawn
TrueType text output SHOULD fully conform to the current world-to-device transform
Arcs MUST be drawn in the counterclockwise direction in world space; however, both arc control
points and the arcs themselves MUST reflect the current world-to-device transform
In GM_ADVANCED graphics mode, bottom and rightmost edges MUST be included when rectangles are drawn
Specifies the hatch pattern
LAYOUT_LTR 0x00000000 Sets the default horizontal layout to be left-to-right. This is the default mode for English and
European locales.
LAYOUT_RTL 0x00000001 Sets the default horizontal layout to be right-to-left. This mode is required for some languages,
including Arabic and Hebrew.
LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008 Disables mirroring of bitmaps that are drawn by bitmap records
(section 2.3.1) when the layout mode is right-to-left.
LCS_CALIBRATED_RGB: Color values are calibrated red green blue (RGB) values.
LCS_sRGB: The value is an encoding of the ASCII characters "sRGB", and it indicates that the color values are sRGB values.
LCS_WINDOWS_COLOR_SPACE: The value is an encoding of the ASCII characters "Win ", including the trailing space, and
it indicates that the color values are Windows default color space values.
Used to define the unit of measure for transforming page space units into device space units and for defining the orientation of the drawing axes
Each logical unit is mapped to one device pixel. Positive x is to the right; positive y is down
Each logical unit is mapped to 0.1 millimeter. Positive x is to the right; positive y is up
Each logical unit is mapped to 0.01 millimeter. Positive x is to the right; positive y is up
Each logical unit is mapped to 0.01 inch. Positive x is to the right; positive y is up
Each logical unit is mapped to 0.001 inch. Positive x is to the right; positive y is up
Each logical unit is mapped to one-twentieth of a printer's point (1/1440 inch, also called a "twip"). Positive x is to the right; positive y is up
Logical units are isotropic; that is, they are mapped to arbitrary units with equally scaled axes.
Thus, one unit along the x-axis is equal to one unit along the y-axis
Logical units are anisotropic; that is, they are mapped to arbitrary units with arbitrarily scaled axes
Specifies printer driver functionality
Notifies the printer driver that the application has finished writing to a page
Stops processing the current document
Notifies the printer driver that the application has finished writing to a band
Sets color table values
Gets color table values
Causes all pending output to be flushed to the output device
Indicates that the printer driver SHOULD print text only, and no graphics
Queries a printer driver to determine whether a specific escape function is supported on the output device it drives
Sets the application-defined function that allows a print job to be canceled during printing
Notifies the printer driver that a new print job is starting
Notifies the printer driver that the current print job is ending
Retrieves the physical page size currently selected on an output device
Retrieves the offset from the upper-left corner of the physical page where the actual printing or drawing begins
Retrieves the scaling factors for the x-axis and the y-axis of a printer
Used to embed an enhanced metafile format (EMF) metafile within a WMF metafile
Sets the width of a pen in pixels
Sets the number of copies
Sets the source, such as a particular paper tray or bin on a printer, for output forms
This record passes through arbitrary data
Gets information concerning graphics technology that is supported on a device
Specifies the line-drawing mode to use in output to a device
Specifies the line-joining mode to use in output to a device
Sets the limit for the length of miter joins to use in output to a device
Retrieves or specifies settings concerning banding on a device, such as the number of bands
Draws a rectangle with a defined pattern
Retrieves the physical pen size currently defined on a device
Retrieves the physical brush size currently defined on a device
Enables or disables double-sided (duplex) printing on a device
Retrieves or specifies the source of output forms on a device
Retrieves or specifies the paper orientation on a device
Retrieves information concerning the sources of different forms on an output device
Specifies the scaling of device-independent bitmaps (DIBs)
Indicates the start and end of an encapsulated PostScript (EPS) section
Queries a printer driver for paper dimensions and other forms data
Retrieves or specifies paper dimensions and other forms data on an output device
Sends arbitrary PostScript data to an output device
Notifies an output device to ignore PostScript data
Gets the device units currently configured on an output device
Gets extended text metrics currently configured on an output device
Gets the font kern table currently defined on an output device
Draws text using the currently selected font, background color, and text color
Gets the font face name currently configured on a device
Sets the font face name on a device
Queries a printer driver about the support for metafiles on an output device
Queries the printer driver about its support for DIBs on an output device
Opens a path
Defines a clip region that is bounded by a path
The input MUST be a 16-bit quantity that defines the action to take
Ends a path
The same as specified with a NULL document and output filename, data in raw mode, and a type of zero
Instructs the printer driver to download sets of PostScript procedures
The same as . See
Sends arbitrary data directly to a printer driver, which is expected to process this data only when in PostScript mode.
See
Sends arbitrary data directly to the printer driver
Sets the printer driver to either PostScript or GDI mode
Inserts a block of raw data into a PostScript stream
The input MUST be a 32-bit quantity specifying the number of bytes to inject, a 16-bit quantity specifying the
injection point, and a 16-bit quantity specifying the page number, followed by the bytes to inject
Checks whether the printer supports a JPEG image
Checks whether the printer supports a PNG image
Gets information on a specified feature setting for a PostScript printer driver
Enables applications to write documents to a file or to a printer in XML Paper Specification (XPS) format
Enables applications to include private procedures and other arbitrary data in documents
Defines the interoperability version for EMF metafile
Specifies EMF metafile interoperability
Defines modes for changing the world-space to page-space transform that is currently defined in the playback device context
Reset the current transform using the identity matrix. In this mode, the specified transform data is ignored
Multiply the current transform. In this mode, the specified transform data is the left multiplicand, and the current transform is the right multiplicand
Multiply the current transform. In this mode, the specified transform data is the right multiplicand, and the current transform is the left multiplicand
Set the current transform to the specified transform data
Defines the attributes of pens that can be used in graphics operations.
A pen style is a combination of pen type, line style, line cap, and line join
A pen type that specifies a line with a width of one logical unit and a style that is a solid color
A line cap that specifies round ends
A line join that specifies round joins
A line style that is a solid color
A line style that is dashed
A line style that is dotted
A line style that consists of alternating dashes and dots
A line style that consists of dashes and double dots
A line style that is invisible
A line style that is a solid color
When this style is specified in a drawing record that takes a bounding rectangle,
the dimensions of the figure are shrunk so that it fits entirely in the bounding rectangle, considering the width of the pen
A line style that is defined by a styling array, which specifies the lengths of dashes and gaps in the line
A line style in which every other pixel is set. This style is applicable only to a pen type of
A line cap that specifies square ends
A line cap that specifies flat ends
A line join that specifies beveled joins
A line join that specifies mitered joins when the lengths of the joins are within the current miter length limit.
If the lengths of the joins exceed the miter limit, beveled joins are specified
The miter length limit is a metafile state property that is set by the EMR_SETMITERLIMIT record
A pen type that specifies a line with a width that is measured in logical units and a style that can contain any of the attributes of a brush
Set of bit flags that specify properties of the pixel buffer that is used for output to the drawing surface
TODO: add crefs
The buffer uses RGBA pixels on a palette-managed device. A LogPalette
object is required to achieve the best results for this pixel
type. Colors in the palette SHOULD be specified according to the values
of the cRedBits, cRedShift, cGreenBits, cGreenShift, cBlueBits, and
cBlueShift fields
The pixel format is natively supported by the operating system; this is
known as the "generic" implementation.
If clear, the pixel format is supported by a device driver or hardware
The pixel buffer supports OpenGL drawing
This flag SHOULD be clear, but it MAY be set.
This flag and MUST NOT both be set
The pixel buffer can draw to a memory bitmap
The pixel buffer can draw to a window or device surface
The pixel buffer MAY be stereoscopic; that is, it MAY specify a color
plane that is used to create the illusion of depth in an image
The pixel buffer is double-buffered.
This flag and MUST NOT both be set
The pixel buffer supports compositing, which indicates that source pixels
MAY overwrite or be combined with background pixels
The pixel buffer supports Direct3D drawing, which accelerated rendering in three dimensions
The pixel buffer supports DirectDraw drawing, which allows applications to
have low-level control of the output drawing surface
The pixel format is supported by a device driver that accelerates the
generic implementation. If this flag is clear and the
flag is set, the pixel format is supported by the
generic implementation only
A device can swap individual color planes with pixel formats that include
double-buffered overlay or underlay color planes. Otherwise all color
planes are swapped together as a group
The contents of the back buffer have been copied to the front buffer in a
double-buffered color plane. The contents of the back buffer have not
been affected
The contents of the back buffer have been exchanged with the contents of
the front buffer in a double-buffered color plane
The output device supports one hardware palette in 256-color mode only.
For such systems to use hardware acceleration, the hardware palette
MUST be in a fixed order (for example, 3-3-2) when in RGBA mode, or
MUST match the LogPalette object when in color table mode
The pixel buffer MAY be either monoscopic or stereoscopic
The pixel buffer can be either single or double buffered
The pixel buffer is not required to include a color plane for depth effects
Used to specify how a point is to be used in a drawing call
A or type can be combined with this value by using
the bitwise operator OR to indicate that the corresponding point is the last point in a figure and the figure is closed
Specifies that a line is to be drawn from the current position to this point, which then becomes the new current position
Specifies that this point is a control point or ending point for a Bezier curve
PT_BEZIERTO types always occur in sets of three.
The current position defines the starting point for the Bezier curve.
The first two PT_BEZIERTO points are the control points, and the third PT_BEZIERTO point is the ending point.
The ending point becomes the new current position. If there are not three consecutive PT_BEZIERTO points, an error results
Specifies that this point starts a disjoint figure. This point becomes the new current position
Defines values that specify how to calculate the region of a polygon that is to be filled
Selects alternate mode (fills the area between odd-numbered and even-numbered polygon sides on each scan line)
Selects winding mode (fills any region with a nonzero winding value)
Defines values that are used with and ,
specifying the current path bracket or a new region that is being combined with the current clipping region
The new clipping region includes the intersection (overlapping areas) of the current
clipping region and the current path bracket (or new region)
The new clipping region includes the union (combined areas) of the current clipping region
and the current path bracket (or new region)
The new clipping region includes the union of the current clipping region and the current
path bracket (or new region) but without the overlapping areas
The new clipping region includes the areas of the current clipping region with those of the
current path bracket (or new region) excluded
The new clipping region is the current path bracket (or the new region)
Specifies the indexes of predefined logical graphics objects that can be used in graphics operations
The StretchMode enumeration is used to specify how color data is added to or removed from bitmaps that are stretched or
compressed.
STRETCH_ANDSCANS: Performs a Boolean AND operation using the color values for the eliminated and existing pixels.
If the bitmap is a monochrome bitmap, this mode preserves black pixels at the expense of white pixels.
STRETCH_ORSCANS: Performs a Boolean OR operation using the color values for the eliminated and existing pixels.
If the bitmap is a monochrome bitmap, this mode preserves white pixels at the expense of black pixels.
STRETCH_DELETESCANS: Deletes the pixels. This mode deletes all eliminated lines of pixels without trying to preserve their
information.
STRETCH_HALFTONE: Maps pixels from the source rectangle into blocks of pixels in the destination rectangle. The average
color over the destination block of pixels approximates the color of the source pixels.
After setting the STRETCH_HALFTONE stretching mode, the brush origin SHOULD be defined by an EMR_SETBRUSHORGEX
record. If it fails to do so, brush misalignment can occur.
Specifies ternary raster operation codes, which define how to combine the bits in a source bitmap with the bits in a destination bitmap.
Each ternary raster operation code represents a Boolean operation in which the values of the pixels in the source,
the selected brush, and the destination are combined
Fills the destination rectangle using the color associated with index 0 in the physical
. (This color is black for the default physical palette)
Copies the specified pattern into the destination bitmap
Fills the destination rectangle using the color associated with index 1 in the physical palette. (This color is white for the default physical palette)
Provides static abstract method for parsing EMF record
Type of EMF record to be parsed
Provides static abstract method for parsing extension of EMF record
Type of base record
Type of extension record
Represents a shape that can be used in a gradient fill.
There are only two implementations of this interface: and .
Defines the RGB color
Defines the relative intensity of red
Defines the relative intensity of green
Defines the relative intensity of blue
Contains values for text output
Specifies the coordinates of the reference point used to position the string
Specifies the number of characters in the string
Specifies the offset to the output string in bytes, from the start of the record in which this object is contained
This value is 8- or 16-bit aligned, according to the character format
Specifies how to use the rectangle specified in the field
Defines a clipping and/or opaquing rectangle in logical units.
This rectangle is applied to the text output performed by the containing record
Specifies the offset to an intercharacter spacing array in bytes, from the start of the record in which this object is contained
This value is 32-bit aligned
The character string buffer
The size and encoding of the characters is determined by the type of record that
contains this object, as follows:
- and records: 8-bit ASCII characters
- and records: 16-bit UNICODE characters
The character spacing buffer that specifies the output spacing between the origins of adjacent character cells in logical units
The location of this field is specified by the value of offDx in bytes from the start of this record.
If spacing is defined, this field contains the same number of values as characters in the output string
If the field contains the flag, then this buffer contains twice as
many values as there are characters in the output string, one horizontal and one vertical offset for each, in that order
The GradientRectangle object defines a triangle using objects
in an record
An index into an array of objects that specifies the first vertex of a triangle.
The index MUST be smaller than the size of the array, as defined by the
An index into an array of objects that specifies the second vertex of a triangle.
The index MUST be smaller than the size of the array, as defined by the
An index into an array of objects that specifies the third vertex of a triangle.
The index MUST be smaller than the size of the array, as defined by the
Defines the style, color, and pattern of a device-independent brush
Specifies the brush style.
Values of this field MUST be , , or
Specifies a color
Brush hatch data
Specifies the style, width, and color of an extended logical pen
Specifies the pen style
Specifies the width of the line drawn by the pen
If the pen type in the field is , this value is the width in logical units;
otherwise, the width is specified in device units. If the pen type in the field is
, this value MUST be 0x00000001
Specifies a brush style for the pen
If the pen type in the field is , this value is either or
. The value of this field can be , but only if the line style specified in
is . The style SHOULD be used to specify a brush that has no effect
Specifies the color of the pen
The brush hatch pattern
The number of elements in the array specified in the StyleEntry field.
This value SHOULD be zero if does not specify
Defines the lengths of dashes and gaps in the line drawn by this pen when the value of is .
The array contains the number of entries specified by , but it is used as if it repeated indefinitely
The first entry in the array specifies the length of the first dash. The second entry specifies the length of the first gap.
Thereafter, lengths of dashes and gaps alternate. If the pen type in the field is ,
lengths are specified in logical units; otherwise, they are specified in device units.
Specifies data that defines a region, which is made of non-overlapping rectangles
Defines the contents of the field
An array of RectL that are merged to create the region
Defines the properties of a object
Specifies the size of this object in bytes
Specifies the region type
Specifies the number of rectangles in this region
Specifies the size of the buffer of rectangles in bytes
Specifies the bounds of the region
[MS-WMF] 2.2.2.6 CIEXYZ Object
The CIEXYZ Object defines information about the CIEXYZ chromaticity object.
Specifies color and position information for the definition of a rectangle or triangle vertex
Specifies the horizontal position, in logical units
Specifies the vertical position, in logical units
Specifies the red color value for the point
Specifies the green color value for the point
Specifies the blue color value for the point
Specifies the alpha transparency value for the point
Defines a two-dimensional, linear transform matrix
The horizontal translation component, in logical units
The vertical translation component, in logical units
Specifies the destination bounding rectangle in logical coordinates
If the intersection of this rectangle with the current clipping regions in the playback device context is empty,
this record has no effect
Specifies the logical x-coordinate of the upper-left corner of the destination rectangle
Specifies the logical y-coordinate of the upper-left corner of the destination rectangle
Specifies the logical width of the source and destination rectangles
Specifies the logical height of the source and destination rectangles
Specifies the raster operation code
This code defines how the color data of the source rectangle is to be combined with the color data of
the destination rectangle and optionally a brush pattern, to achieve the final color
Specifies the logical x-coordinate of the upper-left corner of the source rectangle
Specifies the logical y-coordinate of the upper-left corner of the source rectangle
Specifies a world-space to page-space transform to apply to the source bitmap
Specifies the background color of the source bitmap
Specifies how to interpret values in the color table in the source bitmap header
Specifies the offset in bytes, from the start of this record to the source bitmap header
Specifies the size in bytes, of the source bitmap header
Specifies the offset in bytes, from the start of this record to the source bitmap bits
Specifies the size in bytes, of the source bitmap bits
The source bitmap header
The source bitmap bits
Specifies the destination bounding rectangle in logical coordinates.
Specifies the logical x-coordinate of the upper-left corner of the destination rectangle.
Specifies the logical y-coordinate of the upper-left corner of the destination rectangle.
Specifies the x-coordinate in pixels of the lower-left corner of the source rectangle.
Specifies the y-coordinate in pixels of the lower-left corner of the source rectangle.
Specifies the width in pixels of the source rectangle.
Specifies the height in pixels of the source rectangle.
Specifies the offset in bytes, from the start of this record to the source bitmap header.
Specifies the size in bytes of the source bitmap header.
Specifies the offset in bytes, from the start of this record to the source bitmap bits.
Specifies the size in bytes of the source bitmap bits.
Specifies how to interpret values in the color table in the source bitmap header.
Specifies the first scan line in the array.
Specifies the number of scan lines.
The source bitmap header.
The source bitmap bits.
Specifies the destination bounding rectangle in logical coordinates
If the intersection of this rectangle with the current clipping regions in the playback device context is empty,
this record has no effect
Specifies the logical x-coordinate of the upper-left corner of the destination rectangle
Specifies the logical y-coordinate of the upper-left corner of the destination rectangle
Specifies the logical x-coordinate of the upper-left corner of the source rectangle
Specifies the logical y-coordinate of the upper-left corner of the source rectangle
Specifies the width in pixels of the source rectangle
Specifies the height in pixels of the source rectangle
Specifies the offset in bytes, from the start of this record to the source bitmap header
Specifies the size in bytes, of the source bitmap header
Specifies the offset in bytes, from the start of this record to the source bitmap bits
Specifies the size in bytes, of the source bitmap bits
Specifies how to interpret values in the color table in the source bitmap header
Specifies the raster operation code
This code defines how the color data of the source rectangle is to be combined with the color data of
the destination rectangle and optionally a brush pattern, to achieve the final color
Specifies the logical width of the destination rectangle
Specifies the logical height of the destination rectangle
The source bitmap header
The source bitmap bits
Specifies a rectangle in logical units
Specifies the size of region data in bytes
Specifies the way to use the region
Specifies the object in logical units
If is ,
this data can be omitted and the clipping region SHOULD be set to the default clipping region
Specifies the rectangle in logical units
The lower and right edges of the specified rectangle are excluded from the clipping region
Specifies the horizontal and vertical offsets in logical units
Specifies how to combine the current clipping region with the current path bracket
Specifies the size, in bytes, of the CommentIdentifier and CommentRecordParm fields in the RecordBuffer field that follows.
Specifies the private data. The first 32-bit field of this data MUST NOT be one of the predefined comment identifier values.
Fixed-size part of the header
Specifies the rectangular inclusive-inclusive bounds in logical units of the smallest rectangle that can be drawn around the image stored in the metafile
Specifies the rectangular inclusive-inclusive dimensions, in .01 millimeter units, of a rectangle that surrounds the image stored in the metafile
Record signature
Specifies the EMF version for interoperability. This MAY be 0x00010000
Specifies the size of the metafile in bytes
Specifies the number of records in the metafile
Specifies the number of graphics objects that are used during the processing of the metafile
Specifies the number of UNICODE characters in the array that contains the description of the metafile's contents. This is zero if there is no description string
Specifies the offset from the beginning of this record to the array that contains the description of the metafile's contents
Specifies the number of entries in the metafile palette. The location of the palette is specified in the EMR_EOF record
Specifies the size of the reference device, in pixels
Specifies the size of the reference device, in millimeters
Optional UNICODE description string
Tries to parse an optional description string from the specified stream. Stream MUST have position =
Input EMF file stream
Offset from the beginning of header record to the array that contains the description of the metafile's contents
Number of UNICODE characters in the array that contains the description of the metafile's contents
If parse was successful - description string, otherwise - null
Defines the first extension to the EMF metafile header.
It adds support for a > object and OpenGL records
Specifies the size of the PixelFormatDescriptor object. This value is 0x00000000 if no pixel format is set
Specifies the offset to the PixelFormatDescriptor object. This value is 0x00000000 if no pixel format is set
Indicates whether OpenGL commands are present in the metafile.
0 - OpenGL commands are not present in the metafile. 1 - OpenGL commands are present in the metafile
Defines the second extension to the EMF metafile header
Horizontal size of the display device for which the metafile image was generated, in micrometers
Vertical size of the display device for which the metafile image was generated, in micrometers
Specifies the logical coordinates of the circle's center
Specifies the circle's radius, in logical units
Specifies the arc's start angle, in degrees
Specifies the arc's sweep angle, in degrees
If the sweep angle is greater than 360 degrees, the arc is swept multiple times
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the coordinates in logical units of the ending point of the radial line defining the starting point of the arc
Specifies the coordinates in logical units of the ending point of the radial line defining the ending point of the arc
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the coordinates, in logical units, of the first radial ending point, in logical units
Specifies the coordinates, in logical units, of the second radial ending point, in logical units
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the coordinates, in logical units, of the endpoint of the radial defining the beginning of the chord
Specifies the coordinates, in logical units, of the endpoint of the radial defining the end of the chord
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the coordinates, in logical units, where filling begins
Used with the to determine the area to fill
Specifies how to use the value to determine the area for the flood fill operation
Not used and MUST be ignored on receipt
Specifies the graphics mode
Specifies the scale factor to apply along the X axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the scale factor to apply along the T axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the output string in 8-bit ASCII characters, text attributes, and spacing values
Not used and MUST be ignored on receipt
Specifies the graphics mode
Specifies the scale factor to apply along the X axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the scale factor to apply along the T axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the output string in UNICODE characters, with text attributes and spacing values
Specifies the bounding rectangle in logical units
Specifies the destination bounding rectangle in logical units
If the intersection of this rectangle with the current clipping region is empty, this record has no effect
Specifies the size of region data in bytes
Specifies the index of the brush in the EMF object table for filling the region
Specifies the output region in a object
The bounds specified by the field of this object MAY be used as the bounding region when this record is processed
Specifies the destination bounding rectangle in logical units
If the intersection of this rectangle with the current clipping region is empty, this record has no effect
Specifies the size of region data in bytes
Specifies the index of the brush in the EMF object table for filling the region
Specifies the width of the vertical brush stroke, in logical units
Specifies the height of the horizontal brush stroke, in logical units
Specifies the output region in a object
The bounds specified by the field of this object MAY be used as the bounding region when this record is processed
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the number of vertexes
Specifies the number of rectangles or triangles to fill
Specifies the gradient fill mode
An array of objects.
Each object specifies the position and color of a vertex of either a rectangle or a triangle,
depending on the value of the field
An array of or objects,
depending on the value of the field.
Each object specifies indexes into the array
An array of times four bytes that MUST be present if
the value of the field is or .
If the value of the field is , no VertexPadding is present
This field MUST be ignored
Specifies the coordinates of the line's endpoint
Specifies the destination bounding rectangle in logical units
If the intersection of this rectangle with the current clipping region is empty, this record has no effect
Specifies the size of region data in bytes
Specifies the output region in a object
The bounds specified by the field of this object MAY be used as the bounding region when this record is processed
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the coordinates, in logical units, of the endpoint of the first radial
Specifies the coordinates, in logical units, of the endpoint of the second radial
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the number of points in the 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
Specifies the endpoints and control points of the Bezier curves in logical units
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the number of points in the 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
Specifies the endpoints and control points of the Bezier curves in logical units
Specifies the bounding rectangle in logical units
Specifies the number of points in the array
The first curve MUST be drawn from the current position to the third point by using the first two points
as control points. For each subsequent curve, exactly three more points MUST be specified, and
the ending point of the previous curve MUST be used as the starting point for the next
Specifies the endpoints and control points of the Bezier curves in logical units
Specifies the bounding rectangle in logical units
Specifies the total number of points in the array
The first curve is drawn from the current position to the third point by using the first two points as control points.
For each subsequent curve, three more points MUST be specified, and the ending point of the previous curve MUST be used as the starting point for the next
Specifies the points of the Bezier curves in logical units
Specifies the bounding rectangle in logical units
Specifies the number of points in the property
Points in logical units
A length collection of byte values that specifies how each point in the collection is used
Specifies the bounding rectangle in logical units
Specifies the number of points in the property
Points in logical units
A length collection of byte values that specifies how each point in the collection is used
Specifies the bounding rectangle in logical units
Specifies the number of points in the APoints array
Specifies the vertexes of the polygon in logical units
Specifies the bounding rectangle in logical units
Specifies the total number of points in array
A length array, which specifies the array of points
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the number of points in the array
Specifies the point data, in logical units
Specifies the bounding rectangle in logical units
Specifies the total number of points in array
A length array, which specifies the array of points
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the number of points in the array
Specifies the point data, in logical units
Specifies the bounding rectangle in logical units
Specifies the number of points in the array
Specifies the point data, in logical units
Specifies the bounding rectangle in logical units
Specifies the number of polygons
Specifies the total number of points in all polygons
Any extra points MUST be ignored. To draw a line with more points, the data SHOULD be divided
into groups that have less than the maximum number of points, and an EMR_POLYPOLYGON
operation SHOULD be performed for each group of point
Specifies the point count for each polygon
Specifies the points for all polygons in logical units
The number of points is specified by the field value
Specifies the bounding rectangle in logical units
Specifies the number of polygons
Specifies the total number of points in all polygons
Any extra points MUST be ignored. To draw a line with more points, the data SHOULD be divided
into groups that have less than the maximum number of points, and an EMR_POLYPOLYGON
operation SHOULD be performed for each group of point
Specifies the point count for each polygon
Specifies the points for all polygons in logical units
The number of points is specified by the field value
Specifies the bounding rectangle in logical units
Specifies the number of polylines, which is the number of elements in the array
Specifies the total number of points in all polylines, which is the number of elements in the array
A length array of values that specify the point counts for all polylines
Each value MUST be >= 0x00000002
A length array of objects that specify the point data, in logical units
Specifies the bounding rectangle in logical units
Specifies the number of polylines, which is the number of elements in the array
Specifies the total number of points in all polylines, which is the number of elements in the array
A length array of values that specify the point counts for all polylines
Each value MUST be >= 0x00000002
A length array of objects that specify the point data, in logical units
Specifies the bounding rectangle in logical units
Specifies the graphics mode
Specifies the scale factor to apply along the X axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the scale factor to apply along the T axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the number of objects in the array
Specifies the output strings in 8-bit ASCII characters, with text attributes, and spacing values
The number of objects is specified by
Specifies the bounding rectangle in logical units
Specifies the graphics mode
Specifies the scale factor to apply along the X axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the scale factor to apply along the T axis to convert from page space units to .01mm units
This SHOULD be used only if is
Specifies the number of objects in the array
Specifies the output strings in UNICODE characters, with text attributes, and spacing values
The number of objects is specified by
Specifies the inclusive-inclusive rectangle to draw
Specifies the inclusive-inclusive bounding rectangle in logical units
Specifies the width and height, in logical coordinates, of the ellipse used to draw the rounded corners
Specifies the logical coordinates for the pixel
Specifies the color
Specifies the x-coordinate of where to place the string
Specifies the y-coordinate of where to place the string
Specifies the number of 16-bit characters in the string
The string is NOT null-terminated
Specifies the text output options to use
Specifies the graphics mode
Specifies how much to scale the text in the x-direction
Specifies how much to scale the text in the y-direction
Specifies the bounding rectangle in logical units
If is set in the field, this field is not included in the record
A string that contains the text string to draw, in either 8-bit or 16-bit character codes,
according to the value of the field
If is set in the field, contains 8-bit codes for characters,
derived from the low bytes of Unicode UTF16-LE character codes, in which the high byte is assumed to be 0
Specifies the bounding rectangle in logical units
Specifies the bounding rectangle in logical units
Specifies the printer driver escape to execute
Specifies the number of bytes to pass to the printer driver
The data to pass to the printer driver
There MUST be bytes available
Specifies the printer driver escape to execute
Specifies the number of bytes to pass to the printer driver
The data to pass to the printer driver
There MUST be bytes available
Specifies the printer driver escape to execute
Specifies the number of bytes in the field
This value MUST be an even number
Specifies the number of bytes to pass to the printer driver
String of UNICODE characters that specifies the name of the printer driver to receive data
The data to pass to the printer driver
There MUST be bytes available
Record type
Record size in bytes
Specifies the index of the logical brush object in the EMF object table
This index is used to refer to the object, so it can be reused or modified
Specifies the style, color, and pattern of the logical brush
Specifies the index of the logical color space object
Specifies the logical color space object
Specifies the size of the data
Contains additional data
Specifies the index of the logical font object
Specifies the extended logical font object
Represents a logical pen object creation record.
Specifies the index of the logical pen object in the EMF object table.
Specifies the logical pen attributes.
Specifies the index of the extended logical pen object in the EMF object table
This index MUST be saved so that this object can be reused or modified
Specifies the offset from the start of this record to the DIB header if the record contains a DIB
Specifies the size of the DIB header if the record contains a DIB
Specifies the offset from the start of this record to the DIB bits if the record contains a DIB
Specifies the size of the DIB bits if the record contains a DIB
Specifies an extended logical pen with attributes including an optional line style array
The Device Independent Bitmap header
The Device Independent Bitmap bits
Specifies the index of a graphics object in the EMF object table
This value MUST NOT be 0, which is a reserved index that refers to the EMF metafile itself;
and it MUST NOT be the index of a , which cannot be deleted
Specifies either the index of a graphics object in the EMF object table or the index of a stock object in the enumeration
The object index MUST NOT be zero, which is reserved and refers to the EMF metafile itself.
The object specified by this record MUST be used in subsequent EMF drawing operations, until another EMR_SELECTOBJECT record
changes the object of that type or the object is deleted
Specifies either the index of a LogPalette object in the EMF object table or the value DEFAULT_PALETTE from the enumeration.
The object index MUST NOT be zero, which is reserved and refers to the EMF metafile itself.
The object specified by this record MUST be used in subsequent EMF drawing operations, until another EMR_SELECTPALETTE record
changes the object or the object is deleted.
Specifies coordinates of the new drawing position in logical units
Specifies the pixel format descriptor.
Specifies the saved state to restore relative to the current state
This value MUST be negative; –1 represents the state that was most recently saved on the stack, –2 the one before that, etc.
The stack can contain state information for multiple instances of the playback device context.
When a state is restored, all state instances that were saved more recently MUST be discarded
Specifies the horizontal multiplicand.
Specifies the horizontal divisor.
Specifies the vertical multiplicand.
Specifies the vertical divisor.
Specifies the horizontal multiplicand.
Specifies the horizontal divisor.
Specifies the vertical multiplicand.
Specifies the vertical divisor.
Specifies the arc direction.
Specifies the color adjustment values.
Contains color profile flags.
Specifies the number of bytes in the Unicode UTF16-LE name of the desired color profile.
Specifies the size of color profile data, if attached.
Specifies the UTF16-LE name and raw data of the desired color profile.
[MS-EMF] 2.3.11.18 EMR_SETLINKEDUFIS Record
The EMR_SETLINKEDUFIS record sets the UniversalFontIds (section 2.2.27) of linked fonts to use during character lookup.
See section 2.3.11 for more state record types.
An array of UniversalFontId elements which specify the identifiers of the linked fonts.
Initializes a new instance of the class.
The record type.
The size of the record.
The array of UniversalFontId elements.
Specifies the polygon fill mode
Specifies the text alignment options.
Specifies the text color.
Specifies the total amount of extra space to add in logical units.
Specifies the number of break characters.
Parses the record from the given stream.
The stream to read the record from.
The type of the EMF record.
The size of the EMF record.
The parsed record.
Specifies the window origin in logical units.
Used according to the to define a new value for the world-space to page-space transform in the playback device context
Specifies how the transform specified in is used
Specifies the number of bits that define each pixel and the maximum number of colors in a device-independent bitmap (DIB)
The number of bits per pixel is undefined
The image is specified with two colors
The image is specified with a maximum of 16 colors.
The image is specified with a maximum of 256 colors
The image is specified with a maximum of 2^16 colors
The bitmap in the BitmapBuffer field of the DIB Object has a maximum of 2^24 colors
The bitmap in the BitmapBuffer field of the DIB Object has a maximum of 2^24 colors
Contains information about the dimensions and color format of a device-independent bitmap (DIB)
Defines the size of this object, in bytes
Defines the width of the DIB, in pixels. This value MUST be positive
Defines the height of the DIB, in pixels. This value MUST NOT be zero
If this value is positive, the bitmap is a bottom-up DIB and its origin is the lower-left corner.
This field SHOULD specify the height of the decompressed image file, if the Compression value specifies JPEG or PNG format
If this value is negative, the image is a top-down DIB and its origin is the upper-left corner.
Top-down bitmaps do not support compression
Defines the number of planes for the target device. This value MUST be 0x0001
Defines the number of bits that define each pixel and the maximum number of colors in the DIB
Defines the compression mode of the DIB
Defines the size, in bytes, of the image
If the value is , this value SHOULD be zero and MUST be ignored
If the ; value is or , this value MUST specify the size of the JPEG or PNG image buffer, respectively
Defines the horizontal resolution, in pixels-per-meter, of the target device for the DIB
Defines the vertical resolution, in pixels-per-meter, of the target device for the DIB
Specifies the number of indexes in the color table used by the DIB, as follows:
-
If this value is zero, the DIB uses the maximum number of colors that correspond to the value
-
If this value is nonzero and the value is less than 16, this value specifies the number of colors used by the DIB
-
If this value is nonzero and the value is 16 or greater,
this value specifies the size of the color table used to optimize performance of the system palette
Defines the number of color indexes that are required for displaying the DIB
If this value is zero, all color indexes are required
Specifies the type of compression for a bitmap image
Defines the coordinates of a point
Defines the horizontal (x) coordinate of the point
Defines the vertical (y) coordinate of the point
Defines the x- and y-coordinates of a point
Defines the horizontal (x) coordinate of the point
Defines the vertical (y) coordinate of the point
Defines a rectangle
Defines the x coordinate, in logical coordinates, of the upper-left corner of the rectangle
Defines the y coordinate, in logical coordinates, of the upper-left corner of the rectangle
Defines the x coordinate, in logical coordinates, of the lower-right corner of the rectangle
Defines y coordinate, in logical coordinates, of the lower-right corner of the rectangle
Defines the x- and y-extents of a rectangle
Defines the x-coordinate of the point
Defines the y-coordinate of the point
Header of the EMF file
Records of the EMF file
End of file record
Header of the WMF file
Records of the WMF file
End of file Wmf record
Gets or sets objects size in WORDs (number of 16-bit segments)
Gets or sets if the size is defined as variable (false by default)
Gets or sets a record type (aka record function)
Gets or sets record size in WORDs (number of 16-bit segments)
Gets or sets if the size is defined as variable (false by default)
Bits per pixel is undefined, only for JPEG and PNG
Monochrome
16 colors
256 colors
16-bit colors
24-bit colors
24-bit colors
Sets right-to-left as the default horizontal layout.
Sets bottom-to-top as the default horizontal layout.
Sets the default layout to vertical.
Metafile is stored in memory.
Metafile is stored on disk.
DIBs are not supported.
DIBs are supported.
Transparent background, no color fill.
Solid color background filled before the text, pen, etc.
Do NOT use this value
Squared ends of a line.
Circular ends of a line.
Squared ends of a line where center of the square is the same as line point.
Skips excess bytes. Work-around for some WMF files that contain undocumented fields.
Gets or sets the size of this object in bytes.
Gets or sets the size of this object in bytes.
Gets or sets an array of colors, either array of RGBQuad objects or array of uint16 values.
Gets or sets actual bitmap bits.
1-based index for WmfSelectPalette.Palette
Gets or sets record length in bytes.