Win32 API 日本語リファレンス
ホームGraphics.DirectWrite › IDWriteFontResource

IDWriteFontResource

COM
IID1f803a76-6871-48e8-987f-b975551c50f2継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

フォントリソースの軸情報を提供し、特定のフォントフェイスインスタンスを作成するために使用されます。

メソッド 12

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetFontFile(IDWriteFontFile** fontFile)

リソースのフォントファイルを取得します。

fontFileIDWriteFontFile**outIDWriteFontFile インターフェースへのポインターのアドレス。正常に完了すると、この関数はポインターをフォントファイルオブジェクトに設定します。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。

vtbl 4 DWORD GetFontFaceIndex()

フォントファイル内におけるフォントフェイスの 0 から始まるインデックスを取得します。

戻り値

型: UINT32

フォントファイル内におけるフォントフェイスの 0 から始まるインデックス。

vtbl 5 DWORD GetFontAxisCount()

フォントリソースがサポートする軸の数を取得します。

戻り値

型: UINT32

フォントフェイスによって定義された軸の数。

vtbl 6 HRESULT GetDefaultFontAxisValues(DWRITE_FONT_AXIS_VALUE* fontAxisValues, DWORD fontAxisValueCount)

フォントリソースがサポートするすべての軸の既定値を取得します。

fontAxisValuesDWRITE_FONT_AXIS_VALUE*outGetDefaultFontAxisValues がフォント軸値のリストを書き込む DWRITE_FONT_AXIS_VALUE 構造体の配列へのポインター。この配列のサイズと有効期間の管理は呼び出し側の責任です。割り当てる配列のサイズを決定するには GetFontAxisCount を呼び出します。
fontAxisValueCountDWORDinfontAxisValues が指すメモリブロックに書き込むフォント軸値の最大数。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。

戻り値 説明
E_INVALIDARG fontAxisValueCountGetFontAxisCount の返す値と一致しません。

解説(Remarks)

フォントリソースによって既定値が異なる場合があります。OpenType 1.8 フォントでは、これらの値は STAT テーブルと fvar テーブルから取得されます。STAT テーブルを持たない古いフォントでは、weight-width-slant-italic が OS/2 テーブルから読み取られます。

vtbl 7 HRESULT GetFontAxisRanges(DWRITE_FONT_AXIS_RANGE* fontAxisRanges, DWORD fontAxisRangeCount)

各軸の値の範囲を取得します。

fontAxisRangesDWRITE_FONT_AXIS_RANGE*outGetFontAxisRanges がフォント軸値の範囲のリストを書き込む DWRITE_FONT_AXIS_RANGE 構造体の配列へのポインター。この配列のサイズと有効期間の管理は呼び出し側の責任です。割り当てる配列のサイズを決定するには GetFontAxisCount を呼び出します。
fontAxisRangeCountDWORDinfontAxisRanges が指すメモリブロックに書き込むフォント軸値範囲の最大数。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。

戻り値 説明
E_INVALIDARG fontAxisValueCountGetFontAxisCount の返す値と一致しません。

解説(Remarks)

可変でない軸は空の範囲を持ちます (minValue == maxValue)。

vtbl 8 DWRITE_FONT_AXIS_ATTRIBUTES GetFontAxisAttributes(DWORD axisIndex)

指定した軸を説明する属性 (フォント作成者がユーザーインターフェイスでその軸を非表示にすることを推奨しているかどうかなど) を取得します。

axisIndexDWORDinフォント軸。0 から GetFontAxisCount から 1 を引いた値まで。

戻り値

型: DWRITE_FONT_AXIS_ATTRIBUTES

指定した軸の属性。axisIndex がフォントの数を超えている場合は DWRITE_FONT_AXIS_ATTRIBUTES_NONE

vtbl 9 HRESULT GetAxisNames(DWORD axisIndex, IDWriteLocalizedStrings** names)

フォント軸のローカライズされた名前を取得します。

axisIndexDWORDinフォント軸。0 から GetFontAxisCount から 1 を引いた値まで。
namesIDWriteLocalizedStrings**outIDWriteLocalizedStrings インターフェースへのポインターのアドレス。正常に完了すると、この関数はポインターを新しく作成されたローカライズ済み文字列オブジェクトに設定します。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。

解説(Remarks)

フォント作成者が一部のフォント軸に名前を指定していない場合があります。その場合、ローカライズ済み文字列は空になります。

vtbl 10 DWORD GetAxisValueNameCount(DWORD axisIndex)

特定の軸の名前付き値の数を取得します。

axisIndexDWORDinフォント軸。0 から GetFontAxisCount から 1 を引いた値まで。

戻り値

型: UINT32

axisIndex で指定された軸の名前付き値の数。

vtbl 11 HRESULT GetAxisValueNames(DWORD axisIndex, DWORD axisValueIndex, DWRITE_FONT_AXIS_RANGE* fontAxisRange, IDWriteLocalizedStrings** names)

フォント軸の特定の値のローカライズされた名前を取得します。

