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

IDWriteFactory6

COM
IIDf3744d80-21f7-42eb-b35d-995bc72fc223継承元IDWriteFactory5自前メソッド開始 vtbl48

公式ドキュメント

このインターフェイスは、すべての DirectWrite オブジェクトの生成元となるファクトリオブジェクトを表します。IDWriteFactory6 は、フォントおよびフォントリソースを扱うための新しい機能を追加します。

メソッド 7

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

vtbl 48 HRESULT CreateFontFaceReference(IDWriteFontFile* fontFile, DWORD faceIndex, DWRITE_FONT_SIMULATIONS fontSimulations, DWRITE_FONT_AXIS_VALUE* fontAxisValues, DWORD fontAxisValueCount, IDWriteFontFaceReference1** fontFaceReference)

ファイル内の特定のフォントインスタンスへの参照を作成します。

fontFileIDWriteFontFile*inフォントフェイスを表す、ユーザー指定のフォントファイルです。
faceIndexDWORDinフォントファイルが複数のフォントフェイスのコレクションを含む場合の、フォントフェイスの 0 から始まるインデックスです。フォントファイルが単一のフェイスのみを含む場合は、この値を 0 に設定します。
fontSimulationsDWRITE_FONT_SIMULATIONSinアルゴリズムによる太字化および斜体化のためのフォントフェイスシミュレーションフラグです。
fontAxisValuesDWRITE_FONT_AXIS_VALUE*inフォント軸値の一覧を含む配列へのポインターです。配列の大きさ(要素数)は fontAxisValueCount 引数で指定した数と一致している必要があります。
fontAxisValueCountDWORDinfontAxisValues 配列に含まれるフォント軸値の数です。
fontFaceReferenceIDWriteFontFaceReference1**outIDWriteFontFaceReference1 インターフェイスへのポインターのアドレスです。処理が成功すると、この関数はポインターを新しく作成されたフォントフェイス参照オブジェクトに設定します。それ以外の場合はポインターを nullptr に設定します。

戻り値

Type: HRESULT

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

vtbl 49 HRESULT CreateFontResource(IDWriteFontFile* fontFile, DWORD faceIndex, IDWriteFontResource** fontResource)

フォントファイルとフェイスインデックスからフォントリソースを作成します。

fontFileIDWriteFontFile*inフォントフェイスを表す、ユーザー指定のフォントファイルです。
faceIndexDWORDinフォントファイルが複数のフォントフェイスのコレクションを含む場合の、フォントフェイスの 0 から始まるインデックスです。フォントファイルが単一のフェイスのみを含む場合は、この値を 0 に設定します。
fontResourceIDWriteFontResource**outIDWriteFontResource インターフェイスへのポインターのアドレスです。処理が成功すると、この関数はポインターを新しく作成されたフォントリソースオブジェクトに設定します。それ以外の場合はポインターを nullptr に設定します。

戻り値

Type: HRESULT

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

vtbl 50 HRESULT GetSystemFontSet(BOOL includeDownloadableFonts, IDWriteFontSet1** fontSet)

システムフォントのセットを取得します。(IDWriteFactory6::GetSystemFontSet)

includeDownloadableFontsBOOLinダウンロード可能なフォントを含めたい場合は true を指定します。ローカルにインストールされたフォントのみを対象とする場合は false を指定します。
fontSetIDWriteFontSet1**outIDWriteFontSet1 インターフェイスへのポインターのアドレスです。処理が成功すると、この関数はポインターをフォントセットオブジェクトに設定します。それ以外の場合はポインターを nullptr に設定します。

戻り値

Type: HRESULT

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

vtbl 51 HRESULT GetSystemFontCollection(BOOL includeDownloadableFonts, DWRITE_FONT_FAMILY_MODEL fontFamilyModel, IDWriteFontCollection2** fontCollection)

ファミリーごとにグループ化されたフォントのコレクションを取得します。(IDWriteFactory6::GetSystemFontCollection)

includeDownloadableFontsBOOLinダウンロード可能なフォントを含めたい場合は true を指定します。ローカルにインストールされたフォントのみを対象とする場合は false を指定します。
fontFamilyModelDWRITE_FONT_FAMILY_MODELinコレクション内でファミリーをどのようにグループ化するかを指定します。
fontCollectionIDWriteFontCollection2**outIDWriteFontCollection2 インターフェイスへのポインターのアドレスです。処理が成功すると、この関数はポインターを新しく作成されたフォントコレクションオブジェクトに設定します。それ以外の場合はポインターを nullptr に設定します。

