IDWriteFontFace3
COM公式ドキュメント
フォントフェイスの種類、適切なファイル参照、およびフェイス識別データを保持します。 (IDWriteFontFace3)
メソッド 14
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このフォントを識別するフォントフェイス参照を取得します。 (IDWriteFontFace3.GetFontFaceReference)
| fontFaceReference | IDWriteFontFaceReference** | out | 新しく作成されたフォントフェイス参照オブジェクトの IDWriteFontFaceReference インターフェイスへのポインターを受け取るメモリブロックへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォント選択とマッチングに使用される PANOSE 値をフォントから取得します。
| panose | DWRITE_PANOSE* | out | フォントから PANOSE 値を受け取る DWRITE_PANOSE 構造体へのポインター。 |
解説(Remarks)
このメソッドは、他の値から推測されるウェイトやプロポーションを代入するといった、これらの値のシミュレーションを行いません。フォントがこれらを指定していない場合、すべて 'any' (0) に設定されます。
このフォントのウェイトを取得します。
戻り値
ストロークの細さや太さの観点から書体の濃度を指定する DWRITE_FONT_WEIGHT 型の値を返します。
このフォントのストレッチ(幅とも呼ばれます)を取得します。
戻り値
フォントの通常のアスペクト比と比較して、フォントがどの程度ストレッチされているかを指定する DWRITE_FONT_STRETCH 型の値を返します。
このフォントのスタイル(スロープとも呼ばれます)を取得します。
戻り値
フォントのスタイルを指定する DWRITE_FONT_STYLE 型の値を返します。
ロケール名でインデックス付けされた、フォントファミリーのファミリー名を含むローカライズ文字列オブジェクトを作成します。 (IDWriteFontFace3.GetFamilyNames)
| names | IDWriteLocalizedStrings** | out | 新しく作成されたローカライズ文字列オブジェクトの IDWriteLocalizedStrings インターフェイスへのポインターを受け取るメモリブロックへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ロケール名でインデックス付けされた、フォントのフェイス名(例: Regular や Bold)を含むローカライズ文字列オブジェクトを作成します。
| names | IDWriteLocalizedStrings** | out | 新しく作成されたローカライズ文字列オブジェクトの IDWriteLocalizedStrings インターフェイスへのポインターを受け取るメモリブロックへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ロケール名でインデックス付けされた、指定された情報文字列を含むローカライズ文字列コレクションを取得します。
| informationalStringID | DWRITE_INFORMATIONAL_STRING_ID | in | 取得する文字列を識別する DWRITE_INFORMATIONAL_STRING_ID 型の値。 |
| informationalStrings | IDWriteLocalizedStrings** | out | 新しく作成されたローカライズ文字列オブジェクトの IDWriteLocalizedStrings インターフェイスへのポインターを受け取るメモリブロックへのポインター。 |
| exists | BOOL* | out | フォントが指定された文字列 ID を含むかどうかを受け取る変数へのポインター。フォントが指定された文字列 ID を含む場合は TRUE、それ以外の場合は FALSE。 |
戻り値
型: HRESULT
フォントが指定された文字列を含まない場合、戻り値は S_OK ですが、informationalStrings は NULL ポインターを受け取り、exists は FALSE の値を受け取ります。
フォントが指定された文字をサポートしているかどうかを判定します。
| unicodeValue | DWORD | in | Unicode (UCS-4) 文字値。 |
戻り値
型: BOOL
フォントが指定された文字をサポートしているかどうかを返します。フォントが指定された文字を持つ場合は TRUE、それ以外の場合は FALSE を返します。
フォント、サイズ、ワールド変換、および測定モードに基づいて、使用すべき推奨のテキストレンダリングモードおよびグリッドフィットモードを決定します。 (IDWriteFontFace3.GetRecommendedRenderingMode)
| fontEmSize | FLOAT | in | DIP 単位の論理フォントサイズ。 |
| dpiX | FLOAT | in | 水平方向の論理インチあたりのピクセル数。 |
| dpiY | FLOAT | in | 垂直方向の論理インチあたりのピクセル数。 |
| transform | DWRITE_MATRIX* | inoptional | ワールド変換を記述する DWRITE_MATRIX 構造体。 |
| isSideways | BOOL | in | フォントが横倒し(sideways)かどうかを指定します。フォントが横倒しの場合は TRUE、それ以外の場合は FALSE。 |
| outlineThreshold | DWRITE_OUTLINE_THRESHOLD | in | グラフィックスシステムのアウトラインレンダリングの品質を指定する DWRITE_OUTLINE_THRESHOLD 型の値。アウトラインレンダリングが使用されるサイズしきい値に影響します。 |
| measuringMode | DWRITE_MEASURING_MODE | in | テキストレイアウト時に測定に使用される方法を指定する DWRITE_MEASURING_MODE 型の値。適切なグリフ間隔を得るために、このメソッドは指定された測定モードと互換性のあるレンダリングモードを返します。 |
| renderingParams | IDWriteRenderingParams* | inoptional | レンダリングパラメーターオブジェクトの IDWriteRenderingParams インターフェイスへのポインター。このパラメーターは、レンダリングパラメーターオブジェクトがレンダリングモードをオーバーライドする場合に必要です。 |
| renderingMode | DWRITE_RENDERING_MODE1* | out | 推奨のレンダリングモードを表す DWRITE_RENDERING_MODE1 型の値を受け取る変数へのポインター。 |
| gridFitMode | DWRITE_GRID_FIT_MODE* | out | 推奨のグリッドフィットモードを表す DWRITE_GRID_FIT_MODE 型の値を受け取る変数へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
文字がフォントからローカルにダウンロードされているかどうかを判定します。
| unicodeValue | DWORD | in | Unicode (UCS-4) 文字値。 |
戻り値
型: BOOL
フォントが指定された文字をローカルで利用可能な場合は TRUE、そうでない場合、またはフォントがその文字をサポートしていない場合は FALSE を返します。
グリフがフォントからローカルにダウンロードされているかどうかを判定します。
| glyphId | WORD | in | グリフ識別子。 |
戻り値
型: BOOL
フォントが指定されたグリフをローカルで利用可能な場合は TRUE を返します。
指定された文字がローカルであるかどうかを判定します。
| characters | LPWSTR | in | 文字の配列。 |
| characterCount | DWORD | in | 文字配列内の要素数。 |
| enqueueIfNotLocal | BOOL | in | 指定された文字のいずれかがローカルでない場合に、ダウンロード要求をキューに入れるかどうかを指定します。 |
| isLocal | BOOL* | out | 指定された文字がすべてローカルの場合は TRUE、いずれかがリモートの場合は FALSE を受け取ります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定されたグリフがローカルであるかどうかを判定します。
| glyphIndices | WORD* | in | グリフインデックスの配列。 |
| glyphCount | DWORD | in | グリフインデックス配列内の要素数。 |
| enqueueIfNotLocal | BOOL | in | 指定されたグリフのいずれかがローカルでない場合に、ダウンロード要求をキューに入れるかどうかを指定します。 |
| isLocal | BOOL* | out | 指定されたグリフがすべてローカルの場合は TRUE、いずれかがリモートの場合は FALSE を受け取ります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDWriteFontFace3 "{D37D7598-09BE-4222-A236-2081341CC1F2}" #usecom global IDWriteFontFace3 IID_IDWriteFontFace3 "{}" #comfunc global IDWriteFontFace3_GetFontFaceReference 35 sptr #comfunc global IDWriteFontFace3_GetPanose 36 var #comfunc global IDWriteFontFace3_GetWeight 37 #comfunc global IDWriteFontFace3_GetStretch 38 #comfunc global IDWriteFontFace3_GetStyle 39 #comfunc global IDWriteFontFace3_GetFamilyNames 40 sptr #comfunc global IDWriteFontFace3_GetFaceNames 41 sptr #comfunc global IDWriteFontFace3_GetInformationalStrings 42 int,sptr,var #comfunc global IDWriteFontFace3_HasCharacter 43 int #comfunc global IDWriteFontFace3_GetRecommendedRenderingMode 44 float,float,float,var,int,int,int,sptr,var,var #comfunc global IDWriteFontFace3_IsCharacterLocal 45 int #comfunc global IDWriteFontFace3_IsGlyphLocal 46 int #comfunc global IDWriteFontFace3_AreCharactersLocal 47 wstr,int,int,var #comfunc global IDWriteFontFace3_AreGlyphsLocal 48 var,int,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteFontFace3 "{D37D7598-09BE-4222-A236-2081341CC1F2}" #usecom global IDWriteFontFace3 IID_IDWriteFontFace3 "{}" #comfunc global IDWriteFontFace3_GetFontFaceReference 35 sptr #comfunc global IDWriteFontFace3_GetPanose 36 sptr #comfunc global IDWriteFontFace3_GetWeight 37 #comfunc global IDWriteFontFace3_GetStretch 38 #comfunc global IDWriteFontFace3_GetStyle 39 #comfunc global IDWriteFontFace3_GetFamilyNames 40 sptr #comfunc global IDWriteFontFace3_GetFaceNames 41 sptr #comfunc global IDWriteFontFace3_GetInformationalStrings 42 int,sptr,sptr #comfunc global IDWriteFontFace3_HasCharacter 43 int #comfunc global IDWriteFontFace3_GetRecommendedRenderingMode 44 float,float,float,sptr,int,int,int,sptr,sptr,sptr #comfunc global IDWriteFontFace3_IsCharacterLocal 45 int #comfunc global IDWriteFontFace3_IsGlyphLocal 46 int #comfunc global IDWriteFontFace3_AreCharactersLocal 47 wstr,int,int,sptr #comfunc global IDWriteFontFace3_AreGlyphsLocal 48 sptr,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。