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

IDWriteFactory3

COM
IID9a1b41c3-d3bb-466a-87fc-fe67556a3b65継承元IDWriteFactory2自前メソッド開始 vtbl31

公式ドキュメント

すべての DirectWrite オブジェクトのルートとなるファクトリインターフェイスです。(IDWriteFactory3)

メソッド 9

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

vtbl 31 HRESULT CreateGlyphRunAnalysis(DWRITE_GLYPH_RUN* glyphRun, DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 renderingMode, DWRITE_MEASURING_MODE measuringMode, DWRITE_GRID_FIT_MODE gridFitMode, DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, FLOAT baselineOriginX, FLOAT baselineOriginY, IDWriteGlyphRunAnalysis** glyphRunAnalysis)

グリフランのレンダリングに DirectWrite が使用する情報をカプセル化した glyph-run-analysis オブジェクトを作成します。

glyphRunDWRITE_GLYPH_RUN*inグリフランのプロパティを格納する DWRITE_GLYPH_RUN 構造体です。
transformDWRITE_MATRIX*inoptionalグリフおよびその位置に適用する任意の変換を記述する DWRITE_MATRIX 構造体です。
renderingModeDWRITE_RENDERING_MODE1inレンダリングモードを指定する DWRITE_RENDERING_MODE1 型の値です。ラスターレンダリングモードのいずれか(すなわち default でも outline でもないもの)である必要があります。
measuringModeDWRITE_MEASURING_MODEinラン内のグリフの測定方法を指定する DWRITE_MEASURING_MODE 型の値です。このメソッドは、他のプロパティと合わせてこの値を使用し、レンダリングモードを決定します。
gridFitModeDWRITE_GRID_FIT_MODEinグリフのアウトラインをグリッドにどのようにフィットさせるかを指定する DWRITE_GRID_FIT_MODE 型の値です。この値は default 以外である必要があります。
antialiasModeDWRITE_TEXT_ANTIALIAS_MODEinレンダリングモードがアンチエイリアシングを必要とする場合に、テキストに使用するアンチエイリアシングの種類を指定する DWRITE_TEXT_ANTIALIAS_MODE 型の値です。
baselineOriginXFLOATinDIB の左上隅を基準とした、ベースライン原点の水平位置(DIP 単位)です。
baselineOriginYFLOATinDIB の左上隅を基準とした、ベースライン原点の垂直位置(DIP 単位)です。
glyphRunAnalysisIDWriteGlyphRunAnalysis**out新しく作成された glyph-run-analysis オブジェクトの IDWriteGlyphRunAnalysis インターフェイスへのポインターを受け取るメモリブロックへのポインターです。

戻り値

型: HRESULT

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

vtbl 32 HRESULT CreateCustomRenderingParams(FLOAT gamma, FLOAT enhancedContrast, FLOAT grayscaleEnhancedContrast, FLOAT clearTypeLevel, DWRITE_PIXEL_GEOMETRY pixelGeometry, DWRITE_RENDERING_MODE1 renderingMode, DWRITE_GRID_FIT_MODE gridFitMode, IDWriteRenderingParams3** renderingParams)

指定したプロパティを持つレンダリングパラメーターオブジェクトを作成します。(IDWriteFactory3.CreateCustomRenderingParams)

gammaFLOATinガンマ補正に使用するガンマ値です。0 より大きく、256 を超えない値である必要があります。
enhancedContrastFLOATinコントラスト強調の量で、0 以上の値です。
grayscaleEnhancedContrastFLOATinグレースケールアンチエイリアシングに使用するコントラスト強調の量で、0 以上の値です。
clearTypeLevelFLOATinClearType のレベルの度合いで、0.0f(ClearType なし)から 1.0f(完全な ClearType)までの値です。
pixelGeometryDWRITE_PIXEL_GEOMETRYinテキストのレンダリングにあたって想定するデバイスピクセルの内部構造(すなわち赤・緑・青の色成分の物理的な配置)を指定する DWRITE_PIXEL_GEOMETRY 型の値です。
renderingModeDWRITE_RENDERING_MODE1inグリフをレンダリングする方式(例: ClearType natural quality)を指定する DWRITE_RENDERING_MODE1 型の値です。ほとんどの場合、DWRITE_RENDERING_MODE1_DEFAULT を指定すると適切なモードが自動的に使用されます。
gridFitModeDWRITE_GRID_FIT_MODEinグリフのアウトラインをグリッドにどのようにフィットさせるかを指定する DWRITE_GRID_FIT_MODE 型の値です。ほとんどの場合、DWRITE_GRID_FIT_DEFAULT を指定すると適切なモードが自動的に選択されます。
renderingParamsIDWriteRenderingParams3**out新しく作成されたレンダリングパラメーターオブジェクトの IDWriteRenderingParams3 インターフェイスへのポインター、または失敗した場合は NULL を受け取るメモリブロックへのポインターです。

戻り値

型: HRESULT

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

