FD_DEVICEMETRICS (Compact 2013)

3/28/2014

The FD_DEVICEMETRICS structure is used to provide device-specific font information to GDI if the iMode parameter of the driver-supplied FDQUERYFONTDATA function is QFD_MAXEXTENTS.

Syntax

typedef struct _FD_DEVICEMETRICS {
  FLONG flRealizedType;
  POINTE pteBase;
  POINTE pteSide;
  LONG lD;
  FIX fxMaxAscender;
  FIX fxMaxDescender;
  POINTL ptlUnderline1;
  POINTL ptlStrikeout;
  POINTL ptlULThickness;
  POINTL ptlSOThickness;
   ULONG cxMax;
  ULONG cyMax;
  ULONG cjGlyphMax;
  FD_XFORM fdxQuantized;
  LONG lNonLinearExtLeading;
  LONG lNonLinearIntLeading;
  LONG lNonLinearMaxCharWidth;
  LONG lNonLinearAvgCharWidth;
  LONG lMinA;
  LONG lMinC;
  LONG lMinD;
  LONG alReserved[1];
} FD_DEVICEMETRICS, *PFD_DEVICEMETRICS;

Parameters

  • flRealizedType
    A set of accelerator flags. This value can be a combination of the following values:

    Flag

    Description

    FDM_TYPE_BM_SIDE_CONST

    An accelerator for horizontal and vertical writing. If this flag is set, the font has constant height for all bitmaps. In the horizontal case, this means that the cy dimension is constant; in the vertical case, this means that the cx dimension is constant. This accelerator is not used for outlines.

    FDM_TYPE_CHAR_INC_EQUAL_BM_BASE

    An accelerator for horizontal and vertical writing. In the horizontal case, if this flag is set, each glyph's advance width is equal to the cx dimension of the glyph bitmap; in the vertical case, if this flag is set, each glyph's advance width is equal to the cy dimension of the glyph bitmap. This accelerator is not used for outlines.

    FDM_TYPE_CONST_BEARINGS

    If set, the a and c spacing is constant for all glyphs.

    FDM_TYPE_MAXEXT_EQUAL_BM_SIDE

    This flag can be set only if FDM_TYPE_BM_SIDE_CONST is also set. If set, the font height (as defined above for horizontal and vertical writing) is equal to the sum of max ascender and max descender. This accelerator is not used for outlines.

    FDM_TYPE_ZERO_BEARINGS

    If set, the a and c spacing is zero for all glyphs.

  • pteBase
    Specifies a POINTE structure that contains the notional space unit vector along the font's baseline, transformed to device space and then normalized.
  • pteSide
    Specifies a POINTE structure that contains a notional space unit vector perpendicular to the font's baseline in the direction of the ascender, transformed to device space and then normalized. In notional space, baseline and ascender directions must be orthogonal, but in device space, pteBase and pteSide do not have to be orthogonal, depending on the Notional-to-Device space transform.
  • lD
    Specifies the advance width if the font is a fixed pitch (monospaced) font. If the font is a variable pitch font, this member should be set to zero.
  • fxMaxAscender
    Specifies the hinted maximum ascender height for this font instance, measured along pteSide.
  • fxMaxDescender
    Specifies the hinted maximum descender height for this font instance, measured along pteSide.
  • ptlUnderline1
    Specifies a POINTL structure that contains the hinted underline position for this font instance, relative to the glyph's character origin. A POINTL structure is identical to the POINT structure.
  • ptlStrikeout
    Specifies a POINTL structure that contains the hinted strikeout position for this font instance, relative to the glyph's character origin. A POINTL structure is identical to the POINT structure.
  • ptlULThickness
    Specifies a POINTL structure that contains the hinted underline thickness for this font instance. This vector defines the side of the rectangle used to draw the underline. The base is implicitly defined by the baseline. A POINTL structure is identical to the POINT structure.
  • ptlSOThickness
    Specifies a POINTL structure that contains the hinted strikeout thickness for this font instance. This vector defines the side of the rectangle used to draw the strikeout. The base is implicitly defined by the baseline. A POINTL structure is identical to the POINT structure.
  • cxMax
    Specifies the hinted maximum glyph bitmap width, in pixels, for this font instance. Not used for outlines.
  • cyMax
    Specifies the hinted maximum glyph bitmap height, in pixels, for this font instance. Not used for outlines.
  • cjGlyphMax
    Specifies the hinted maximum size of a glyph, in pixels, for this font instance.
  • fdxQuantized
    Specifies an FD_XFORM structure. The font driver fills in the font transformation that is actually used in the realization of the font. This may differ from the transformation requested by GDI as defined by FONTOBJ_pxoGetXform.
  • lNonLinearExtLeading
    Specifies the nonlinear external leading is in 28.4 device units.
  • lNonLinearIntLeading
    Specifies the nonlinear internal leading in 28.4 device units.
  • lNonLinearMaxCharWidth
    Specifies the nonlinear maximum character increment in 28.4 device units.
  • lNonLinearAvgCharWidth
    Specifies the nonlinear average character width in 28.4 device units.
  • lMinA
    Specifies the largest negative A space for this font realization, as an absolute value.
  • lMinC
    Specifies the largest negative C space for this font realization, as an absolute value.
  • lMinD
    Specifies the smallest nonzero character width for this font realization.
  • alReserved
    Is reserved and should be ignored by the font provider.

Requirements

Header

winddif.h

See Also

Reference

Fonts Structures