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

IDWriteFontSet1

COM
IID7e9fda85-6c92-4053-bc47-7ae3530db4d3継承元IDWriteFontSet自前メソッド開始 vtbl13

公式ドキュメント

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

メソッド 13

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

vtbl 13 HRESULT GetMatchingFonts(DWRITE_FONT_PROPERTY* fontProperty, DWRITE_FONT_AXIS_VALUE* fontAxisValues, DWORD fontAxisValueCount, IDWriteFontSet1** matchingFonts)

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

fontPropertyDWRITE_FONT_PROPERTY*inoptional対象となるフォントプロパティ(タイポグラフィックファミリーや weight/stretch/style ファミリーなど)。
fontAxisValuesDWRITE_FONT_AXIS_VALUE*inフォント軸値のリストを含む配列へのポインター。配列のサイズ(要素数)は fontAxisValueCount 引数で示される値である必要があります。
fontAxisValueCountDWORDinfontAxisValues 配列に含まれるフォント軸値の数。
matchingFontsIDWriteFontSet1**outIDWriteFontSet1 インターフェイスへのポインターのアドレス。正常に完了すると、この関数はプロパティに一致するフォントの優先順位付きリストへのポインターを設定します。それ以外の場合は、ポインターに nullptr を設定します。

戻り値

Type: HRESULT

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

解説(Remarks)

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

vtbl 14 HRESULT GetFirstFontResources(IDWriteFontSet1** filteredFontSet)

セット内の各フォントリソースの最初の出現のみを含む新しいフォントセットを取得します。

filteredFontSetIDWriteFontSet1**outIDWriteFontSet1 インターフェイスへのポインターのアドレス。正常に完了すると、この関数は、フォントリソースの単一の既定インスタンスで構成される新しいフォントセットオブジェクトへのポインターを設定します。それ以外の場合は、ポインターに nullptr を設定します。

戻り値

Type: HRESULT

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

vtbl 15 HRESULT GetFilteredFonts(DWORD* indices, DWORD indexCount, IDWriteFontSet1** filteredFontSet)
indicesDWORD*in抽出するフォントのインデックス配列である。
indexCountDWORDinindices配列の要素数である。
filteredFontSetIDWriteFontSet1**out抽出結果を含む新フォントセットを受け取る出力先である。
vtbl 16 HRESULT GetFilteredFonts(DWRITE_FONT_AXIS_RANGE* fontAxisRanges, DWORD fontAxisRangeCount, BOOL selectAnyRange, IDWriteFontSet1** filteredFontSet)
fontAxisRangesDWRITE_FONT_AXIS_RANGE*in抽出条件となる軸範囲のDWRITE_FONT_AXIS_RANGE配列である。
fontAxisRangeCountDWORDinfontAxisRanges配列の要素数である。
selectAnyRangeBOOLinいずれかの範囲に一致すれば選ぶか(TRUE)全範囲一致を要するか(FALSE)を示すBOOLである。
filteredFontSetIDWriteFontSet1**out抽出結果を含む新フォントセットを受け取る出力先である。
vtbl 17 HRESULT GetFilteredFonts(DWRITE_FONT_PROPERTY* properties, DWORD propertyCount, BOOL selectAnyProperty, IDWriteFontSet1** filteredFontSet)
propertiesDWRITE_FONT_PROPERTY*inoptional抽出条件となるDWRITE_FONT_PROPERTY配列である。
propertyCountDWORDinproperties配列の要素数である。
selectAnyPropertyBOOLinいずれかのプロパティに一致すれば選ぶか(TRUE)全一致を要するか(FALSE)を示すBOOLである。
filteredFontSetIDWriteFontSet1**out抽出結果を含む新フォントセットを受け取る出力先である。
vtbl 18 HRESULT GetFilteredFontIndices(DWRITE_FONT_AXIS_RANGE* fontAxisRanges, DWORD fontAxisRangeCount, BOOL selectAnyRange, DWORD* indices, DWORD maxIndexCount, DWORD* actualIndexCount)

指定されたプロパティでフィルターされた、すべての項目のインデックスを取得します。

fontAxisRangesDWRITE_FONT_AXIS_RANGE*in抽出条件となる軸範囲のDWRITE_FONT_AXIS_RANGE配列である。
fontAxisRangeCountDWORDinfontAxisRanges配列の要素数である。
selectAnyRangeBOOLinいずれかの範囲一致で選ぶか(TRUE)全範囲一致を要するか(FALSE)を示すBOOLである。
indicesDWORD*out0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲の、昇順のインデックス配列。
maxIndexCountDWORDinインデックスの数。
actualIndexCountDWORD*out書き込まれた、または必要とされるインデックスの実際の数。0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲です。

戻り値

Type: HRESULT

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

戻り値 説明
E_NOT_SUFFICIENT_BUFFER バッファが小さすぎます。actualIndexCount には必要なサイズが設定されます。actualIndexCount は常に IDwriteFontSet::GetFontCount 以下になります。
vtbl 19 HRESULT GetFilteredFontIndices(DWRITE_FONT_PROPERTY* properties, DWORD propertyCount, BOOL selectAnyProperty, DWORD* indices, DWORD maxIndexCount, DWORD* actualIndexCount)

指定されたプロパティでフィルターされた、すべての項目のインデックスを取得します。

propertiesDWRITE_FONT_PROPERTY*inフィルターに使用するプロパティのリスト。
propertyCountDWORDinフィルターするプロパティの数。
selectAnyPropertyBOOLinGetFilteredFontIndices がいずれかのプロパティを選択する場合は true、すべてのプロパティの積集合を選択する場合は false
indicesDWORD*out0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲の、昇順のインデックス配列。
maxIndexCountDWORDinインデックスの数。
actualIndexCountDWORD*out書き込まれた、または必要とされるインデックスの実際の数。0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲です。

