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

IMultiLanguage2

COM
IIDdccfc164-2b38-11d2-b7ec-00c04f8f5d9a継承元IUnknown自前メソッド開始 vtbl3

メソッド 27

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

vtbl 3 HRESULT GetNumberOfCodePageInfo(DWORD* pcCodePage)
pcCodePageDWORD*out利用可能なコードページ情報の総数を受け取る出力ポインタ。
vtbl 4 HRESULT GetCodePageInfo(DWORD uiCodePage, WORD LangId, MIMECPINFO* pCodePageInfo)
uiCodePageDWORDin情報を取得したいコードページ番号。
LangIdWORDin説明文等のローカライズに用いる言語ID(LANGID)。
pCodePageInfoMIMECPINFO*out取得したコードページ詳細情報(MIMECPINFO)を書き込む出力構造体ポインタ。
vtbl 5 HRESULT GetFamilyCodePage(DWORD uiCodePage, DWORD* puiFamilyCodePage)
uiCodePageDWORDin対象とするコードページ番号。
puiFamilyCodePageDWORD*outそのコードページが属するファミリ(代表)コードページ番号を受け取る出力ポインタ。
vtbl 6 HRESULT EnumCodePages(DWORD grfFlags, WORD LangId, IEnumCodePage** ppEnumCodePage)
grfFlagsDWORDin列挙対象を絞り込むコンテンツ種別フラグ(MIMECONTF)。
LangIdWORDinローカライズに用いる言語ID(LANGID)。
ppEnumCodePageIEnumCodePage**outコードページを列挙するIEnumCodePageを受け取る出力ポインタ。
vtbl 7 HRESULT GetCharsetInfo(LPWSTR Charset, MIMECSETINFO* pCharsetInfo)
CharsetLPWSTRin情報を取得したい文字セット名(例: utf-8)。
pCharsetInfoMIMECSETINFO*out取得した文字セット情報(MIMECSETINFO)を書き込む出力構造体ポインタ。
vtbl 8 HRESULT IsConvertible(DWORD dwSrcEncoding, DWORD dwDstEncoding)
dwSrcEncodingDWORDin変換元エンコーディングのコードページ番号。
dwDstEncodingDWORDin変換先エンコーディングのコードページ番号。変換可能ならS_OKが返る。
vtbl 9 HRESULT ConvertString(DWORD* pdwMode, DWORD dwSrcEncoding, DWORD dwDstEncoding, BYTE* pSrcStr, DWORD* pcSrcSize, BYTE* pDstStr, DWORD* pcDstSize)
pdwModeDWORD*inoutoptional複数回呼び出しにわたる変換状態を保持する入出力ポインタ。初回は0を指す。
dwSrcEncodingDWORDin変換元エンコーディングのコードページ番号。
dwDstEncodingDWORDin変換先エンコーディングのコードページ番号。
pSrcStrBYTE*inoptional変換元のバイト列バッファ。
pcSrcSizeDWORD*inoutoptional入力時は変換元バイト数、出力時は消費バイト数を表す入出力ポインタ。
pDstStrBYTE*outoptional変換結果を書き込む出力バイトバッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファ容量、出力時は書き込んだバイト数を表す入出力ポインタ。
vtbl 10 HRESULT ConvertStringToUnicode(DWORD* pdwMode, DWORD dwEncoding, LPSTR pSrcStr, DWORD* pcSrcSize, LPWSTR pDstStr, DWORD* pcDstSize)
pdwModeDWORD*inoutoptional変換状態を保持する入出力ポインタ。初回は0を指す。
dwEncodingDWORDin変換元のエンコーディング(コードページ)番号。
pSrcStrLPSTRinoptional変換元のマルチバイト文字列。
pcSrcSizeDWORD*inoutoptional入力時は変換元バイト数、出力時は消費バイト数を表す入出力ポインタ。
pDstStrLPWSTRoutoptional変換結果のUnicode文字列を書き込む出力バッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファ文字数容量、出力時は書き込んだ文字数を表す入出力ポインタ。
vtbl 11 HRESULT ConvertStringFromUnicode(DWORD* pdwMode, DWORD dwEncoding, LPWSTR pSrcStr, DWORD* pcSrcSize, LPSTR pDstStr, DWORD* pcDstSize)
pdwModeDWORD*inoutoptional変換状態を保持する入出力ポインタ。初回は0を指す。
dwEncodingDWORDin変換先のエンコーディング(コードページ)番号。
pSrcStrLPWSTRinoptional変換元のUnicode文字列。
pcSrcSizeDWORD*inoutoptional入力時は変換元文字数、出力時は消費文字数を表す入出力ポインタ。
pDstStrLPSTRoutoptional変換結果のマルチバイト文字列を書き込む出力バッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファバイト数容量、出力時は書き込んだバイト数を表す入出力ポインタ。
vtbl 12 HRESULT ConvertStringReset()
vtbl 13 HRESULT GetRfc1766FromLcid(DWORD Locale, LPWSTR* pbstrRfc1766)
LocaleDWORDin変換元のロケール識別子(LCID)。
pbstrRfc1766LPWSTR*out対応するRFC1766言語タグ文字列を受け取る出力ポインタ。
vtbl 14 HRESULT GetLcidFromRfc1766(DWORD* pLocale, LPWSTR bstrRfc1766)
pLocaleDWORD*out変換結果のロケール識別子(LCID)を受け取る出力ポインタ。
bstrRfc1766LPWSTRin変換元のRFC1766言語タグ文字列。
vtbl 15 HRESULT EnumRfc1766(WORD LangId, IEnumRfc1766** ppEnumRfc1766)
LangIdWORDinローカライズに用いる言語ID(LANGID)。
ppEnumRfc1766IEnumRfc1766**out利用可能なRFC1766言語情報を列挙するIEnumRfc1766を受け取る出力ポインタ。
vtbl 16 HRESULT GetRfc1766Info(DWORD Locale, WORD LangId, RFC1766INFO* pRfc1766Info)
LocaleDWORDin情報を取得したいロケール識別子(LCID)。
LangIdWORDin説明文のローカライズに用いる言語ID(LANGID)。
pRfc1766InfoRFC1766INFO*out取得したRFC1766言語情報(RFC1766INFO)を書き込む出力構造体ポインタ。
vtbl 17 HRESULT CreateConvertCharset(DWORD uiSrcCodePage, DWORD uiDstCodePage, DWORD dwProperty, IMLangConvertCharset** ppMLangConvertCharset)
uiSrcCodePageDWORDin生成する変換器の変換元コードページ番号。
uiDstCodePageDWORDin生成する変換器の変換先コードページ番号。
dwPropertyDWORDin変換動作を制御するプロパティフラグ。
ppMLangConvertCharsetIMLangConvertCharset**out生成された文字コード変換器IMLangConvertCharsetを受け取る出力ポインタ。
vtbl 18 HRESULT ConvertStringInIStream(DWORD* pdwMode, DWORD dwFlag, LPWSTR lpFallBack, DWORD dwSrcEncoding, DWORD dwDstEncoding, IStream* pstmIn, IStream* pstmOut)
pdwModeDWORD*inoutoptional変換状態を保持する入出力ポインタ。初回は0を指す。
dwFlagDWORDin変換動作を制御するフラグ(MLCONVCHARF)。
lpFallBackLPWSTRinoptional変換不能文字に用いる代替(フォールバック)文字列。NULL可。
dwSrcEncodingDWORDin変換元エンコーディングのコードページ番号。
dwDstEncodingDWORDin変換先エンコーディングのコードページ番号。
pstmInIStream*in変換元データを読み出す入力ストリームへのポインタ。
pstmOutIStream*in変換結果を書き込む出力ストリームへのポインタ。
vtbl 19 HRESULT ConvertStringToUnicodeEx(DWORD* pdwMode, DWORD dwEncoding, LPSTR pSrcStr, DWORD* pcSrcSize, LPWSTR pDstStr, DWORD* pcDstSize, DWORD dwFlag, LPWSTR lpFallBack)
pdwModeDWORD*inoutoptional変換状態を保持する入出力ポインタ。初回は0を指す。
dwEncodingDWORDin変換元のエンコーディング(コードページ)番号。
pSrcStrLPSTRin変換元のマルチバイト文字列。
pcSrcSizeDWORD*inoutoptional入力時は変換元バイト数、出力時は消費バイト数を表す入出力ポインタ。
pDstStrLPWSTRout変換結果のUnicode文字列を書き込む出力バッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファ文字数容量、出力時は書き込んだ文字数を表す入出力ポインタ。
dwFlagDWORDin変換動作を制御する追加フラグ(MLCONVCHARF)。
lpFallBackLPWSTRinoptional変換不能文字に用いる代替文字列。NULL可。
vtbl 20 HRESULT ConvertStringFromUnicodeEx(DWORD* pdwMode, DWORD dwEncoding, LPWSTR pSrcStr, DWORD* pcSrcSize, LPSTR pDstStr, DWORD* pcDstSize, DWORD dwFlag, LPWSTR lpFallBack)
pdwModeDWORD*inoutoptional変換状態を保持する入出力ポインタ。初回は0を指す。
dwEncodingDWORDin変換先のエンコーディング(コードページ)番号。
pSrcStrLPWSTRin変換元のUnicode文字列。
pcSrcSizeDWORD*inoutoptional入力時は変換元文字数、出力時は消費文字数を表す入出力ポインタ。
pDstStrLPSTRout変換結果のマルチバイト文字列を書き込む出力バッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファバイト数容量、出力時は書き込んだバイト数を表す入出力ポインタ。
dwFlagDWORDin変換動作を制御する追加フラグ(MLCONVCHARF)。
lpFallBackLPWSTRinoptional変換不能文字に用いる代替文字列。NULL可。
vtbl 21 HRESULT DetectCodepageInIStream(DWORD dwFlag, DWORD dwPrefWinCodePage, IStream* pstmIn, DetectEncodingInfo* lpEncoding, INT* pnScores)
dwFlagDWORDin検出動作を制御するフラグ(MLDETECTCP)。
dwPrefWinCodePageDWORDin推定時に優先したいWindowsコードページ番号。
pstmInIStream*in判定対象データを読み出す入力ストリームへのポインタ。
lpEncodingDetectEncodingInfo*out検出されたエンコーディング情報(DetectEncodingInfo)配列を書き込む出力ポインタ。
pnScoresINT*inout入力時は配列要素数、出力時は検出結果数を表す入出力ポインタ。
vtbl 22 HRESULT DetectInputCodepage(DWORD dwFlag, DWORD dwPrefWinCodePage, LPSTR pSrcStr, INT* pcSrcSize, DetectEncodingInfo* lpEncoding, INT* pnScores)
dwFlagDWORDin検出動作を制御するフラグ(MLDETECTCP)。
dwPrefWinCodePageDWORDin推定時に優先したいWindowsコードページ番号。
pSrcStrLPSTRin判定対象の入力文字列(バイト列)。
pcSrcSizeINT*inout入力時は判定対象のバイト数、出力時は実際に判定したバイト数を表す入出力ポインタ。
lpEncodingDetectEncodingInfo*out検出されたエンコーディング情報(DetectEncodingInfo)配列を書き込む出力ポインタ。
pnScoresINT*inout入力時は配列要素数、出力時は検出結果数を表す入出力ポインタ。
vtbl 23 HRESULT ValidateCodePage(DWORD uiCodePage, HWND hwnd)
uiCodePageDWORDin有効性を確認したいコードページ番号。
hwndHWNDinインストール案内ダイアログ等の親となるウィンドウハンドル。NULL可。
vtbl 24 HRESULT GetCodePageDescription(DWORD uiCodePage, DWORD lcid, LPWSTR lpWideCharStr, INT cchWideChar)
uiCodePageDWORDin説明を取得したいコードページ番号。
lcidDWORDin説明文のローカライズに用いるロケール識別子(LCID)。
lpWideCharStrLPWSTRout説明文(Unicode)を書き込む出力バッファ。
cchWideCharINTin出力バッファの容量(文字数)。
vtbl 25 HRESULT IsCodePageInstallable(DWORD uiCodePage)
uiCodePageDWORDinインストール可能かどうかを判定したいコードページ番号。可能ならS_OKが返る。
vtbl 26 HRESULT SetMimeDBSource(MIMECONTF dwSource)
dwSourceMIMECONTFin参照するMIMEデータベースのソース種別(MIMECONTF)。
vtbl 27 HRESULT GetNumberOfScripts(DWORD* pnScripts)
pnScriptsDWORD*out利用可能なスクリプト(用字系)の総数を受け取る出力ポインタ。
vtbl 28 HRESULT EnumScripts(DWORD dwFlags, WORD LangId, IEnumScript** ppEnumScript)
dwFlagsDWORDin列挙対象を絞り込むフラグ(SCRIPTCONTF)。
LangIdWORDinローカライズに用いる言語ID(LANGID)。
ppEnumScriptIEnumScript**outスクリプト情報を列挙するIEnumScriptを受け取る出力ポインタ。
vtbl 29 HRESULT ValidateCodePageEx(DWORD uiCodePage, HWND hwnd, DWORD dwfIODControl)
uiCodePageDWORDin有効性を確認したいコードページ番号。
hwndHWNDinインストール案内ダイアログ等の親となるウィンドウハンドル。NULL可。
dwfIODControlDWORDinダイアログ表示やインストール動作を制御するフラグ(VALIDATECPF)。

