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.