戻り値

Type: HRESULT

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

vtbl 52 HRESULT CreateFontCollectionFromFontSet(IDWriteFontSet* fontSet, DWRITE_FONT_FAMILY_MODEL fontFamilyModel, IDWriteFontCollection2** fontCollection)

フォントセットから、ファミリーごとにグループ化されたフォントのコレクションを作成します。

fontSetIDWriteFontSet*inコレクションの構築に使用するフォントのセットです。
fontFamilyModelDWRITE_FONT_FAMILY_MODELinコレクション内でファミリーをどのようにグループ化するかを指定します。
fontCollectionIDWriteFontCollection2**outIDWriteFontCollection2 インターフェイスへのポインターのアドレスです。処理が成功すると、この関数はポインターを新しく作成されたフォントコレクションオブジェクトに設定します。それ以外の場合はポインターを nullptr に設定します。

戻り値

Type: HRESULT

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

vtbl 53 HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder2** fontSetBuilder)

フォントインスタンスを追加してカスタムフォントセットを作成できる、空のフォントセットビルダーを作成します。

fontSetBuilderIDWriteFontSetBuilder2**outIDWriteFontSetBuilder2 インターフェイスへのポインターのアドレスです。処理が成功すると、この関数はポインターを新しく作成されたフォントセットビルダーオブジェクトに設定します。それ以外の場合はポインターを nullptr に設定します。

戻り値

Type: HRESULT

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

vtbl 54 HRESULT CreateTextFormat(LPWSTR fontFamilyName, IDWriteFontCollection* fontCollection, DWRITE_FONT_AXIS_VALUE* fontAxisValues, DWORD fontAxisValueCount, FLOAT fontSize, LPWSTR localeName, IDWriteTextFormat3** textFormat)

テキストレイアウトに使用するテキストフォーマットオブジェクトを作成します。

fontFamilyNameLPWSTRinコレクション内のフォントファミリーの名前です。
fontCollectionIDWriteFontCollection*inoptionalフォントコレクションです。システムフォントコレクションを指定するには nullptr を使用します。
fontAxisValuesDWRITE_FONT_AXIS_VALUE*inフォント軸値の一覧を含む配列へのポインターです。配列の大きさ(要素数)は fontAxisValueCount 引数で指定した数と一致している必要があります。
fontAxisValueCountDWORDinfontAxisValues 配列に含まれるフォント軸値の数です。
fontSizeFLOATinDIP 単位で表したフォントの論理サイズです。
localeNameLPWSTRinロケール名です(例: "ja-JP"、"en-US"、"ar-EG")。
textFormatIDWriteTextFormat3**outIDWriteTextFormat3 インターフェイスへのポインターのアドレスです。処理が成功すると、この関数はポインターを新しく作成されたテキストフォーマットオブジェクトに設定します。それ以外の場合はポインターを nullptr に設定します。

戻り値

Type: HRESULT

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

解説(Remarks)

fontCollectionnullptr の場合は、ダウンロード可能なフォントを含めず、タイポグラフィックファミリー名 (DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC) でグループ化されたシステムフォントコレクションが使用されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteFactory6 "{F3744D80-21F7-42EB-B35D-995BC72FC223}"
#usecom global IDWriteFactory6 IID_IDWriteFactory6 "{}"
#comfunc global IDWriteFactory6_CreateFontFaceReference          48 sptr,int,int,var,int,sptr
#comfunc global IDWriteFactory6_CreateFontResource               49 sptr,int,sptr
#comfunc global IDWriteFactory6_GetSystemFontSet                 50 int,sptr
#comfunc global IDWriteFactory6_GetSystemFontCollection          51 int,int,sptr
#comfunc global IDWriteFactory6_CreateFontCollectionFromFontSet  52 sptr,int,sptr
#comfunc global IDWriteFactory6_CreateFontSetBuilder             53 sptr
#comfunc global IDWriteFactory6_CreateTextFormat                 54 wstr,sptr,var,int,float,wstr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。