ホーム › Graphics.DirectWrite › IDWriteGdiInterop1
IDWriteGdiInterop1
COM公式ドキュメント
GDI との相互運用性を提供します。たとえば、フォントフェイスを LOGFONT 構造体に変換するメソッドや、GDI のフォント記述をフォントフェイスに変換するメソッドなどがあります。また、ビットマップのレンダーターゲットオブジェクトの作成にも使用されます。(IDWriteGdiInterop1)
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 8 HRESULT CreateFontFromLOGFONT(LOGFONTW* logFont, IDWriteFontCollection* fontCollection, IDWriteFont** font)
LOGFONT 構造体で指定されたプロパティに一致するフォントオブジェクトを作成します。(IDWriteGdiInterop1.CreateFontFromLOGFONT)
| logFont | LOGFONTW* | in | GDI 互換のフォント記述を含む構造体です。 |
| fontCollection | IDWriteFontCollection* | inoptional | 検索対象のフォントコレクションです。NULL の場合は、ローカルシステムのフォントコレクションが使用されます。 |
| font | IDWriteFont** | out | 成功した場合は、新しく作成されたフォントオブジェクトを受け取ります。エラーの場合は NULL を受け取ります。 |
戻り値
vtbl 9 HRESULT GetFontSignature(IDWriteFontFace* fontFace, FONTSIGNATURE* fontSignature)
| fontFace | IDWriteFontFace* | in | |
| fontSignature | FONTSIGNATURE* | out | フォントの対応コードページ・Unicodeレンジを表すFONTSIGNATUREを受け取る出力先である。 |
vtbl 10 HRESULT GetFontSignature(IDWriteFont* font, FONTSIGNATURE* fontSignature)
| font | IDWriteFont* | in | 署名を取得する対象のIDWriteFontオブジェクトである。 |
| fontSignature | FONTSIGNATURE* | out | フォントの対応コードページ・Unicodeレンジを表すFONTSIGNATUREを受け取る出力先である。 |
vtbl 11 HRESULT GetMatchingFontsByLOGFONT(LOGFONTA* logFont, IDWriteFontSet* fontSet, IDWriteFontSet** filteredSet)
指定された LOGFONT の値に基づいて、一致するフォントのリストを取得します。そのファミリー名のフォントのみが返されます。
| logFont | LOGFONTA* | in | GDI 互換のフォント記述を含む構造体です。 |
| fontSet | IDWriteFontSet* | in | 検索対象のフォントセットです。 |
| filteredSet | IDWriteFontSet** | out | >成功した場合は、フィルタリングされたフォントセットを受け取ります。 |
戻り値
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDWriteGdiInterop1 "{4556BE70-3ABD-4F70-90BE-421780A6F515}" #usecom global IDWriteGdiInterop1 IID_IDWriteGdiInterop1 "{}" #comfunc global IDWriteGdiInterop1_CreateFontFromLOGFONT 8 var,sptr,sptr #comfunc global IDWriteGdiInterop1_GetFontSignature 9 sptr,var #comfunc global IDWriteGdiInterop1_GetFontSignature 10 sptr,var #comfunc global IDWriteGdiInterop1_GetMatchingFontsByLOGFONT 11 var,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteGdiInterop1 "{4556BE70-3ABD-4F70-90BE-421780A6F515}" #usecom global IDWriteGdiInterop1 IID_IDWriteGdiInterop1 "{}" #comfunc global IDWriteGdiInterop1_CreateFontFromLOGFONT 8 sptr,sptr,sptr #comfunc global IDWriteGdiInterop1_GetFontSignature 9 sptr,sptr #comfunc global IDWriteGdiInterop1_GetFontSignature 10 sptr,sptr #comfunc global IDWriteGdiInterop1_GetMatchingFontsByLOGFONT 11 sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。