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

IDWriteFontSet4

COM
IIDeec175fc-bea9-4c86-8b53-ccbdd7df0c82継承元IDWriteFontSet3自前メソッド開始 vtbl30

公式ドキュメント

フォントセットを表します。(IDWriteFontSet4)

メソッド 2

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

vtbl 30 DWORD ConvertWeightStretchStyleToFontAxisValues(DWRITE_FONT_AXIS_VALUE* inputAxisValues, DWORD inputAxisCount, DWRITE_FONT_WEIGHT fontWeight, DWRITE_FONT_STRETCH fontStretch, DWRITE_FONT_STYLE fontStyle, FLOAT fontSize, DWRITE_FONT_AXIS_VALUE* outputAxisValues)

指定されたフォントの太さ (weight)、幅 (stretch)、スタイル (style)、およびサイズから、派生的なフォント軸 (font axis) 値を計算します。

inputAxisValuesDWRITE_FONT_AXIS_VALUE*inoptional入力軸値の配列への省略可能なポインターです。この配列に存在する軸は出力から除外されます。これは、明示的な軸値が派生的な軸値よりも優先されるようにするためです。
inputAxisCountDWORDin入力軸値の配列のサイズです。
fontWeightDWRITE_FONT_WEIGHTinフォントの太さ (weight) です。"wght" 軸値の計算に使用されます。
fontStretchDWRITE_FONT_STRETCHinフォントの幅 (stretch) です。"wdth" 軸値の計算に使用されます。
fontStyleDWRITE_FONT_STYLEinフォントのスタイル (style) です。"slnt" および "ital" 軸値の計算に使用されます。
fontSizeFLOATinDIP 単位のフォントサイズです。"opsz" 軸値の計算に使用されます。このパラメーターが 0 の場合、"opsz" 軸値は出力配列に追加されません。
outputAxisValuesDWRITE_FONT_AXIS_VALUE*out派生的な軸値が書き込まれる出力配列へのポインターです。この配列のサイズは少なくとも DWRITE_STANDARD_FONT_AXIS_COUNT (5) でなければなりません。戻り値は、この配列に実際に書き込まれた軸値の数です。

戻り値

型: UINT32

出力配列に実際に書き込まれた派生軸値の数を返します。

解説(Remarks)

呼び出し元は、出力軸値を入力軸値 (存在する場合) に連結し、結合した軸値を GetMatchingFonts メソッドに渡す必要があります。出力には inputAxisValues 配列に存在する軸が含まれないため、重複は発生しません。

vtbl 31 HRESULT GetMatchingFonts(LPWSTR familyName, DWRITE_FONT_AXIS_VALUE* fontAxisValues, DWORD fontAxisValueCount, DWRITE_FONT_SIMULATIONS allowedSimulations, IDWriteFontSet4** matchingFonts)

要求された入力に基づいて、一致するフォントセットを生成します。より近い一致が先頭になるように並べ替えられます。

familyNameLPWSTRinフォントファミリー名です。タイポグラフィックファミリー名、weight/stretch/style ファミリー名、GDI (RBIZ) ファミリー名、またはフルネームを指定できます。
fontAxisValuesDWRITE_FONT_AXIS_VALUE*inフォント軸値の配列です。
fontAxisValueCountDWORDinフォント軸値の数です。
allowedSimulationsDWRITE_FONT_SIMULATIONSin指定された軸値によりよく一致させるために、一致するフォントへ適用できるシミュレーション (つまりアルゴリズムによる太字化や傾斜) を指定します。引数が DWRITE_FONT_SIMULATIONS_NONE (0) の場合、シミュレーションは適用されません。
matchingFontsIDWriteFontSet4**out新しく作成されたフォントセットへのポインターを受け取ります。このフォントセットには、指定された入力に一致するフォントの優先順位付きリストが含まれます。

戻り値

型: HRESULT

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

解説(Remarks)

これにより、元のフォントセットに存在しなかった個別の項目が生成されることがあります。これには、(要求により近い一致となる場合の) シミュレーションフラグを持つ項目や、フォント作成者によって名前が付けられていないインスタンスが含まれます。同じフォントリソースに由来する項目は、可能な限り近い一致の 1 つにまとめられます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteFontSet4 "{EEC175FC-BEA9-4C86-8B53-CCBDD7DF0C82}"
#usecom global IDWriteFontSet4 IID_IDWriteFontSet4 "{}"
#comfunc global IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues  30 var,int,int,int,int,float,var
#comfunc global IDWriteFontSet4_GetMatchingFonts                           31 wstr,var,int,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。