IDWriteFontCollection3
COM公式ドキュメント
このインターフェイスは、システムにインストールされているフォントのセットや、特定のディレクトリにあるフォントのセットなど、フォントの集合をカプセル化します。フォントコレクション API を使用すると、利用可能なフォントファミリーおよびフォントを検出したり、フォントに関するメタデータを取得したりできます。(IDWriteFontCollection3)
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
フォントセットの有効期限イベントが存在する場合、それを取得します。有効期限イベントは、フォントのインストール、アンインストール、または更新によってシステムフォントセットオブジェクトが古くなった場合に、そのオブジェクトに対して設定されます。(IDWriteFontCollection3::GetExpirationEvent)
戻り値
型: HANDLE
システムフォントセットに対して呼び出した場合はイベントハンドル、カスタムフォントセットに対して呼び出した場合は nullptr。
解説(Remarks)
返されたイベントハンドルに対して CloseHandle を呼び出してはいけません。このハンドルはフォントセットオブジェクトが所有しており、フォントセットへの参照を保持している限り有効なままです。返されたイベントを待機することも、RegisterWaitForSingleObject を使用してイベントが設定されたときにコールバックを要求することもできます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDWriteFontCollection3 "{A4D055A6-F9E3-4E25-93B7-9E309F3AF8E9}"
#usecom global IDWriteFontCollection3 IID_IDWriteFontCollection3 "{}"
#comfunc global IDWriteFontCollection3_GetExpirationEvent 13
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。