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

IDWriteFontDownloadQueue

COM
IIDb71e6052-5aea-4fa3-832e-f60d431f7e91継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

リモートフォント、文字、グリフ、およびフォントフラグメントのダウンロード要求をキューに登録するインターフェイスです。

メソッド 6

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

vtbl 3 HRESULT AddListener(IDWriteFontDownloadListener* listener, DWORD* token)

ダウンロード通知を受け取る、クライアント定義のリスナーオブジェクトを登録します。登録されたすべてのリスナーの DownloadCompleted は、BeginDownload の完了後に呼び出されます。

listenerIDWriteFontDownloadListener*in追加するリスナーオブジェクトです。
tokenDWORD*outトークン値を受け取ります。呼び出し元は、この値を後で RemoveListener に渡す必要があります。

戻り値

型: HRESULT

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

解説(Remarks)

IDWriteFontDownloadListener は、キューにグローバルに登録するのではなく、context パラメーターを使用して BeginDownload に渡すこともできます。

vtbl 4 HRESULT RemoveListener(DWORD token)

AddListener を使用して以前に登録した通知ハンドラーの登録を解除します。

tokenDWORDinAddListener が以前に返したトークン値です。

戻り値

型: HRESULT

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

vtbl 5 BOOL IsEmpty()

ダウンロードキューが空かどうかを判定します。キューには、すでにダウンロード中の要求は含まれない点に注意してください。BeginDownload を呼び出すとキューはクリアされます。

戻り値

型: BOOL

キューが空の場合は TRUE、BeginDownload に対して保留中の要求がある場合は FALSE を返します。

vtbl 6 HRESULT BeginDownload(IUnknown* context)

非同期ダウンロード操作を開始します。ダウンロード操作は、完了するか、CancelDownload の呼び出しによってキャンセルされるまで、バックグラウンドで実行されます。

contextIUnknown*inoptional任意指定のコンテキストオブジェクトで、ダウンロード通知ハンドラーの
DownloadCompleted メソッドに渡されます。コンテキストオブジェクトが
IDWriteFontDownloadListener を実装している場合、完了時にその DownloadCompleted
が呼び出されます。

戻り値

型: HRESULT

ダウンロードが正常に開始された場合は S_OK、キューが空だった場合は S_FALSE、 または標準の HRESULT エラーコードを返します。

解説(Remarks)

BeginDownload はキューからすべてのダウンロード要求を削除し、それらを
バックグラウンドのダウンロード操作に転送します。BeginDownload が再度呼び出されたときに
以前のダウンロードがまだ進行中である場合、新しいダウンロードは
以前のダウンロードが完了するまで完了しません。

vtbl 7 HRESULT CancelDownload()

キューからすべてのダウンロード要求を削除し、実行中のダウンロード操作をキャンセルします。

戻り値

型: HRESULT

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

vtbl 8 ULONGLONG GetGenerationCount()

ダウンロードキューの現在の世代番号を取得します。この番号は、ダウンロードが失敗したか成功したかにかかわらず、完了するたびにインクリメントされます。このクッキー値をキャッシュされたデータと比較することで、そのデータが古いかどうかを判断できます。

戻り値

型: UINT64

ダウンロードキューの現在の世代番号です。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDWriteFontDownloadQueue "{B71E6052-5AEA-4FA3-832E-F60D431F7E91}"
#usecom global IDWriteFontDownloadQueue IID_IDWriteFontDownloadQueue "{}"
#comfunc global IDWriteFontDownloadQueue_AddListener         3 sptr,var
#comfunc global IDWriteFontDownloadQueue_RemoveListener      4 int
#comfunc global IDWriteFontDownloadQueue_IsEmpty             5
#comfunc global IDWriteFontDownloadQueue_BeginDownload       6 sptr
#comfunc global IDWriteFontDownloadQueue_CancelDownload      7
#comfunc global IDWriteFontDownloadQueue_GetGenerationCount  8
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。