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

IDWriteGdiInterop1

COM
IID4556be70-3abd-4f70-90be-421780a6f515継承元IDWriteGdiInterop自前メソッド開始 vtbl8

公式ドキュメント

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)

logFontLOGFONTW*inGDI 互換のフォント記述を含む構造体です。
fontCollectionIDWriteFontCollection*inoptional検索対象のフォントコレクションです。NULL の場合は、ローカルシステムのフォントコレクションが使用されます。
fontIDWriteFont**out成功した場合は、新しく作成されたフォントオブジェクトを受け取ります。エラーの場合は NULL を受け取ります。

戻り値

Type: HRESULT

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

vtbl 9 HRESULT GetFontSignature(IDWriteFontFace* fontFace, FONTSIGNATURE* fontSignature)
fontFaceIDWriteFontFace*in
fontSignatureFONTSIGNATURE*outフォントの対応コードページ・Unicodeレンジを表すFONTSIGNATUREを受け取る出力先である。
vtbl 10 HRESULT GetFontSignature(IDWriteFont* font, FONTSIGNATURE* fontSignature)
fontIDWriteFont*in署名を取得する対象のIDWriteFontオブジェクトである。
fontSignatureFONTSIGNATURE*outフォントの対応コードページ・Unicodeレンジを表すFONTSIGNATUREを受け取る出力先である。
vtbl 11 HRESULT GetMatchingFontsByLOGFONT(LOGFONTA* logFont, IDWriteFontSet* fontSet, IDWriteFontSet** filteredSet)

指定された LOGFONT の値に基づいて、一致するフォントのリストを取得します。そのファミリー名のフォントのみが返されます。

logFontLOGFONTA*inGDI 互換のフォント記述を含む構造体です。
fontSetIDWriteFontSet*in検索対象のフォントセットです。
filteredSetIDWriteFontSet**out>成功した場合は、フィルタリングされたフォントセットを受け取ります。

戻り値

Type: 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_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 指定が可能。