FD_DEVICEMETRICS構造体 (winddi.h)
ドライバー提供の DrvQueryFontData 関数の iMode パラメーターがQFD_MAXEXTENTS場合は、FD_DEVICEMETRICS構造体を使用して GDI にデバイス固有のフォント情報を提供します。
構文
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;
メンバー
flRealizedType
アクセラレータ フラグのセットです。 この値には、次の値の組み合わせを指定できます。
FDM_TYPE_BM_SIDE_CONST
水平方向と垂直方向の書き込みのためのアクセラレータ。 このフラグが設定されている場合、フォントはすべてのビットマップに対して一定の高さになります。 水平の場合、これは cy 次元が一定であることを意味します。垂直の場合、これは cx ディメンションが一定であることを意味します。 このアクセラレータは、アウトラインには使用されません。
FDM_TYPE_CHAR_INC_EQUAL_BM_BASE
水平方向と垂直方向の書き込みのためのアクセラレータ。 水平の場合、このフラグが設定されている場合、各グリフの事前幅はグリフ ビットマップの cx ディメンションと等しくなります。垂直の場合、このフラグが設定されている場合、各グリフの進み幅はグリフ ビットマップの cy 次元と等しくなります。 このアクセラレータは、アウトラインには使用されません。
FDM_TYPE_CONST_BEARINGS
設定した場合、a と c の間隔はすべてのグリフで一定です。
FDM_TYPE_MAXEXT_EQUAL_BM_SIDE
このフラグは、FDM_TYPE_BM_SIDE_CONSTも設定されている場合にのみ設定できます。 設定した場合、フォントの高さは(水平および垂直書き込みに対して上記で定義されているように)、最大アセンダーと最大ディセンダーの合計と等しくなります。 このアクセラレータは、アウトラインには使用されません。
FDM_TYPE_ZERO_BEARINGS
設定すると、すべてのグリフの a と c の間隔は 0 になります。
pteBase
フォントのベースラインに沿った概念空間単位ベクトルを含み、デバイス空間に変換してから正規化する POINTE 構造体を指定します。 詳細については、「 GDI データ型の POINTE」を参照してください。
pteSide
アセンダーの方向にフォントのベースラインに垂直な概念空間単位ベクトルを含む POINTE 構造体を指定し、デバイス空間に変換してから正規化します。 概念空間では、ベースラインとアセンダーの方向は直交する必要がありますが、デバイス空間では、概念からデバイス空間への変換に応じて、 pteBase と pteSide を直交する必要はありません。
lD
フォントが固定ピッチ (モノスペース) フォントの場合は、前の幅を指定します。 フォントが可変ピッチ フォントの場合、このメンバーは 0 に設定する必要があります。
fxMaxAscender
pteSide に沿って測定された、このフォント インスタンスのヒント付き最大アセンダーの高さを指定します。 「GDI データ型」の「FIX データ型」を参照してください。
fxMaxDescender
pteSide に沿って測定された、このフォント インスタンスのヒント付き最大降順の高さを指定します。 「GDI データ型」の「FIX データ型」を参照してください。
ptlUnderline1
グリフの文字の原点を基準にして、このフォント インスタンスのヒント付き下線の位置を含む POINTL 構造体を指定します。
ptlStrikeOut
グリフの文字の原点を基準にして、このフォント インスタンスのヒントが設定された取り消し線の位置を含む POINTL 構造体を指定します。
ptlULThickness
このフォント インスタンスのヒント付き下線の太さを含む POINTL 構造体を指定します。 このベクターは、下線の描画に使用される四角形の側面を定義します。 ベースは、ベースラインによって暗黙的に定義されます。
ptlSOThickness
このフォント インスタンスのヒント付き取り消し線の太さを含む POINTL 構造体を指定します。 このベクターは、取り消し線の描画に使用される四角形の側面を定義します。 ベースは、ベースラインによって暗黙的に定義されます。
cxMax
このフォント インスタンスのヒント付きグリフ ビットマップの最大幅をピクセル単位で指定します。 アウトラインには使用されません。
cyMax
このフォント インスタンスのヒント付きグリフ ビットマップの最大高さをピクセル単位で指定します。 アウトラインには使用されません。
cjGlyphMax
このフォント インスタンスのグリフのヒント付き最大サイズをバイト単位で指定します。 この値は、フォントのグリフを格納するために必要な GLYPHBITS 構造体の最大サイズです。
fdxQuantized
FD_XFORM構造体を指定します。 フォント ドライバーは、フォントの実現に実際に使用されるフォント変換を入力します。 これは、 FONTOBJ_pxoGetXformで定義されている GDI によって要求される変換とは異なる場合があります。
lNonLinearExtLeading
28.4 デバイス ユニットで先行する非線形外部です。
lNonLinearIntLeading
28.4 デバイス ユニットの非線形内部先行です。
lNonLinearMaxCharWidth
28.4 デバイス単位での非線形最大文字増分値です。
lNonLinearAvgCharWidth
28.4 デバイス単位の非線形平均文字幅です。
lMinA
絶対値として指定された、このフォントを実現するための最大の負の A スペースです。
lMinC
絶対値として指定された、このフォント実現の最大の負の C 領域です。
lMinD
このフォントを実現するための最小の 0 以外の文字幅です。
alReserved[1]
は予約されており、フォント プロバイダーでは無視する必要があります。
要件
Header | winddi.h (Winddi.h を含む) |