戻り値

Type: HRESULT

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

戻り値 説明
E_NOT_SUFFICIENT_BUFFER バッファが小さすぎます。actualIndexCount には必要なサイズが設定されます。actualIndexCount は常に IDwriteFontSet::GetFontCount 以下になります。
vtbl 20 HRESULT GetFontAxisRanges(DWORD listIndex, DWRITE_FONT_AXIS_RANGE* fontAxisRanges, DWORD maxFontAxisRangeCount, DWORD* actualFontAxisRangeCount)

フォントセット内のすべての軸範囲(含まれるすべての項目の和集合)を取得します。

listIndexDWORDin軸範囲を取得する対象フォントのインデックスである。
fontAxisRangesDWRITE_FONT_AXIS_RANGE*out取得する軸値範囲のリスト。
maxFontAxisRangeCountDWORDin取得する軸値範囲の数。
actualFontAxisRangeCountDWORD*out書き込まれた、または必要とされる軸範囲の実際の数。

戻り値

Type: HRESULT

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

戻り値 説明
E_NOT_SUFFICIENT_BUFFER バッファが小さすぎます。actualFontAxisRangeCount には必要なサイズが設定されます。
vtbl 21 HRESULT GetFontAxisRanges(DWRITE_FONT_AXIS_RANGE* fontAxisRanges, DWORD maxFontAxisRangeCount, DWORD* actualFontAxisRangeCount)

フォントセット内のすべての軸範囲(含まれるすべての項目の和集合)を取得します。

fontAxisRangesDWRITE_FONT_AXIS_RANGE*out取得する軸値範囲のリスト。
maxFontAxisRangeCountDWORDin取得する軸値範囲の数。
actualFontAxisRangeCountDWORD*out書き込まれた、または必要とされる軸範囲の実際の数。

戻り値

Type: HRESULT

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

戻り値 説明
E_NOT_SUFFICIENT_BUFFER バッファが小さすぎます。actualFontAxisRangeCount には必要なサイズが設定されます。
vtbl 22 HRESULT GetFontFaceReference(DWORD listIndex, IDWriteFontFaceReference1** fontFaceReference)

単一の項目のフォントフェイス参照を取得します。

listIndexDWORDinセット内のフォント項目の 0 から始まるインデックス。
fontFaceReferenceIDWriteFontFaceReference1**outIDWriteFontFaceReference1 インターフェイスへのポインターのアドレス。正常に完了すると、この関数はポインターにフォントフェイス参照を設定します。

戻り値

Type: HRESULT

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

vtbl 23 HRESULT CreateFontResource(DWORD listIndex, IDWriteFontResource** fontResource)

単一の項目のフォントリソースを作成します。

listIndexDWORDinセット内のフォント項目の 0 から始まるインデックス。
fontResourceIDWriteFontResource**outIDWriteFontResource インターフェイスへのポインターのアドレス。正常に完了すると、この関数はポインターに、新しく作成されたフォントリソースオブジェクトを設定します。

戻り値

Type: HRESULT

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

戻り値 説明
DWRITE_E_REMOTEFONT ファイルがローカルにありません。
vtbl 24 HRESULT CreateFontFace(DWORD listIndex, IDWriteFontFace5** fontFace)

(フォントフェイス参照を経由せずに)単一の項目のフォントフェイスを作成します。

listIndexDWORDinセット内のフォント項目の 0 から始まるインデックス。
fontFaceIDWriteFontFace5**outIDWriteFontFace5 インターフェイスへのポインターのアドレス。正常に完了すると、この関数はポインターに、新しく作成されたフォントフェイスオブジェクトを設定します。

戻り値

Type: HRESULT

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

戻り値 説明
DWRITE_E_REMOTEFONT フォントがローカルにありません。
vtbl 25 DWRITE_LOCALITY GetFontLocality(DWORD listIndex)

単一の項目の局所性(ローカリティ)を取得します。

listIndexDWORDinセット内のフォント項目の 0 から始まるインデックス。

戻り値

Type: DWRITE_LOCALITY

局所性を示す値。

解説(Remarks)

局所性の列挙値です。完全にローカルなファイルの場合、結果は常に DWRITE_LOCALITY_LOCAL になります。ダウンロード可能なファイルの場合、結果はファイルがどの程度ダウンロードされているかによって異なります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteFontSet1 "{7E9FDA85-6C92-4053-BC47-7AE3530DB4D3}"
#usecom global IDWriteFontSet1 IID_IDWriteFontSet1 "{}"
#comfunc global IDWriteFontSet1_GetMatchingFonts        13 var,var,int,sptr
#comfunc global IDWriteFontSet1_GetFirstFontResources   14 sptr
#comfunc global IDWriteFontSet1_GetFilteredFonts        15 var,int,sptr
#comfunc global IDWriteFontSet1_GetFilteredFonts        16 var,int,int,sptr
#comfunc global IDWriteFontSet1_GetFilteredFonts        17 var,int,int,sptr
#comfunc global IDWriteFontSet1_GetFilteredFontIndices  18 var,int,int,var,int,var
#comfunc global IDWriteFontSet1_GetFilteredFontIndices  19 var,int,int,var,int,var
#comfunc global IDWriteFontSet1_GetFontAxisRanges       20 int,var,int,var
#comfunc global IDWriteFontSet1_GetFontAxisRanges       21 var,int,var
#comfunc global IDWriteFontSet1_GetFontFaceReference    22 int,sptr
#comfunc global IDWriteFontSet1_CreateFontResource      23 int,sptr
#comfunc global IDWriteFontSet1_CreateFontFace          24 int,sptr
#comfunc global IDWriteFontSet1_GetFontLocality         25 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。