IDWriteFontSet1
COM公式ドキュメント
フォントセットを表します。(IDWriteFontSet1)
メソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
要求された入力に基づいて一致するフォントセットを取得します。より近い一致が先頭になるように並べ替えられます。
| fontProperty | DWRITE_FONT_PROPERTY* | inoptional | 対象となるフォントプロパティ(タイポグラフィックファミリーや weight/stretch/style ファミリーなど)。 |
| fontAxisValues | DWRITE_FONT_AXIS_VALUE* | in | フォント軸値のリストを含む配列へのポインター。配列のサイズ(要素数)は fontAxisValueCount 引数で示される値である必要があります。 |
| fontAxisValueCount | DWORD | in | fontAxisValues 配列に含まれるフォント軸値の数。 |
| matchingFonts | IDWriteFontSet1** | out | IDWriteFontSet1 インターフェイスへのポインターのアドレス。正常に完了すると、この関数はプロパティに一致するフォントの優先順位付きリストへのポインターを設定します。それ以外の場合は、ポインターに nullptr を設定します。 |
戻り値
解説(Remarks)
このメソッドは、元のフォントセットに存在しなかった個別の項目を返すことがあります。これには、(要求により近い一致となる場合の)シミュレーションフラグを持つ項目や、フォント作成者によって名前が付けられていないインスタンスが含まれます。同じフォントリソースに由来する項目は、可能な限り近い一致となる 1 つの項目にまとめられます。
セット内の各フォントリソースの最初の出現のみを含む新しいフォントセットを取得します。
| filteredFontSet | IDWriteFontSet1** | out | IDWriteFontSet1 インターフェイスへのポインターのアドレス。正常に完了すると、この関数は、フォントリソースの単一の既定インスタンスで構成される新しいフォントセットオブジェクトへのポインターを設定します。それ以外の場合は、ポインターに nullptr を設定します。 |
戻り値
| indices | DWORD* | in | 抽出するフォントのインデックス配列である。 |
| indexCount | DWORD | in | indices配列の要素数である。 |
| filteredFontSet | IDWriteFontSet1** | out | 抽出結果を含む新フォントセットを受け取る出力先である。 |
| fontAxisRanges | DWRITE_FONT_AXIS_RANGE* | in | 抽出条件となる軸範囲のDWRITE_FONT_AXIS_RANGE配列である。 |
| fontAxisRangeCount | DWORD | in | fontAxisRanges配列の要素数である。 |
| selectAnyRange | BOOL | in | いずれかの範囲に一致すれば選ぶか(TRUE)全範囲一致を要するか(FALSE)を示すBOOLである。 |
| filteredFontSet | IDWriteFontSet1** | out | 抽出結果を含む新フォントセットを受け取る出力先である。 |
| properties | DWRITE_FONT_PROPERTY* | inoptional | 抽出条件となるDWRITE_FONT_PROPERTY配列である。 |
| propertyCount | DWORD | in | properties配列の要素数である。 |
| selectAnyProperty | BOOL | in | いずれかのプロパティに一致すれば選ぶか(TRUE)全一致を要するか(FALSE)を示すBOOLである。 |
| filteredFontSet | IDWriteFontSet1** | out | 抽出結果を含む新フォントセットを受け取る出力先である。 |
指定されたプロパティでフィルターされた、すべての項目のインデックスを取得します。
| fontAxisRanges | DWRITE_FONT_AXIS_RANGE* | in | 抽出条件となる軸範囲のDWRITE_FONT_AXIS_RANGE配列である。 |
| fontAxisRangeCount | DWORD | in | fontAxisRanges配列の要素数である。 |
| selectAnyRange | BOOL | in | いずれかの範囲一致で選ぶか(TRUE)全範囲一致を要するか(FALSE)を示すBOOLである。 |
| indices | DWORD* | out | 0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲の、昇順のインデックス配列。 |
| maxIndexCount | DWORD | in | インデックスの数。 |
| actualIndexCount | DWORD* | out | 書き込まれた、または必要とされるインデックスの実際の数。0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲です。 |
戻り値
Type: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。
| 戻り値 | 説明 |
|---|---|
| E_NOT_SUFFICIENT_BUFFER | バッファが小さすぎます。actualIndexCount には必要なサイズが設定されます。actualIndexCount は常に IDwriteFontSet::GetFontCount 以下になります。 |
指定されたプロパティでフィルターされた、すべての項目のインデックスを取得します。
| properties | DWRITE_FONT_PROPERTY* | in | フィルターに使用するプロパティのリスト。 |
| propertyCount | DWORD | in | フィルターするプロパティの数。 |
| selectAnyProperty | BOOL | in | GetFilteredFontIndices がいずれかのプロパティを選択する場合は true、すべてのプロパティの積集合を選択する場合は false。 |
| indices | DWORD* | out | 0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲の、昇順のインデックス配列。 |
| maxIndexCount | DWORD | in | インデックスの数。 |
| actualIndexCount | DWORD* | out | 書き込まれた、または必要とされるインデックスの実際の数。0 から IDwriteFontSet::GetFontCount から 1 を引いた値までの範囲です。 |
戻り値
Type: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。
| 戻り値 | 説明 |
|---|---|
| E_NOT_SUFFICIENT_BUFFER | バッファが小さすぎます。actualIndexCount には必要なサイズが設定されます。actualIndexCount は常に IDwriteFontSet::GetFontCount 以下になります。 |
フォントセット内のすべての軸範囲(含まれるすべての項目の和集合)を取得します。
| listIndex | DWORD | in | 軸範囲を取得する対象フォントのインデックスである。 |
| fontAxisRanges | DWRITE_FONT_AXIS_RANGE* | out | 取得する軸値範囲のリスト。 |
| maxFontAxisRangeCount | DWORD | in | 取得する軸値範囲の数。 |
| actualFontAxisRangeCount | DWORD* | out | 書き込まれた、または必要とされる軸範囲の実際の数。 |
戻り値
Type: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。
| 戻り値 | 説明 |
|---|---|
| E_NOT_SUFFICIENT_BUFFER | バッファが小さすぎます。actualFontAxisRangeCount には必要なサイズが設定されます。 |
フォントセット内のすべての軸範囲(含まれるすべての項目の和集合)を取得します。
| fontAxisRanges | DWRITE_FONT_AXIS_RANGE* | out | 取得する軸値範囲のリスト。 |
| maxFontAxisRangeCount | DWORD | in | 取得する軸値範囲の数。 |
| actualFontAxisRangeCount | DWORD* | out | 書き込まれた、または必要とされる軸範囲の実際の数。 |
戻り値
Type: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。
| 戻り値 | 説明 |
|---|---|
| E_NOT_SUFFICIENT_BUFFER | バッファが小さすぎます。actualFontAxisRangeCount には必要なサイズが設定されます。 |
単一の項目のフォントフェイス参照を取得します。
| listIndex | DWORD | in | セット内のフォント項目の 0 から始まるインデックス。 |
| fontFaceReference | IDWriteFontFaceReference1** | out | IDWriteFontFaceReference1 インターフェイスへのポインターのアドレス。正常に完了すると、この関数はポインターにフォントフェイス参照を設定します。 |
戻り値
単一の項目のフォントリソースを作成します。
| listIndex | DWORD | in | セット内のフォント項目の 0 から始まるインデックス。 |
| fontResource | IDWriteFontResource** | out | IDWriteFontResource インターフェイスへのポインターのアドレス。正常に完了すると、この関数はポインターに、新しく作成されたフォントリソースオブジェクトを設定します。 |
戻り値
Type: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。
| 戻り値 | 説明 |
|---|---|
| DWRITE_E_REMOTEFONT | ファイルがローカルにありません。 |
(フォントフェイス参照を経由せずに)単一の項目のフォントフェイスを作成します。
| listIndex | DWORD | in | セット内のフォント項目の 0 から始まるインデックス。 |
| fontFace | IDWriteFontFace5** | out | IDWriteFontFace5 インターフェイスへのポインターのアドレス。正常に完了すると、この関数はポインターに、新しく作成されたフォントフェイスオブジェクトを設定します。 |
戻り値
Type: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコード を返します。
| 戻り値 | 説明 |
|---|---|
| DWRITE_E_REMOTEFONT | フォントがローカルにありません。 |
単一の項目の局所性(ローカリティ)を取得します。
| listIndex | DWORD | in | セット内のフォント項目の 0 から始まるインデックス。 |
戻り値
Type: DWRITE_LOCALITY
局所性を示す値。
解説(Remarks)
局所性の列挙値です。完全にローカルなファイルの場合、結果は常に DWRITE_LOCALITY_LOCAL になります。ダウンロード可能なファイルの場合、結果はファイルがどの程度ダウンロードされているかによって異なります。
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 指定が可能。#define global IID_IDWriteFontSet1 "{7E9FDA85-6C92-4053-BC47-7AE3530DB4D3}" #usecom global IDWriteFontSet1 IID_IDWriteFontSet1 "{}" #comfunc global IDWriteFontSet1_GetMatchingFonts 13 sptr,sptr,int,sptr #comfunc global IDWriteFontSet1_GetFirstFontResources 14 sptr #comfunc global IDWriteFontSet1_GetFilteredFonts 15 sptr,int,sptr #comfunc global IDWriteFontSet1_GetFilteredFonts 16 sptr,int,int,sptr #comfunc global IDWriteFontSet1_GetFilteredFonts 17 sptr,int,int,sptr #comfunc global IDWriteFontSet1_GetFilteredFontIndices 18 sptr,int,int,sptr,int,sptr #comfunc global IDWriteFontSet1_GetFilteredFontIndices 19 sptr,int,int,sptr,int,sptr #comfunc global IDWriteFontSet1_GetFontAxisRanges 20 int,sptr,int,sptr #comfunc global IDWriteFontSet1_GetFontAxisRanges 21 sptr,int,sptr #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が無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。