HSP用 COM定義

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

出力引数:
#define global IID_IMultiLanguage2 "{DCCFC164-2B38-11D2-B7EC-00C04F8F5D9A}"
#usecom global IMultiLanguage2 IID_IMultiLanguage2 "{}"
#comfunc global IMultiLanguage2_GetNumberOfCodePageInfo     3 var
#comfunc global IMultiLanguage2_GetCodePageInfo             4 int,int,var
#comfunc global IMultiLanguage2_GetFamilyCodePage           5 int,var
#comfunc global IMultiLanguage2_EnumCodePages               6 int,int,sptr
#comfunc global IMultiLanguage2_GetCharsetInfo              7 wstr,var
#comfunc global IMultiLanguage2_IsConvertible               8 int,int
#comfunc global IMultiLanguage2_ConvertString               9 var,int,int,var,var,var,var
#comfunc global IMultiLanguage2_ConvertStringToUnicode      10 var,int,str,var,var,var
#comfunc global IMultiLanguage2_ConvertStringFromUnicode    11 var,int,wstr,var,var,var
#comfunc global IMultiLanguage2_ConvertStringReset          12
#comfunc global IMultiLanguage2_GetRfc1766FromLcid          13 int,var
#comfunc global IMultiLanguage2_GetLcidFromRfc1766          14 var,wstr
#comfunc global IMultiLanguage2_EnumRfc1766                 15 int,sptr
#comfunc global IMultiLanguage2_GetRfc1766Info              16 int,int,var
#comfunc global IMultiLanguage2_CreateConvertCharset        17 int,int,int,sptr
#comfunc global IMultiLanguage2_ConvertStringInIStream      18 var,int,wstr,int,int,sptr,sptr
#comfunc global IMultiLanguage2_ConvertStringToUnicodeEx    19 var,int,str,var,var,var,int,wstr
#comfunc global IMultiLanguage2_ConvertStringFromUnicodeEx  20 var,int,wstr,var,var,var,int,wstr
#comfunc global IMultiLanguage2_DetectCodepageInIStream     21 int,int,sptr,var,var
#comfunc global IMultiLanguage2_DetectInputCodepage         22 int,int,str,var,var,var
#comfunc global IMultiLanguage2_ValidateCodePage            23 int,sptr
#comfunc global IMultiLanguage2_GetCodePageDescription      24 int,int,var,int
#comfunc global IMultiLanguage2_IsCodePageInstallable       25 int
#comfunc global IMultiLanguage2_SetMimeDBSource             26 int
#comfunc global IMultiLanguage2_GetNumberOfScripts          27 var
#comfunc global IMultiLanguage2_EnumScripts                 28 int,int,sptr
#comfunc global IMultiLanguage2_ValidateCodePageEx          29 int,sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。