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

IMLangConvertCharset

COM
IIDd66d6f98-cdaa-11d0-b822-00c04fc9b31f継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

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

vtbl 3 HRESULT Initialize(DWORD uiSrcCodePage, DWORD uiDstCodePage, DWORD dwProperty)
uiSrcCodePageDWORDin変換元の文字コードページ番号。
uiDstCodePageDWORDin変換先の文字コードページ番号。
dwPropertyDWORDin変換動作を制御するプロパティフラグ(MLCONVCHARF)。
vtbl 4 HRESULT GetSourceCodePage(DWORD* puiSrcCodePage)
puiSrcCodePageDWORD*out現在設定されている変換元コードページ番号を受け取る出力ポインタ。
vtbl 5 HRESULT GetDestinationCodePage(DWORD* puiDstCodePage)
puiDstCodePageDWORD*out現在設定されている変換先コードページ番号を受け取る出力ポインタ。
vtbl 6 HRESULT GetProperty(DWORD* pdwProperty)
pdwPropertyDWORD*out現在設定されている変換プロパティフラグを受け取る出力ポインタ。
vtbl 7 HRESULT DoConversion(BYTE* pSrcStr, DWORD* pcSrcSize, BYTE* pDstStr, DWORD* pcDstSize)
pSrcStrBYTE*in変換元のバイト列バッファ。
pcSrcSizeDWORD*inoutoptional入力時は変換元のバイト数、出力時は実際に消費したバイト数を表す入出力ポインタ。
pDstStrBYTE*out変換結果を書き込む出力バイトバッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファ容量、出力時は書き込んだバイト数を表す入出力ポインタ。
vtbl 8 HRESULT DoConversionToUnicode(LPSTR pSrcStr, DWORD* pcSrcSize, LPWSTR pDstStr, DWORD* pcDstSize)
pSrcStrLPSTRin変換元のマルチバイト(ANSI)文字列。
pcSrcSizeDWORD*inoutoptional入力時は変換元のバイト数、出力時は消費バイト数を表す入出力ポインタ。
pDstStrLPWSTRout変換結果のUnicode文字列を書き込む出力バッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファの文字数容量、出力時は書き込んだ文字数を表す入出力ポインタ。
vtbl 9 HRESULT DoConversionFromUnicode(LPWSTR pSrcStr, DWORD* pcSrcSize, LPSTR pDstStr, DWORD* pcDstSize)
pSrcStrLPWSTRin変換元のUnicode文字列。
pcSrcSizeDWORD*inoutoptional入力時は変換元の文字数、出力時は消費文字数を表す入出力ポインタ。
pDstStrLPSTRout変換結果のマルチバイト(ANSI)文字列を書き込む出力バッファ。NULLで必要サイズ算出。
pcDstSizeDWORD*inoutoptional入力時は出力バッファのバイト数容量、出力時は書き込んだバイト数を表す入出力ポインタ。

HSP用 COM定義

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

出力引数:
#define global IID_IMLangConvertCharset "{D66D6F98-CDAA-11D0-B822-00C04FC9B31F}"
#usecom global IMLangConvertCharset IID_IMLangConvertCharset "{}"
#comfunc global IMLangConvertCharset_Initialize               3 int,int,int
#comfunc global IMLangConvertCharset_GetSourceCodePage        4 var
#comfunc global IMLangConvertCharset_GetDestinationCodePage   5 var
#comfunc global IMLangConvertCharset_GetProperty              6 var
#comfunc global IMLangConvertCharset_DoConversion             7 var,var,var,var
#comfunc global IMLangConvertCharset_DoConversionToUnicode    8 str,var,var,var
#comfunc global IMLangConvertCharset_DoConversionFromUnicode  9 wstr,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。