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

戻り値

型: HRESULT

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

解説(Remarks)

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

vtbl 14 HRESULT GetFirstFontResources(IDWriteFontSet1** filteredFontSet)

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

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

戻り値

型: 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 を引いた値までの範囲です。

戻り値

型: 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 を引いた値までの範囲です。

戻り値

型: 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実際に書き込まれた、または必要となる軸範囲の数。

戻り値

型: 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実際に書き込まれた、または必要となる軸範囲の数。

戻り値

型: HRESULT

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

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

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

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

戻り値

型: HRESULT

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

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

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

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

戻り値

型: HRESULT

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

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

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

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

戻り値

型: HRESULT

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

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

単一の項目のローカリティを取得します。

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

戻り値

型: 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 指定が可能。