Win32 API 日本語リファレンス
ホームGlobalization › IMLangFontLink2

IMLangFontLink2

COM
IIDdccfc162-2b38-11d2-b7ec-00c04f8f5d9a継承元IMLangCodePages自前メソッド開始 vtbl7

メソッド 7

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

vtbl 7 HRESULT GetFontCodePages(HDC hDC, HFONT hFont, DWORD* pdwCodePages)
hDCHDCin対象フォントが選択されているデバイスコンテキストのハンドル。
hFontHFONTinコードページ対応範囲を調べる対象フォントのハンドル。
pdwCodePagesDWORD*outoptionalそのフォントが表示可能なコードページの集合(ビットマスク)を受け取る出力ポインタ。
vtbl 8 HRESULT ReleaseFont(HFONT hFont)
hFontHFONTinMapFontで生成し不要になったフォントのハンドル。
vtbl 9 HRESULT ResetFontMapping()
vtbl 10 HRESULT MapFont(HDC hDC, DWORD dwCodePages, WCHAR chSrc, HFONT* pFont)
hDCHDCinフォント生成のベースとなるデバイスコンテキストのハンドル。
dwCodePagesDWORDin表示に必要なコードページの集合(ビットマスク)。
chSrcWCHARin表示対象となる文字。フォントリンク判定の手掛かりに用いる。
pFontHFONT*outoptional指定文字を表示できる新たなフォントのハンドルを受け取る出力ポインタ。
vtbl 11 HRESULT GetFontUnicodeRanges(HDC hDC, DWORD* puiRanges, UNICODERANGE* pUranges)
hDCHDCin対象フォントが選択されているデバイスコンテキストのハンドル。
puiRangesDWORD*in入力時は配列要素数、出力時はUnicode範囲数を表す入出力ポインタ。
pUrangesUNICODERANGE*outoptionalフォントが対応するUnicode範囲(UNICODERANGE)配列を書き込む出力ポインタ。NULLで個数のみ取得。
vtbl 12 HRESULT GetScriptFontInfo(BYTE sid, DWORD dwFlags, DWORD* puiFonts, SCRIPTFONTINFO* pScriptFont)
sidBYTEin対象とするスクリプトID(用字系識別子)。
dwFlagsDWORDin取得動作を制御するフラグ(SCRIPTCONTF)。
puiFontsDWORD*inout入力時は配列要素数、出力時はフォント情報数を表す入出力ポインタ。
pScriptFontSCRIPTFONTINFO*outoptionalスクリプト用フォント情報(SCRIPTFONTINFO)配列を書き込む出力ポインタ。NULLで個数のみ取得。
vtbl 13 HRESULT CodePageToScriptID(DWORD uiCodePage, BYTE* pSid)
uiCodePageDWORDin変換元のコードページ番号。
pSidBYTE*out対応するスクリプトID(用字系識別子)を受け取る出力ポインタ。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IMLangFontLink2 "{DCCFC162-2B38-11D2-B7EC-00C04F8F5D9A}"
#usecom global IMLangFontLink2 IID_IMLangFontLink2 "{}"
#comfunc global IMLangFontLink2_GetFontCodePages      7 sptr,sptr,var
#comfunc global IMLangFontLink2_ReleaseFont           8 sptr
#comfunc global IMLangFontLink2_ResetFontMapping      9
#comfunc global IMLangFontLink2_MapFont               10 sptr,int,int,sptr
#comfunc global IMLangFontLink2_GetFontUnicodeRanges  11 sptr,var,var
#comfunc global IMLangFontLink2_GetScriptFontInfo     12 int,int,var,var
#comfunc global IMLangFontLink2_CodePageToScriptID    13 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。