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

IDWriteRemoteFontFileLoader

COM
IID68648c83-6ede-46c0-ab46-20083a887fde継承元IDWriteFontFileLoader自前メソッド開始 vtbl4

公式ドキュメント

リモート(すなわちダウンロード可能な)フォントにアクセスできるフォントファイルローダーを表します。

メソッド 3

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

vtbl 4 HRESULT CreateRemoteStreamFromKey(void* fontFileReferenceKey, DWORD fontFileReferenceKeySize, IDWriteRemoteFontFileStream** fontFileStream)

開いているファイルリソースをカプセル化し、リモートファイルのデータをダウンロードするために使用できるリモートフォントファイルストリームオブジェクトを作成します。

fontFileReferenceKeyvoid*in使用しているフォントローダーのスコープ内でフォントファイルリソースを一意に識別するフォントファイル参照キーです。
fontFileReferenceKeySizeDWORDinフォントファイル参照キーのサイズ(バイト単位)です。
fontFileStreamIDWriteRemoteFontFileStream**out新しく作成されたフォントファイルストリームへのポインターです。

戻り値

型: HRESULT

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

解説(Remarks)

CreateStreamFromKey とは異なり、このメソッドはリモートファイル用のストリームを作成するために使用できます。 ファイルがリモートの場合、ストリームを使用してファイルサイズを取得したりデータにアクセスしたりする前に、クライアントは空のファイルフラグメント配列を指定して IDWriteRemoteFontFileStream::BeginDownload を呼び出す必要があります。

vtbl 5 HRESULT GetLocalityFromKey(void* fontFileReferenceKey, DWORD fontFileReferenceKeySize, DWRITE_LOCALITY* locality)

一意のキーで識別されるファイルリソースのロカリティを取得します。

fontFileReferenceKeyvoid*in使用しているフォントローダーのスコープ内でフォントファイルリソースを一意に識別するフォントファイル参照キーです。
fontFileReferenceKeySizeDWORDinフォントファイル参照キーのサイズ(バイト単位)です。
localityDWRITE_LOCALITY*outファイルのロカリティです。

戻り値

型: HRESULT

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

vtbl 6 HRESULT CreateFontFileReferenceFromUrl(IDWriteFactory* factory, LPWSTR baseUrl, LPWSTR fontFileUrl, IDWriteFontFile** fontFile)

ローダーがこの機能をサポートしている場合、URL からフォントファイル参照を作成します。

factoryIDWriteFactory*inフォントファイル参照の作成に使用する Factory です。
baseUrlLPWSTRinoptional省略可能なベース URL です。ベース URL は、fontFileUrl が相対 URL の場合にそれを解決するために使用されます。たとえば、baseUrl は fontFileUrl を含んでいた参照元ドキュメントの URL などになります。
fontFileUrlLPWSTRinフォントリソースの URL です。
fontFileIDWriteFontFile**out新しく作成されたフォントファイル参照へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

baseUrl が空でない文字列の場合、baseUrl と fontFileUrl を連結したものが有効な URL を形成する必要があります。DirectWrite は追加の区切り文字を補いません。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteRemoteFontFileLoader "{68648C83-6EDE-46C0-AB46-20083A887FDE}"
#usecom global IDWriteRemoteFontFileLoader IID_IDWriteRemoteFontFileLoader "{}"
#comfunc global IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey       4 sptr,int,sptr
#comfunc global IDWriteRemoteFontFileLoader_GetLocalityFromKey              5 sptr,int,var
#comfunc global IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl  6 sptr,wstr,wstr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。