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

IDWriteFontSet

COM
IID53585141-d9f8-4095-8321-d73cf6bd116b継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

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

メソッド 10

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

vtbl 3 DWORD GetFontCount()

セット内のフォントの総数を取得します。

戻り値

型: UINT32

セット内のフォントの総数を返します。

vtbl 4 HRESULT GetFontFaceReference(DWORD listIndex, IDWriteFontFaceReference** fontFaceReference)

指定したインデックスにあるフォントへの参照を取得します。参照はローカルまたはリモートのいずれかです。

listIndexDWORDinフォントの 0 から始まるインデックスです。
fontFaceReferenceIDWriteFontFaceReference**outフォントフェイス参照オブジェクトへのポインターを受け取ります。失敗した場合は nullptr を受け取ります。

戻り値

型: HRESULT

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

vtbl 5 HRESULT FindFontFaceReference(IDWriteFontFaceReference* fontFaceReference, DWORD* listIndex, BOOL* exists)

同じファイル、フェイスインデックス、シミュレーションを持つ、フォントセット内で一致するフォントフェイス参照のインデックスを取得します。(IDWriteFontSet.FindFontFaceReference)

fontFaceReferenceIDWriteFontFaceReference*in物理フォントを指定するフォントフェイスオブジェクトです。
listIndexDWORD*outフォントが見つかった場合は一致するフォントの 0 から始まるインデックスを、それ以外の場合は UINT_MAX を受け取ります。
existsBOOL*outフォントが存在する場合は TRUE を、それ以外の場合は FALSE を受け取ります。

戻り値

型: HRESULT

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

vtbl 6 HRESULT FindFontFace(IDWriteFontFace* fontFace, DWORD* listIndex, BOOL* exists)

同じファイル、フェイスインデックス、シミュレーションを持つ、フォントセット内で一致するフォントフェイス参照のインデックスを取得します。(IDWriteFontSet.FindFontFace)

fontFaceIDWriteFontFace*in物理フォントを指定するフォントフェイスオブジェクトです。
listIndexDWORD*outフォントが見つかった場合は一致するフォントの 0 から始まるインデックスを、それ以外の場合は UINT_MAX を受け取ります。
existsBOOL*outフォントが存在する場合は TRUE を、それ以外の場合は FALSE を受け取ります。

戻り値

型: HRESULT

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

vtbl 7 HRESULT GetPropertyValues(DWRITE_FONT_PROPERTY_ID propertyID, IDWriteStringList** values)
propertyIDDWRITE_FONT_PROPERTY_IDin値を列挙する対象のフォントプロパティ種別を指定する列挙値。
valuesIDWriteStringList**outプロパティ値の文字列リストを受け取るポインタ(出力)。
vtbl 8 HRESULT GetPropertyValues(DWRITE_FONT_PROPERTY_ID propertyID, LPWSTR preferredLocaleNames, IDWriteStringList** values)
propertyIDDWRITE_FONT_PROPERTY_IDin値を列挙する対象のフォントプロパティ種別を指定する列挙値。
preferredLocaleNamesLPWSTRin優先するロケール名(セミコロン区切り)。値の言語選択に用いる。
valuesIDWriteStringList**outプロパティ値の文字列リストを受け取るポインタ(出力)。
vtbl 9 HRESULT GetPropertyValues(DWORD listIndex, DWRITE_FONT_PROPERTY_ID propertyId, BOOL* exists, IDWriteLocalizedStrings** values)
listIndexDWORDin値を取得するフォントのインデックス(0始まり)。
propertyIdDWRITE_FONT_PROPERTY_IDin取得するプロパティ種別を指定する列挙値。
existsBOOL*out当該プロパティが存在するかを受け取るBOOLへのポインタ(出力)。
valuesIDWriteLocalizedStrings**outプロパティ値の文字列リストを受け取るポインタ(出力)。
vtbl 10 HRESULT GetPropertyOccurrenceCount(DWRITE_FONT_PROPERTY* property, DWORD* propertyOccurrenceCount)

指定したプロパティ値がセット内で出現する回数を返します。

propertyDWRITE_FONT_PROPERTY*in対象となるフォントプロパティです。
propertyOccurrenceCountDWORD*outプロパティが出現する回数を受け取ります。

戻り値

型: HRESULT

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

vtbl 11 HRESULT GetMatchingFonts(LPWSTR familyName, DWRITE_FONT_WEIGHT fontWeight, DWRITE_FONT_STRETCH fontStretch, DWRITE_FONT_STYLE fontStyle, IDWriteFontSet** filteredSet)
familyNameLPWSTRin一致条件とするフォントファミリ名。
fontWeightDWRITE_FONT_WEIGHTin一致条件とするフォントウェイトを表す列挙値。
fontStretchDWRITE_FONT_STRETCHin一致条件とするフォントストレッチを表す列挙値。
fontStyleDWRITE_FONT_STYLEin一致条件とするフォントスタイルを表す列挙値。
filteredSetIDWriteFontSet**out条件で絞り込まれたフォントセットを受け取るポインタ(出力)。
vtbl 12 HRESULT GetMatchingFonts(DWRITE_FONT_PROPERTY* properties, DWORD propertyCount, IDWriteFontSet** filteredSet)
propertiesDWRITE_FONT_PROPERTY*in一致条件とするフォントプロパティの配列。
propertyCountDWORDinproperties配列の要素数。
filteredSetIDWriteFontSet**out条件で絞り込まれたフォントセットを受け取るポインタ(出力)。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。