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

IDWriteFactory5

COM
IID958db99a-be2a-4f09-af7d-65189803d1d3継承元IDWriteFactory4自前メソッド開始 vtbl43

公式ドキュメント

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

メソッド 5

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

vtbl 43 HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder1** fontSetBuilder)

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

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

戻り値

Type: HRESULT

このメソッドは、成功またはエラーを示す HRESULT を返します。

vtbl 44 HRESULT CreateInMemoryFontFileLoader(IDWriteInMemoryFontFileLoader** newLoader)

メモリ内フォントへのフォントファイル参照を作成するために使用できるローダーオブジェクトを作成します。ローダーの登録および登録解除は、呼び出し側が行う必要があります。

newLoaderIDWriteInMemoryFontFileLoader**out新しく作成されたローダーオブジェクトへのポインターを受け取ります。

戻り値

Type: HRESULT

このメソッドは、成功またはエラーを示す HRESULT を返します。

vtbl 45 HRESULT CreateHttpFontFileLoader(LPWSTR referrerUrl, LPWSTR extraHeaders, IDWriteRemoteFontFileLoader** newLoader)

HTTP または HTTPS の URL からフォントファイル参照を作成できるリモートフォントファイルローダーを作成します。ローダーの登録および登録解除は、呼び出し側が行う必要があります。

referrerUrlLPWSTRinoptionalHTTP リクエストに使用する参照元 (referrer) URL です。省略可能です。
extraHeadersLPWSTRinoptionalHTTP リクエストに含める追加のヘッダーフィールドです。省略可能です。各ヘッダーフィールドは、RFC 2616 で規定されているとおり、名前の後にコロン (":") とフィールド値を続けたもので構成されます。複数のヘッダーフィールドは改行で区切ることができます。
newLoaderIDWriteRemoteFontFileLoader**out新しく作成されたローダーオブジェクトへのポインターを受け取ります。

戻り値

Type: HRESULT

このメソッドは、成功またはエラーを示す HRESULT を返します。

vtbl 46 DWRITE_CONTAINER_TYPE AnalyzeContainerType(void* fileData, DWORD fileDataSize)

AnalyzeContainerType メソッドは、指定されたファイルデータを解析し、既知のフォントコンテナー形式 (WOFF や WOFF2 など) であるかどうかを判定します。

fileDatavoid*in解析対象のファイルデータへのポインターです。
fileDataSizeDWORDinfileData で渡すバッファーのサイズです。

戻り値

Type: DWRITE_CONTAINER_TYPE

認識できた場合はコンテナーの種類を返します。非圧縮のフォントファイルを含むその他すべてのファイルに対しては、DWRITE_CONTAINER_TYPE_UNKOWNN が返されます。

vtbl 47 HRESULT UnpackFontFile(DWRITE_CONTAINER_TYPE containerType, void* fileData, DWORD fileDataSize, IDWriteFontFileStream** unpackedFontStream)

UnpackFontFile メソッドは、コンテナーファイル (WOFF または WOFF2) からフォントデータを展開し、展開したフォントデータをフォントファイルストリームの形式で返します。

containerTypeDWRITE_CONTAINER_TYPEinAnalyzeContainerType が返したコンテナーの種類です。
fileDatavoid*in圧縮されたデータへのポインターです。
fileDataSizeDWORDin圧縮されたデータのサイズ (バイト単位) です。
unpackedFontStreamIDWriteFontFileStream**out非圧縮データを含む、新しく作成されたフォントファイルストリームへのポインターを受け取ります。

戻り値

Type: HRESULT

標準的な HRESULT エラーコードです。コンテナーの種類が DWRITE_CONTAINER_TYPE_UNKNOWN の場合、戻り値は E_INVALIDARG になります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteFactory5 "{958DB99A-BE2A-4F09-AF7D-65189803D1D3}"
#usecom global IDWriteFactory5 IID_IDWriteFactory5 "{}"
#comfunc global IDWriteFactory5_CreateFontSetBuilder          43 sptr
#comfunc global IDWriteFactory5_CreateInMemoryFontFileLoader  44 sptr
#comfunc global IDWriteFactory5_CreateHttpFontFileLoader      45 wstr,wstr,sptr
#comfunc global IDWriteFactory5_AnalyzeContainerType          46 sptr,int
#comfunc global IDWriteFactory5_UnpackFontFile                47 int,sptr,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。