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

IDWriteFontFile

COM
IID739d886a-cef5-47dc-8769-1a8b41bebbb0継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

フォントファイルを表します。フォントマネージャーやフォントビューアーなどのアプリケーションは、IDWriteFontFile::Analyze を呼び出すことで、特定のファイルがフォントファイルであるかどうか、およびそれがフォントシステムでサポートされているフォントタイプであるかどうかを確認できます。

メソッド 3

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

vtbl 3 HRESULT GetReferenceKey(void** fontFileReferenceKey, DWORD* fontFileReferenceKeySize)

フォントファイルの参照キーへのポインターを取得します。返されるポインターは、フォントファイルオブジェクトが解放されるまで有効です。

fontFileReferenceKeyvoid**outこのメソッドが返されると、フォントファイル参照キーへのポインターのアドレスが格納されます。このポインター値は、取得元のフォントファイルオブジェクトが解放されるまでの間のみ有効であることに注意してください。このパラメーターは初期化されずに渡されます。
fontFileReferenceKeySizeDWORD*outこのメソッドが返されると、フォントファイル参照キーのサイズ(バイト単位)が格納されます。このパラメーターは初期化されずに渡されます。

戻り値

Type: HRESULT

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

vtbl 4 HRESULT GetLoader(IDWriteFontFileLoader** fontFileLoader)

フォントファイルオブジェクトに関連付けられたファイルローダーを取得します。

fontFileLoaderIDWriteFontFileLoader**outこのメソッドが返されると、フォントファイルオブジェクトに関連付けられたフォントファイルローダーへのポインターのアドレスが格納されます。

戻り値

Type: HRESULT

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

vtbl 5 HRESULT Analyze(BOOL* isSupportedFontType, DWRITE_FONT_FILE_TYPE* fontFileType, DWRITE_FONT_FACE_TYPE* fontFaceType, DWORD* numberOfFaces)

ファイルを解析し、それがフォントを表すかどうか、およびそのフォントタイプがフォントシステムでサポートされているかどうかを返します。

isSupportedFontTypeBOOL*outフォントタイプがフォントシステムでサポートされている場合は TRUE、そうでない場合は FALSE です。
fontFileTypeDWRITE_FONT_FILE_TYPE*outこのメソッドが返されると、フォントファイルのタイプを示す値が格納されます。 isSupportedFontTypeFALSE であっても、 fontFileType の値が DWRITE_FONT_FILE_TYPE_UNKNOWN とは異なる場合があることに注意してください。
fontFaceTypeDWRITE_FONT_FACE_TYPE*outoptionalこのメソッドが返されると、フォントフェイスのタイプを示す値が格納されます。fontFileTypeDWRITE_FONT_FILE_TYPE_UNKNOWN と等しくない場合、フォントファイルからフォントフェイスを構築できます。
numberOfFacesDWORD*outこのメソッドが返されると、フォントファイルに含まれるフォントフェイスの数が格納されます。

戻り値

Type: HRESULT

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

解説(Remarks)

重要 一部のフォントファイルタイプは認識されますが、フォントシステムではサポートされません。 たとえば、フォントシステムはファイルを Type 1 フォントファイルとして認識しますが、 そこからフォントフェイスオブジェクトを構築することはできません。このような場合、AnalyzeisSupportedFontType 出力パラメーターを FALSE に設定します。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteFontFile "{739D886A-CEF5-47DC-8769-1A8B41BEBBB0}"
#usecom global IDWriteFontFile IID_IDWriteFontFile "{}"
#comfunc global IDWriteFontFile_GetReferenceKey  3 sptr,var
#comfunc global IDWriteFontFile_GetLoader        4 sptr
#comfunc global IDWriteFontFile_Analyze          5 var,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。