IFIMETRICS 構造体 (winddi.h)
IFIMETRICS 構造体は、GDI が使用できる特定の書体の情報を定義します。
構文
typedef struct _IFIMETRICS {
ULONG cjThis;
ULONG cjIfiExtra;
PTRDIFF dpwszFamilyName;
PTRDIFF dpwszStyleName;
PTRDIFF dpwszFaceName;
PTRDIFF dpwszUniqueName;
PTRDIFF dpFontSim;
LONG lEmbedId;
LONG lItalicAngle;
LONG lCharBias;
PTRDIFF dpCharSets;
BYTE jWinCharSet;
BYTE jWinPitchAndFamily;
USHORT usWinWeight;
ULONG flInfo;
USHORT fsSelection;
USHORT fsType;
FWORD fwdUnitsPerEm;
FWORD fwdLowestPPEm;
FWORD fwdWinAscender;
FWORD fwdWinDescender;
FWORD fwdMacAscender;
FWORD fwdMacDescender;
FWORD fwdMacLineGap;
FWORD fwdTypoAscender;
FWORD fwdTypoDescender;
FWORD fwdTypoLineGap;
FWORD fwdAveCharWidth;
FWORD fwdMaxCharInc;
FWORD fwdCapHeight;
FWORD fwdXHeight;
FWORD fwdSubscriptXSize;
FWORD fwdSubscriptYSize;
FWORD fwdSubscriptXOffset;
FWORD fwdSubscriptYOffset;
FWORD fwdSuperscriptXSize;
FWORD fwdSuperscriptYSize;
FWORD fwdSuperscriptXOffset;
FWORD fwdSuperscriptYOffset;
FWORD fwdUnderscoreSize;
FWORD fwdUnderscorePosition;
FWORD fwdStrikeoutSize;
FWORD fwdStrikeoutPosition;
BYTE chFirstChar;
BYTE chLastChar;
BYTE chDefaultChar;
BYTE chBreakChar;
WCHAR wcFirstChar;
WCHAR wcLastChar;
WCHAR wcDefaultChar;
WCHAR wcBreakChar;
POINTL ptlBaseline;
POINTL ptlAspect;
POINTL ptlCaret;
RECTL rclFontBox;
BYTE achVendId[4];
ULONG cKerningPairs;
ULONG ulPanoseCulture;
PANOSE panose;
PVOID Align;
} IFIMETRICS, *PIFIMETRICS;
メンバー
cjThis
この構造体のサイズをバイト単位で指定します。 指定したサイズには、この構造体の末尾に追加された Unicode 文字列と、オプションの IFIEXTRA 構造体のサイズ (バイト単位) が含まれます。
cjIfiExtra
この IFIMETRICS 構造体に続く IFIEXTRA 構造体のサイズをバイト単位で指定します。 値が 0 の場合、IFIEXTRA 構造体が存在しません。
dpwszFamilyName
フォントのファミリ名 ("Times Roman" など) を含む null で終わる Unicode 文字列へのオフセットをバイト単位で指定します。 通常、この文字列は IFIMETRICS 構造体の直後にあります。 この文字列は、Win32 LOGFONT 構造体の lfFaceName メンバーに記録されている名前と同じである必要があります。
dpwszStyleName
フォントのスタイルを記述する null で終わる Unicode 文字列へのオフセットをバイト単位で指定します (例: "Bold")。
dpwszFaceName
フォントの一意の完全な名前を表す null で終わる Unicode 文字列へのオフセットをバイト単位で指定します。 この名前には、フォントのファミリ名とサブファミリー名 ("Times New Roman Bold" など) が含まれます。
dpwszUniqueName
フォントの一意識別子 ("Monotype:Times New Roman:1990" など) を表す null で終わる Unicode 文字列へのオフセットをバイト単位で指定します。
dpFontSim
この IFIMETRICS 構造体の先頭から、フォントがサポートするシミュレーションを記述する FONTSIM 構造体までのオフセットをバイト単位で指定します。 ドライバーは、フォントが太字、斜体、または太字斜体シミュレーションをサポートしている場合にのみ、このメンバーを 0 以外の値に設定する必要があります。それ以外の場合、ドライバーはこれを 0 に設定する必要があります。
フォントが設計上斜体の場合、ドライバーは斜体シミュレーションのフォントサポートを示すべきではありませんが、太字の斜体シミュレーションのフォントサポートを示すことができます。 同様に、フォントがデザインで太字の場合、ドライバーは太字シミュレーションのフォントサポートを示すべきではありませんが、太字斜体シミュレーションのフォントサポートを示すことができます。 フォントが太字と斜体の両方のデザインの場合、シミュレーションはサポートされません。
FONTSIM 構造体のオフセットは、 FONTSIM 構造体のベースを基準とします。
lEmbedId
フォントの埋め込み ID を指定します。 この値は TrueType 固有であり、他のすべてのフォント プロバイダーで 0 に設定する必要があります。
lItalicAngle
フォントの斜体の角度を指定します。 この値は TrueType 固有であり、他のすべてのフォント プロバイダーで 0 に設定する必要があります。
lCharBias
文字バイアスを指定します。 この値は TrueType 固有であり、他のすべてのフォント プロバイダーで 0 に設定する必要があります。
dpCharSets
この IFIMETRICS 構造体の先頭から、このフォントでサポートされているすべての Windows 文字セットのリストを含む配列へのオフセットを指定します。 配列のサイズは 16 バイトで、常に DEFAULT_CHARSET で終了します。 配列の最初の値は、フォントで最も完全で完全なカバレッジを持つ Windows 文字セットを識別する必要があります。この値は jWinCharSet にも格納する必要があります。 たとえば、これが US ANSI とキリル文字セットもサポートする日本語フォントの場合、 jWinCharSet を SHIFTJIS_CHARSET に設定する必要があり、 dpCharSets で識別される配列には、SHIFTJIS_CHARSET、ANSI_CHARSET、RUSSIAN_CHARSET、DEFAULT_CHARSETが含まれます。
このフォントで複数の Windows 文字セットがサポートされていない場合は、 dpCharSets を 0 に設定する必要があります。
jWinCharSet
このフォントで最もサポートされている文字セットを識別します。 フォントで 1 つの Windows 文字セットのみがサポートされている場合、ドライバーは対応する値を jWinCharSet に格納する必要があります。 ドライバーは、このフィールドにDEFAULT_CHARSETを格納しないでください。 このメンバーには、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
ANSI_CHARSET | このフォントは、Windows ANSI 文字セットをサポートしています。 |
ARABIC_CHARSET | このフォントはアラビア文字セットをサポートしています。 |
BALTIC_CHARSET | このフォントは、バルト文字セットをサポートしています。 |
CHINESEBIG5_CHARSET | このフォントは、繁体字中国語 (Big 5) 文字セットをサポートしています。 |
EASTEUROPE_CHARSET | このフォントは、東ヨーロッパ文字セットをサポートしています。 |
GB2312_CHARSET | このフォントは、簡体字中国語 (PRC) 文字セットをサポートしています。 |
GREEK_CHARSET | このフォントはギリシャ文字セットをサポートしています。 |
HANGEUL_CHARSET | このフォントは、韓国語 (ハングル) 文字セットをサポートしています。 |
HEBREW_CHARSET | このフォントはヘブライ語の文字セットをサポートしています。 |
JOHAB_CHARSET | このフォントは、韓国語 (Johab) 文字セットをサポートしています。 |
OEM_CHARSET | このフォントは、OEM 固有の文字セットをサポートしています。 OEM 文字セットはシステムに依存します。 |
SHIFTJIS_CHARSET | このフォントは、Shift-JIS (日本語業界標準) 文字セットをサポートしています。 |
SYMBOL_CHARSET | このフォントは、Windows シンボル文字セットをサポートしています。 |
RUSSIAN_CHARSET | このフォントはキリル文字セットをサポートしています。 |
THAI_CHARSET | このフォントは、タイ語の文字セットをサポートしています。 |
TURKISH_CHARSET | このフォントは、トルコ語の文字セットをサポートしています。 |
VIETNAMESE_CHARSET | このフォントは、ベトナム文字セットをサポートしています。 |
jWinPitchAndFamily
フォントのピッチを指定します。 2 つの下位ビットはフォントのピッチを指定し、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
FIXED_PITCH | 固定ピッチ フォントの場合 |
VARIABLE_PITCH | 可変ピッチ フォントの場合 |
このメンバーのビット 4 から 7 はフォント ファミリを指定し、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
FF_DECORATIVE | 古い英語などのノベルティ フォント。 |
FF_DONTCARE | 気にしたり、不明にしたりしないでください。 |
FF_MODERN | 一定のストローク幅 (固定ピッチ)、セリフの有無にかかわらずフォント。 通常、固定ピッチフォントは、Pica、Elite、Courier などのモダンフォントです。 |
FF_ROMAN | 可変ストローク幅 (比例間隔) とセリフ (タイムズ ローマン、パラティーノ、世紀の学校ブックなど) を含むフォント。 |
FF_SCRIPT | スクリプトや筆記体など、手書きのようにデザインされたフォント。 |
FF_SWISS | 可変ストローク幅 (比例間隔) を持ち、セリフを使用しないフォント (Helvetica や Swiss など)。 |
usWinWeight
フォントの太さを 0 ~ 1000 の範囲で指定します (たとえば、400 は標準、700 は太字)。 この値は、Win32 LOGFONT 構造体の lfWeight メンバーでアプリケーションに提供されます。
flInfo
フォントに関する追加情報を指定します。 このフィールドには、次のフラグ値の組み合わせを指定できます。
FM_INFO_1BPP
グリフ ビットマップの色深度がピクセルあたり 1 ビットであることを示します。 Windows NTの最初のバージョンである Windows NT 3.1 では、このフラグを設定する必要があります。
FM_INFO_4BPP
グリフ ビットマップの色深度がピクセルあたり 4 ビットであることを示します。 フォントで 16 レベルの灰色のアンチエイリアシングされたグリフ ビットマップがサポートされている場合、ドライバーはこれを設定する必要があります。
FM_INFO_8BPP
グリフ ビットマップの色深度がピクセルあたり 8 ビットであることを示します。 現在のバージョンの GDI では、カラー フォントがサポートされていないため、この設定は無視されます。
FM_INFO_16BPP
グリフ ビットマップの色深度がピクセルあたり 16 ビットであることを示します。 現在のバージョンの GDI では、カラー フォントがサポートされていないため、この設定は無視されます。
FM_INFO_24BPP
グリフ ビットマップの色深度がピクセルあたり 24 ビットであることを示します。 現在のバージョンの GDI では、カラー フォントがサポートされていないため、この設定は無視されます。
FM_INFO_32BPP
グリフ ビットマップの色深度がピクセルあたり 32 ビットであることを示します。 現在のバージョンの GDI では、カラー フォントがサポートされていないため、この設定は無視されます。
FM_INFO_90DEGREE_ROTATIONS
元の概念図形の 90 度回転でフォントを実現できることを示します。 GDI は、フォントの作成時にドライバーに渡されるデバイス変換に対する概念の回転を含めることで、フォントの回転を要求します。 このメンバーは、FM_INFO_ARB_XFORMS フラグが設定されていない場合にのみ意味を持ちます。
FM_INFO_ANISOTROPIC_SCALING_ONLY
フォントが任意の異方性スケーリングのみをサポートすることを示します。 つまり、変換は、正の実数を乗算した対角線行列に相当します。 このフラグが設定されている場合は、FM_INFO_ARB_XFORMSフラグとFM_INFO_ISOTROPIC_SCALING_ONLYフラグを設定できません。 FM_INFO_90DEGREE_ROTATIONS フラグも設定されている場合、フォントでは、単純な異方性スケーリングと 90 度の倍数による回転の組み合わせである変換がサポートされます。
FM_INFO_ARB_XFORMS
2 次元線形変換の連続範囲でフォントを実現できることを示します。
FM_INFO_CONSTANT_WIDTH
すべての実現におけるフォントのすべてのグリフの文字増分値が同じであることを示します。 このフラグが設定されている場合は、FM_INFO_OPTICALLY_FIXED_PITCH フラグも設定する必要があります。
FM_INFO_DBCS_FIXED_PITCH
このフォントの 2 バイト文字が固定ピッチであることを示します。 1 バイト文字については何も意味しません。 このフラグは、シフト JIS などの 2 バイト文字セット (DBCS) をサポートするフォントに対してのみ意味があります。 DBCS をサポートしていないフォントでは、このフラグを設定しないでください。
FM_INFO_DO_NOT_ENUMERATE
このフォントが Win32 EnumFontFamiliesEx、 EnumFontFamilies 、または EnumFonts ルーチンによって列挙されないことを示します。 さらに、 GetTextFace の Win32 アプリケーション呼び出しに返される文字列は、文字列 dpwszUniqueName から取得されます。 このフラグを使用すると、フォント プロバイダーは複数の IFIMETRICS 構造体をいずれかのフォントに関連付けることができます。
FM_INFO_DSIG
フォントが Unicode 標準に準拠していることを示します。
FM_INFO_FAMILY_EQUIV
IFIMETRICS の dpwszFamilyName オフセットが、実際には同等のファミリ名または別名のリストへのオフセットであることを示します。 名はベースまたは実名です。後続の名前は同等または別名です。 リスト内の各名前は null で終わる。リストは 2 つのゼロで終了します。
- <基本名><0<>エイリアス 1><0>...<alias n>
- <0><0>
ベースの名前はマッピングにのみ使用されます。これらは列挙されません。
FM_INFO_IGNORE_TC_RA_ABLE
このフォントでは、TC_RA_ABLE フラグが無視されることを示します。
FM_INFO_INTEGER_WIDTH
すべてのグリフに、非違反の進み幅があることを示します。 ビットマップ フォントは通常、このフラグを設定します。
FM_INFO_INTEGRAL_SCALING
フォントを x 方向と y 方向の両方で整数でスケーリングできることを示します。 このフラグが設定されている場合、ドライバーは、デバイス変換に対する概念が x 方向と y 方向の整数の量でスケーリングされる場合にグリフをレンダリングできる必要があります。 GDI は、フォントの作成時にドライバーに渡されるデバイス変換に対する概念的な軸スケーリングを含めることで、フォントの整数スケーリングを要求します。 このフラグは、FM_INFO_ARB_XFORMS フラグが設定されていない場合にのみ意味があります。
FM_INFO_ISOTROPIC_SCALING_ONLY
フォントが任意の等方スケーリングのみをサポートすることを示します。 つまり、変換は、正の実数を乗算した ID 行列に相当します。 このフラグが設定されている場合、FM_INFO_ARB_XFORMSフラグもFM_INFO_ANISOTROPIC_SCALING_ONLYフラグも設定できません。 FM_INFO_90DEGREE_ROTATIONS フラグが設定されている場合、フォントは等方スケーリングに相当する変換をサポートし、その後に 90 度の倍数で回転します。
FM_INFO_OPTICALLY_FIXED_PITCH
このフォントが固定ピッチと見なされることを示します。 これはフォントの光学式品質であり、フォントのすべてのグリフが同じ文字増分を持っていることを必ずしも示すわけではありません。
FM_INFO_NONNEGATIVE_AC
このフォントのすべてのグリフに負でない a と c の間隔があることを示します。 つまり、グリフのブラック ボックスは、文字の原点と文字連結ポイントで囲まれた領域の外側に拡張されることはありません。
FM_INFO_NOT_CONTIGUOUS
サポートされている文字セットが連続しないことを示します。
FM_INFO_RETURNS_BITMAPS
フォントに有効なデジタル署名が含まれていることを示します。
FM_INFO_RETURNS_OUTLINES
ドライバーでサポートされているグリフについて、GDI がそのグリフのアウトラインを記述する PATHOBJ 構造体を要求できることを示します。 可能な場合は、GDI のパスの塗りつぶし規則を使用してアウトラインを塗りつぶすとき、結果のビットマップは、ドライバーによって返されるビットマップと同じである必要があります。 FM_INFO_RETURNS_OUTLINESフラグとFM_INFO_RETURNS_STOKES フラグを同時に設定することはできません。
FM_INFO_RETURNS_STROKES
ドライバーでサポートされているグリフについて、GDI がグリフのスプラインを記述する PATHOBJ 構造体を要求できることを示します。 このパスは塗りつぶすことはできませんが、グリフの表現を与えるためにストロークすることができます。 FM_INFO_RETURNS_OUTLINESフラグとFM_INFO_RETURNS_STOKES フラグを同時に設定することはできません。
FM_INFO_RIGHT_HANDED
フォントの上向き方向がベースラインの方向から反時計回りに 90 度であることを示します。 上昇方向は、高さが測定される方向であり、常にベースラインの方向に垂直です。
FM_INFO_TECH_BITMAP
フォントがビットマップ フォントであることを示します。
FM_INFO_TECH_CFF
フォントが、コンパクト フォント形式 (CFF) テーブルを含む Pscript OpenType フォントであることを示します。
FM_INFO_TECH_MM
これがマルチ マスター (MM) フォントであることを示します。
FM_INFO_TECH_OUTLINE_NOT_TRUETYPE
フォントが、アウトライン パスを使用するスケーラブルなフォント テクノロジに基づいているが、TrueType に基づいていないことを示します。 このフラグは、このフォントに対して返されるパスを塗りつぶすかストロークするかを指定しません。コンシューマーは、この情報のFM_INFO_RETURNS_STROKESフラグとFM_INFO_RETURNS_OUTLINES フラグを調べる必要があります。
FM_INFO_TECH_STROKE
フォントがストロークされたフォント テクノロジに基づいていることを示します。 このフラグは、このフォントに対して返されるパスを塗りつぶすかストロークするかを指定しません。コンシューマーは、この情報のFM_INFO_RETURNS_STROKESとFM_INFO_RETURNS_OUTLINESフラグを調べる必要があります。
FM_INFO_TECH_TRUETYPE
フォントが TrueType フォントであることを示します。
FM_INFO_TECH_TYPE1
このフォントが PostScript 画面フォント (Type1 または OpenType PostScript) であることを示します。
fsSelection
次のフラグの組み合わせを指定します。
値 | 意味 |
---|---|
FM_SEL_BOLD | フォントの文字が太字の場合に設定します。 |
FM_SEL_ITALIC | フォントの文字が斜体の場合に設定します。 |
FM_SEL_NEGATIVE | フォントの文字の前景と背景が逆の場合に設定します。 |
FM_SEL_OUTLINED | フォントの文字が白抜きになっている場合に設定します。 |
FM_SEL_REGULAR | フォントの文字が通常の太さである場合に設定します。 |
FM_SEL_STRIKEOUT | フォントの文字が既定で取り消される場合に設定します。それ以外の場合は、取り消し線をシミュレートする必要があります。 |
FM_SEL_UNDERSCORE | フォントのすべての文字が既定でアンダースコアになっている場合に設定します。それ以外の場合は、アンダースコアリングをシミュレートする必要があります。 |
fsType
これは、フォントの埋め込みやフォントのライセンス権など、フォントの特定のプロパティを示す TrueType 固有のビットフィールドです。 埋め込み可能なフォントは、ドキュメントに格納できます。 フォントがインストールされていないシステム (リモート システム) で埋め込みフォントを含むドキュメントを開くと、埋め込み対応アプリケーションによって、埋め込みフォントを一時的に (場合によっては永続的に) そのシステムで使用するために読み込むことができます。 埋め込みライセンス権限は、フォント ベンダーによって付与されます。 次のフラグを設定できます。
値 | 意味 |
---|---|
FM_EDITABLE_EMBED | フォントを埋め込み、他のシステムに一時的に読み込むことができるかどうかを設定します。 編集可能なフォントを含むドキュメントは、読み書き用に開くことができます。 |
FM_READONLY_EMBED | 読み取り/書き込み埋め込みが許可されていない場合に設定します。"プレビューと印刷" カプセル化のみが許可されます。 このビットを設定すると、フォントを埋め込み、リモート システムに一時的に読み込むことができます。 "プレビューと印刷" フォントを含むドキュメントは、"読み取り専用"で開く必要があります。ドキュメントに編集を適用することはできません。 |
|
フォントが制限付きライセンス フォントの場合に設定します。 このビットのみが設定されている場合は、最初に法的所有者の許可を得ることなく、このフォントを 変更、埋め込み、または交換することはできません 。 制限付きライセンス埋め込みを有効にするには、選択した埋め込みの唯一のレベルである必要があります。 |
FM_READONLY_EMBED ビット セットを持つフォントは、ドキュメント内に埋め込むことができるが、リモート システム に一時的にのみ インストールする必要があることを示します。 FM_READONLY_EMBEDフォントを含むドキュメントは、"読み取り専用" で開く必要があります。つまり、アプリケーションはユーザーにドキュメントの表示や印刷を許可できますが、編集することはできません。
FM_EDITABLE_EMBED ビット セットを持つフォントは、ドキュメントに埋め込むことができるが、リモート システム に一時的にのみ インストールする必要があることを示します。 FM_READONLY_EMBEDフォントとは異なり、編集可能なフォントを含むドキュメントは"読み取り/書き込み;" 編集が許可され、変更を保存できます。
fsType ビットが設定されていないフォントは、アプリケーションによってリモート システムに埋め込んで永続的にインストールできることを示します。 リモート システムのユーザーは、フォントの元の購入者と同じ権利、義務、ライセンスを取得し、元の購入者と同じエンドユーザー使用許諾契約書、著作権、デザイン特許、および/または商標の対象となります。
フォント埋め込み DLL を使用するか、他の方法を使用して、フォント埋め込みのサポートを実装するアプリケーションは、埋め込みを許可するライセンスのないフォントを埋め込む必要があります。 また、埋め込みフォントを一時的に使用するために読み込むアプリケーションでは、埋め込みフォントを含むドキュメントを閉じるときにフォントを削除する 必要があります 。
複数の埋め込みビットが設定されている場合は、付与された 最も制限の厳しい ライセンスが優先されます。 たとえば、ビット 1 と 3 が設定されている場合、ビット 3 はビット 1 よりも優先され、フォントは編集可能な権限で埋め込むことができます。 互換性のために、編集可能な埋め込み権限を付与するほとんどのベンダーは、プレビュー & 印刷ビット (0x000C) も設定します。 これにより、Preview & Print Embedding のみをサポートするアプリケーションで、フォントの埋め込みが許可されていることを検出できます。
fwdUnitsPerEm
フォントの高さを指定します。
fwdLowestPPEm
フォントの読み取り可能な最小サイズをピクセル単位で指定します。 ビットマップ フォントの場合、この値は無視されます。
fwdWinAscender
フォントの Windows アセンダー値を指定します。
fwdWinDescender
フォントの Windows の降順の値を指定します。
fwdMacAscender
フォントの Macintosh アセンダー値を指定します。
fwdMacDescender
フォントの Macintosh ディセンダー値を指定します。 通常、この数値は 0 未満です。 Macintosh 文字セット内の最下位の降順の基準線からの符号付き変位を測定します。
fwdMacLineGap
フォントの Macintosh 行間を指定します。 推奨される Macintosh の行間の間隔は 、fwdMacLineGap + fwdMacAscender - fwdMacDescender と同じです。
fwdTypoAscender
フォントの文字体裁アセンダー値を指定します。
fwdTypoDescender
フォントの文字体裁の降順の値を指定します。 この値は、ベースラインから最も低いディセンダーの符号付き変位を指定します。
fwdTypoLineGap
フォントの文字体裁の線の間隔を指定します。
fwdAveCharWidth
ラテン文字とスペース文字の 26 文字の小文字 'a' から 'z' の幅の算術平均を指定します。 26 文字の小文字のいずれかが存在しない場合、このメンバーはフォント内のすべてのグリフの加重平均に等しく設定する必要があります。
fwdMaxCharInc
フォント内のすべてのグリフの最大文字数を指定します。
fwdCapHeight
大文字の 'H' の先頭を表す光回線の高さをフォント単位 (FUnits) で指定します。 これは、大文字の 'H' の測定された高さと同じではない可能性があります。 この情報が存在しない場合は、 fwdCapHeight を 0 に設定する必要があります。これは、未定義であることを示します。
fwdXHeight
小文字の 'x' の高さをフォント単位で表す光回線の高さを指定します。 これは、小文字の 'x' の測定された高さと同じではない可能性があります。 値 0 は、このメンバーが未定義であることを示します。
fwdSubscriptXSize
下付き文字フォントの推奨文字幅 (ベースライン方向に沿ったサイズ) を指定します。
fwdSubscriptYSize
下付き文字フォントの推奨文字の高さ (アセンダーの方向に沿ったサイズ) を指定します。
fwdSubscriptXOffset
下付き文字のベースライン方向に推奨されるオフセットを指定します。 オフセットは、基本文字の文字の原点に対してです。
fwdSubscriptYOffset
下付き文字のベースライン方向に推奨されるオフセットを指定します。 オフセットは、基本文字の文字の原点から取得されます。
fwdSuperscriptXSize
上付き文字フォントの推奨される文字幅 (ベースライン方向に沿ったサイズ) を指定します。
fwdSuperscriptYSize
上付き文字フォントの推奨文字の高さ (アセンダーの方向に沿ったサイズ) を指定します。
fwdSuperscriptXOffset
上付き文字のベースライン方向に推奨されるオフセットを指定します。 オフセットは、基本文字の文字の原点から取得されます。
fwdSuperscriptYOffset
上付き文字のベースライン方向に推奨されるオフセットを指定します。 オフセットは、基本文字の文字の原点から取得されます。
fwdUnderscoreSize
アンダースコア バーの推奨幅をフォント単位で指定します。
fwdUnderscorePosition
ベース ラインからアンダースコア バーの中央までの推奨されるディスプレイスメントをフォント単位で指定します。
fwdStrikeoutSize
取り消し線の幅をフォント座標で指定します。
fwdStrikeoutPosition
ベースラインからの取り消し線バーの中央の推奨される変位を指定します。
chFirstChar
jWinCharSet で指定されたコード ページでサポートされる最も低い文字を指定します。 このフィールドは、Windows 3.1 の互換性のために提供されています。
chLastChar
jWinCharSet で指定されたコード ページでサポートされる最大文字を指定します。 このフィールドは、Windows 3.1 の互換性のために提供されています。
chDefaultChar
jWinCharSet で指定されたコード ページの既定の文字を指定します。 このフィールドは、Windows 3.1 の互換性のために提供されています。
chBreakChar
jWinCharSet で指定されたコード ページの区切り文字を指定します。 このフィールドは、Windows 3.1 の互換性のために提供されています。
wcFirstChar
サポートされている文字を、最小の Unicode 文字コードで指定します。
wcLastChar
サポートされている文字を最大の Unicode 文字コードで指定します。
wcDefaultChar
アプリケーションがフォントでサポートされていない文字を要求するときに置き換える文字を指定します。
wcBreakChar
スペース文字またはその同等のコード ポイントを指定します。
ptlBaseline
このフォントの書き込み方向を含む POINTL 構造体を指定します。 たとえば、一般的なラテンフォントでは、値 (1,0) を指定します。
ptlAspect
ビットマップ フォントが設計されたピクセル中心の縦横比を含む POINTL 構造体を指定します。 この値は、ビットマップ フォントでのみ使用されます。
ptlCaret
フォントのアセンダー方向の方向を含む POINTL 構造体を指定します。 たとえば、非イタリア語のラテンフォントの値は (0,1) で、斜体のラテンフォントでは値 (2,5) を指定できます。
rclFontBox
デザイン空間内のフォント内のすべてのグリフの境界ボックスを記述する RECTL 構造体を指定します。
achVendId[4]
フォント ベンダーの 4 文字識別子を指定します。 識別子は、Microsoft TrueType 仕様に記載されています。
cKerningPairs
このフォントに関連付けられているカーニング ペアの数を指定します。
ulPanoseCulture
パノース番号を解釈する方法を指定します。 この数値は、ラテン語ベースのフォントのFM_PANOSE_CULTURE_LATINに設定する必要があります。 PANOSE 構造の詳細については、Microsoft Window SDK のドキュメントを参照してください。
panose
指定された書体の視覚的特性を記述するために使用される 10 バイトの配列です。 次に、これらの特性を使用して、異なる名前を持つ類似した外観の他のフォントにフォントを関連付けます。 PANOSE 構造の詳細については、Window SDK のドキュメントを参照してください。
Align
このメンバーは、_WIN64定数が定義されている場合にのみ定義されます。 その唯一の目的は、この構造が Itanium アーキテクチャの下で正しく配置されるようにすることです。
注釈
書体の追加情報は、必要に応じて IFIEXTRA 構造体で指定できます。
ドライバーの DrvQueryFont ルーチンが入力し、GDI に IFIMETRICS 構造体を返します。
IFIMETRICS 構造体は、GDI が認識する書体のすべての情報を定義します。 ほとんどのメンバーは FWORD 値であり、デザイン空間では 16 ビットの数量に署名されています。 フォントがラスター フォントの場合、デザイン空間とデバイス領域は同じであり、フォント単位はピクセル間の距離と同じです。
フォント/概念空間の座標系は、y 座標が上方向に増加し、x 座標が右側に増加するように設定されます。
IFIMETRICS 構造体の Align メンバーを使用すると、x32 マシンの場合よりも x64 マシンの方が大きくなり、この構造に従って書式設定されたバイナリ フォント形式ファイルの影響を受けます。 Windows Server 2003 SP1 以降、Prntfont.h: PRINTIFI32に固定サイズの構造体が追加されました。 PRINTIFI32構造体は、 Align メンバーが含まれていない点を除き、IFIMETRICS 構造体と同じです。
要件
要件 | 値 |
---|---|
Header | winddi.h (Winddi.h を含む) |