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 alReserved[4]; } FD_DEVICEMETRICS, *PFD_DEVICEMETRICS;
The FD_DEVICEMETRICS structure is used to provide device-specific font information to GDI if the iMode parameter of the driver-supplied DrvQueryFontData function is QFD_MAXEXTENTS.
Flag |
Meaning |
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_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_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_ZERO_BEARINGS | |
If set, the a and c spacing is zero for all glyphs. | |
FDM_TYPE_CONST_BEARINGS | |
If set, the a and c spacing is constant for all glyphs. |
On input to the font provider, GDI sets all DWORD fields to 0xffffffff. The font provider is expected to overwrite a field if the corresponding quantity does not scale linearly under realization.