vtbl 33 HRESULT CreateFontFaceReference(IDWriteFontFile* fontFile, DWORD faceIndex, DWRITE_FONT_SIMULATIONS fontSimulations, IDWriteFontFaceReference** fontFaceReference)
fontFileIDWriteFontFile*in参照元のフォントファイルオブジェクト。
faceIndexDWORDinコレクションファイル内のフェイスインデックス(0始まり)。
fontSimulationsDWRITE_FONT_SIMULATIONSin適用するフォントシミュレーション(ボールド/斜体)を指定するフラグ。
fontFaceReferenceIDWriteFontFaceReference**out生成されたフォントフェイス参照を受け取るポインタ(出力)。
vtbl 34 HRESULT CreateFontFaceReference(LPWSTR filePath, FILETIME* lastWriteTime, DWORD faceIndex, DWRITE_FONT_SIMULATIONS fontSimulations, IDWriteFontFaceReference** fontFaceReference)
filePathLPWSTRin
lastWriteTimeFILETIME*inoptional
faceIndexDWORDinコレクションファイル内のフェイスインデックス(0始まり)。
fontSimulationsDWRITE_FONT_SIMULATIONSin適用するフォントシミュレーション(ボールド/斜体)を指定するフラグ。
fontFaceReferenceIDWriteFontFaceReference**out生成されたフォントフェイス参照を受け取るポインタ(出力)。
vtbl 35 HRESULT GetSystemFontSet(IDWriteFontSet** fontSet)

システムフォントの一覧を取得します。

fontSetIDWriteFontSet**out新しく作成されたフォントセットオブジェクト、または失敗した場合は NULL を保持します。

戻り値

型: HRESULT

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

vtbl 36 HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder** fontSetBuilder)

フォントフェイス参照を追加してカスタムフォントセットを作成するための、空のフォントセットビルダーを作成します。(IDWriteFactory3.CreateFontSetBuilder)

fontSetBuilderIDWriteFontSetBuilder**out新しく作成されたフォントセットビルダーオブジェクト、または失敗した場合は NULL を保持します。

戻り値

型: HRESULT

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

vtbl 37 HRESULT CreateFontCollectionFromFontSet(IDWriteFontSet* fontSet, IDWriteFontCollection1** fontCollection)

フォントの集合から、ウェイト/幅/傾きのツリーを作成します。

fontSetIDWriteFontSet*inコレクションの構築に使用するフォントの集合です。
fontCollectionIDWriteFontCollection1**out新しく作成されたフォントコレクションオブジェクト、または失敗した場合は NULL を保持します。

戻り値

型: HRESULT

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

vtbl 38 HRESULT GetSystemFontCollection(BOOL includeDownloadableFonts, IDWriteFontCollection1** fontCollection, BOOL checkForUpdates)

システムフォントのウェイト/幅/傾きのツリーを取得します。

includeDownloadableFontsBOOLinクラウドフォントを含めるか、ローカルにインストールされたフォントのみとするかを示します。
fontCollectionIDWriteFontCollection1**out新しく作成されたフォントコレクションオブジェクト、または失敗した場合は NULL を保持します。
checkForUpdatesBOOLinこのパラメーターが TRUE の場合、関数はシステムフォントの集合に対する変更を即座にチェックします。このパラメーターが FALSE の場合でも、フォントキャッシュサービスが実行中であれば変更は検出されますが、多少の遅延が生じることがあります。たとえば、アプリケーションがフォントをインストールした直後で、そのフォントがフォントコレクションに含まれていることを確実にしたい場合には TRUE を指定します。

戻り値

型: HRESULT

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

vtbl 39 HRESULT GetFontDownloadQueue(IDWriteFontDownloadQueue** fontDownloadQueue)

このファクトリオブジェクトに関連付けられたフォントダウンロードキューを取得します。

fontDownloadQueueIDWriteFontDownloadQueue**outフォントダウンロードキューインターフェイスへのポインターを受け取ります。

戻り値

型: HRESULT

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteFactory3 "{9A1B41C3-D3BB-466A-87FC-FE67556A3B65}"
#usecom global IDWriteFactory3 IID_IDWriteFactory3 "{}"
#comfunc global IDWriteFactory3_CreateGlyphRunAnalysis           31 var,var,int,int,int,int,float,float,sptr
#comfunc global IDWriteFactory3_CreateCustomRenderingParams      32 float,float,float,float,int,int,int,sptr
#comfunc global IDWriteFactory3_CreateFontFaceReference          33 sptr,int,int,sptr
#comfunc global IDWriteFactory3_CreateFontFaceReference          34 wstr,var,int,int,sptr
#comfunc global IDWriteFactory3_GetSystemFontSet                 35 sptr
#comfunc global IDWriteFactory3_CreateFontSetBuilder             36 sptr
#comfunc global IDWriteFactory3_CreateFontCollectionFromFontSet  37 sptr,sptr
#comfunc global IDWriteFactory3_GetSystemFontCollection          38 int,sptr,int
#comfunc global IDWriteFactory3_GetFontDownloadQueue             39 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。