IDWriteFontSet
COM公式ドキュメント
フォントセットを表します。(IDWriteFontSet)
メソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
セット内のフォントの総数を取得します。
戻り値
型: UINT32
セット内のフォントの総数を返します。
指定したインデックスにあるフォントへの参照を取得します。参照はローカルまたはリモートのいずれかです。
| listIndex | DWORD | in | フォントの 0 から始まるインデックスです。 |
| fontFaceReference | IDWriteFontFaceReference** | out | フォントフェイス参照オブジェクトへのポインターを受け取ります。失敗した場合は nullptr を受け取ります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
同じファイル、フェイスインデックス、シミュレーションを持つ、フォントセット内で一致するフォントフェイス参照のインデックスを取得します。(IDWriteFontSet.FindFontFaceReference)
| fontFaceReference | IDWriteFontFaceReference* | in | 物理フォントを指定するフォントフェイスオブジェクトです。 |
| listIndex | DWORD* | out | フォントが見つかった場合は一致するフォントの 0 から始まるインデックスを、それ以外の場合は UINT_MAX を受け取ります。 |
| exists | BOOL* | out | フォントが存在する場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
同じファイル、フェイスインデックス、シミュレーションを持つ、フォントセット内で一致するフォントフェイス参照のインデックスを取得します。(IDWriteFontSet.FindFontFace)
| fontFace | IDWriteFontFace* | in | 物理フォントを指定するフォントフェイスオブジェクトです。 |
| listIndex | DWORD* | out | フォントが見つかった場合は一致するフォントの 0 から始まるインデックスを、それ以外の場合は UINT_MAX を受け取ります。 |
| exists | BOOL* | out | フォントが存在する場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
| propertyID | DWRITE_FONT_PROPERTY_ID | in | 値を列挙する対象のフォントプロパティ種別を指定する列挙値。 |
| values | IDWriteStringList** | out | プロパティ値の文字列リストを受け取るポインタ(出力)。 |
| propertyID | DWRITE_FONT_PROPERTY_ID | in | 値を列挙する対象のフォントプロパティ種別を指定する列挙値。 |
| preferredLocaleNames | LPWSTR | in | 優先するロケール名(セミコロン区切り)。値の言語選択に用いる。 |
| values | IDWriteStringList** | out | プロパティ値の文字列リストを受け取るポインタ(出力)。 |
| listIndex | DWORD | in | 値を取得するフォントのインデックス(0始まり)。 |
| propertyId | DWRITE_FONT_PROPERTY_ID | in | 取得するプロパティ種別を指定する列挙値。 |
| exists | BOOL* | out | 当該プロパティが存在するかを受け取るBOOLへのポインタ(出力)。 |
| values | IDWriteLocalizedStrings** | out | プロパティ値の文字列リストを受け取るポインタ(出力)。 |
指定したプロパティ値がセット内で出現する回数を返します。
| property | DWRITE_FONT_PROPERTY* | in | 対象となるフォントプロパティです。 |
| propertyOccurrenceCount | DWORD* | out | プロパティが出現する回数を受け取ります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
| familyName | LPWSTR | in | 一致条件とするフォントファミリ名。 |
| fontWeight | DWRITE_FONT_WEIGHT | in | 一致条件とするフォントウェイトを表す列挙値。 |
| fontStretch | DWRITE_FONT_STRETCH | in | 一致条件とするフォントストレッチを表す列挙値。 |
| fontStyle | DWRITE_FONT_STYLE | in | 一致条件とするフォントスタイルを表す列挙値。 |
| filteredSet | IDWriteFontSet** | out | 条件で絞り込まれたフォントセットを受け取るポインタ(出力)。 |
| properties | DWRITE_FONT_PROPERTY* | in | 一致条件とするフォントプロパティの配列。 |
| propertyCount | DWORD | in | properties配列の要素数。 |
| filteredSet | IDWriteFontSet** | out | 条件で絞り込まれたフォントセットを受け取るポインタ(出力)。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDWriteFontSet "{53585141-D9F8-4095-8321-D73CF6BD116B}" #usecom global IDWriteFontSet IID_IDWriteFontSet "{}" #comfunc global IDWriteFontSet_GetFontCount 3 #comfunc global IDWriteFontSet_GetFontFaceReference 4 int,sptr #comfunc global IDWriteFontSet_FindFontFaceReference 5 sptr,var,var #comfunc global IDWriteFontSet_FindFontFace 6 sptr,var,var #comfunc global IDWriteFontSet_GetPropertyValues 7 int,sptr #comfunc global IDWriteFontSet_GetPropertyValues 8 int,wstr,sptr #comfunc global IDWriteFontSet_GetPropertyValues 9 int,int,var,sptr #comfunc global IDWriteFontSet_GetPropertyOccurrenceCount 10 var,var #comfunc global IDWriteFontSet_GetMatchingFonts 11 wstr,int,int,int,sptr #comfunc global IDWriteFontSet_GetMatchingFonts 12 var,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteFontSet "{53585141-D9F8-4095-8321-D73CF6BD116B}" #usecom global IDWriteFontSet IID_IDWriteFontSet "{}" #comfunc global IDWriteFontSet_GetFontCount 3 #comfunc global IDWriteFontSet_GetFontFaceReference 4 int,sptr #comfunc global IDWriteFontSet_FindFontFaceReference 5 sptr,sptr,sptr #comfunc global IDWriteFontSet_FindFontFace 6 sptr,sptr,sptr #comfunc global IDWriteFontSet_GetPropertyValues 7 int,sptr #comfunc global IDWriteFontSet_GetPropertyValues 8 int,wstr,sptr #comfunc global IDWriteFontSet_GetPropertyValues 9 int,int,sptr,sptr #comfunc global IDWriteFontSet_GetPropertyOccurrenceCount 10 sptr,sptr #comfunc global IDWriteFontSet_GetMatchingFonts 11 wstr,int,int,int,sptr #comfunc global IDWriteFontSet_GetMatchingFonts 12 sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。