Win32 API 日本語リファレンス
ホームSystem.Ole › IFontDisp

IFontDisp

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDbef6e003-a874-101a-8bba-00aa00300cab継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

フォントオブジェクトのプロパティをオートメーション経由で公開します。IFont のメソッドのサブセットを提供します。

解説(Remarks)

次の表は、各種フォントプロパティの dispID を示しています。

定数
DISPID_FONT_NAME 0
DISPID_FONT_SIZE 2
DISPID_FONT_BOLD 3
DISPID_FONT_ITALIC 4
DISPID_FONT_UNDER 5
DISPID_FONT_STRIKE 6
DISPID_FONT_WEIGHT 7
DISPID_FONT_CHARSET 8

IFontDisp インターフェイスの各プロパティには、そのプロパティが読み取りアクセスをサポートする場合は get_PropertyName メソッドが、書き込みアクセスをサポートする場合は put_PropertyName メソッドが含まれます。これらのプロパティは読み取りと書き込みの両方のアクセスをサポートします。

プロパティ アクセス 説明
Name BSTR RW フォントのフェイス名 (例: Arial)。
Size CY RW フォントのポイントサイズ。小数点以下を含むポイントサイズに対応するため CY 型で表されます。
Bold BOOL RW フォントが太字であるかどうかを示します。
Italic BOOL RW フォントが斜体であるかどうかを示します。
Underline BOOL RW フォントに下線が引かれているかどうかを示します。
Strikethrough BOOL RW フォントに取り消し線が引かれているかどうかを示します。
Weight short RW フォントの太さ。
Charset short RW フォントで使用される文字セット (ANSI_CHARSETDEFAULT_CHARSETSYMBOL_CHARSET など)。

OLE の実装

システムは、基盤となるシステムのフォントサポートの上に構築された IFontDisp インターフェイスを備えたフォントオブジェクトの標準実装を提供します。フォントオブジェクトは OleCreateFontIndirect 関数によって作成されます。フォントオブジェクトは、インターフェイス IFont を通じて多数の読み取り/書き込みプロパティとメソッドのセットをサポートし、また IDispatch から派生したディスパッチインターフェイス IFontDisp を通じて (メソッドは除き) 同じプロパティのセットをサポートすることで、オートメーション経由でフォントのプロパティへのアクセスを提供します。フォントオブジェクトのシステム実装は、両方のインターフェイスを提供します。

メソッド 0

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IFontDisp "{BEF6E003-A874-101A-8BBA-00AA00300CAB}"
#usecom global IFontDisp IID_IFontDisp "{}"
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。