axisIndexDWORDinフォント軸。0 から GetFontAxisCount から 1 を引いた値まで。
axisValueIndexDWORDin値のインデックス。0 から GetAxisValueNameCount から 1 を引いた値まで。
fontAxisRangeDWRITE_FONT_AXIS_RANGE*out名前付き値の範囲。
namesIDWriteLocalizedStrings**outIDWriteLocalizedStrings インターフェースへのポインターのアドレス。正常に完了すると、この関数はポインターを新しく作成されたローカライズ済み文字列オブジェクトに設定します。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。

解説(Remarks)

フォント作成者が一部のフォント軸値に名前を指定していない場合があります。その場合、ローカライズ済み文字列は空になります。範囲は minValue == maxValue となる単一の点になる場合があります。すべての範囲は axisValueIndex の昇順です。

vtbl 12 BOOL HasVariations()

このフォントフェイスのリソースが可変軸をサポートしているかどうかを判定します。(IDWriteFontResource::HasVariations)

戻り値

型: BOOL

フォントフェイスのリソースが可変軸をサポートしている場合は true。それ以外の場合は false

vtbl 13 HRESULT CreateFontFace(DWRITE_FONT_SIMULATIONS fontSimulations, DWRITE_FONT_AXIS_VALUE* fontAxisValues, DWORD fontAxisValueCount, IDWriteFontFace5** fontFace)

特定の軸値を持つフォントフェイスインスタンスを作成します。

fontSimulationsDWRITE_FONT_SIMULATIONSinアルゴリズムによる太字化および斜体化のためのフォントフェイスシミュレーションフラグ。
fontAxisValuesDWRITE_FONT_AXIS_VALUE*inフォント軸値のリストを格納した配列へのポインター。配列のサイズ (要素数) は fontAxisValueCount 引数で示される値である必要があります。
fontAxisValueCountDWORDinfontAxisValues 配列に格納されているフォント軸値の数。
fontFaceIDWriteFontFace5**outIDWriteFontFace5 インターフェースへのポインターのアドレス。正常に完了すると、この関数はポインターを新しく作成されたフォントフェイスオブジェクトに設定し、それ以外の場合はポインターを nullptr に設定します。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。

戻り値 説明
DWRITE_E_REMOTEFONT フォントがローカルにありません。

解説(Remarks)

指定する軸値は、フォントが実際にサポートするすべての軸値のサブセットまたはスーパーセットであってもかまいません。指定されなかった軸は既定値を使用します。範囲を超えた値はクランプされ、可変でない軸は効果を持ちません。

vtbl 14 HRESULT CreateFontFaceReference(DWRITE_FONT_SIMULATIONS fontSimulations, DWRITE_FONT_AXIS_VALUE* fontAxisValues, DWORD fontAxisValueCount, IDWriteFontFaceReference1** fontFaceReference)

特定の軸値を持つフォントフェイス参照を作成します。

fontSimulationsDWRITE_FONT_SIMULATIONSinアルゴリズムによる太字化および斜体化のためのフォントフェイスシミュレーションフラグ。
fontAxisValuesDWRITE_FONT_AXIS_VALUE*inフォント軸値のリストを格納した配列へのポインター。配列のサイズ (要素数) は fontAxisValueCount 引数で示される値である必要があります。
fontAxisValueCountDWORDinfontAxisValues 配列に格納されているフォント軸値の数。
fontFaceReferenceIDWriteFontFaceReference1**outIDWriteFontFaceReference1 インターフェースへのポインターのアドレス。正常に完了すると、この関数はポインターを新しく作成されたフォントフェイス参照オブジェクトに設定し、それ以外の場合はポインターを nullptr に設定します。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。

解説(Remarks)

指定する軸値は、フォントが実際にサポートするすべての軸値のサブセットまたはスーパーセットであってもかまいません。指定されなかった軸は既定値を使用します。範囲を超えた値はクランプされ、可変でない軸は効果を持ちません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDWriteFontResource "{1F803A76-6871-48E8-987F-B975551C50F2}"
#usecom global IDWriteFontResource IID_IDWriteFontResource "{}"
#comfunc global IDWriteFontResource_GetFontFile               3 sptr
#comfunc global IDWriteFontResource_GetFontFaceIndex          4
#comfunc global IDWriteFontResource_GetFontAxisCount          5
#comfunc global IDWriteFontResource_GetDefaultFontAxisValues  6 var,int
#comfunc global IDWriteFontResource_GetFontAxisRanges         7 var,int
#comfunc global IDWriteFontResource_GetFontAxisAttributes     8 int
#comfunc global IDWriteFontResource_GetAxisNames              9 int,sptr
#comfunc global IDWriteFontResource_GetAxisValueNameCount     10 int
#comfunc global IDWriteFontResource_GetAxisValueNames         11 int,int,var,sptr
#comfunc global IDWriteFontResource_HasVariations             12
#comfunc global IDWriteFontResource_CreateFontFace            13 int,var,int,sptr
#comfunc global IDWriteFontResource_CreateFontFaceReference   14 int,var,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。