ホーム › Globalization › IMLangFontLink2
IMLangFontLink2
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| hDC | HDC | in | 対象フォントが選択されているデバイスコンテキストのハンドル。 |
| hFont | HFONT | in | コードページ対応範囲を調べる対象フォントのハンドル。 |
| pdwCodePages | DWORD* | outoptional | そのフォントが表示可能なコードページの集合(ビットマスク)を受け取る出力ポインタ。 |
| hFont | HFONT | in | MapFontで生成し不要になったフォントのハンドル。 |
vtbl 9 HRESULT ResetFontMapping()
| hDC | HDC | in | フォント生成のベースとなるデバイスコンテキストのハンドル。 |
| dwCodePages | DWORD | in | 表示に必要なコードページの集合(ビットマスク)。 |
| chSrc | WCHAR | in | 表示対象となる文字。フォントリンク判定の手掛かりに用いる。 |
| pFont | HFONT* | outoptional | 指定文字を表示できる新たなフォントのハンドルを受け取る出力ポインタ。 |
vtbl 11 HRESULT GetFontUnicodeRanges(HDC hDC, DWORD* puiRanges, UNICODERANGE* pUranges)
| hDC | HDC | in | 対象フォントが選択されているデバイスコンテキストのハンドル。 |
| puiRanges | DWORD* | in | 入力時は配列要素数、出力時はUnicode範囲数を表す入出力ポインタ。 |
| pUranges | UNICODERANGE* | outoptional | フォントが対応するUnicode範囲(UNICODERANGE)配列を書き込む出力ポインタ。NULLで個数のみ取得。 |
vtbl 12 HRESULT GetScriptFontInfo(BYTE sid, DWORD dwFlags, DWORD* puiFonts, SCRIPTFONTINFO* pScriptFont)
| sid | BYTE | in | 対象とするスクリプトID(用字系識別子)。 |
| dwFlags | DWORD | in | 取得動作を制御するフラグ(SCRIPTCONTF)。 |
| puiFonts | DWORD* | inout | 入力時は配列要素数、出力時はフォント情報数を表す入出力ポインタ。 |
| pScriptFont | SCRIPTFONTINFO* | outoptional | スクリプト用フォント情報(SCRIPTFONTINFO)配列を書き込む出力ポインタ。NULLで個数のみ取得。 |
| uiCodePage | DWORD | in | 変換元のコードページ番号。 |
| pSid | BYTE* | 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 指定が可能。#define global IID_IMLangFontLink2 "{DCCFC162-2B38-11D2-B7EC-00C04F8F5D9A}" #usecom global IMLangFontLink2 IID_IMLangFontLink2 "{}" #comfunc global IMLangFontLink2_GetFontCodePages 7 sptr,sptr,sptr #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,sptr,sptr #comfunc global IMLangFontLink2_GetScriptFontInfo 12 int,int,sptr,sptr #comfunc global IMLangFontLink2_CodePageToScriptID 13 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。