文字コードの変換[MLang]

(2004.04.22)
struct __declspec(uuid("275C23E1-3747-11D0-9FEA-00AA003F8646")) IMultiLanguage;
 
enum
{
    CODEPAGE_SHIFTJIS    = 932,
    CODEPAGE_EUCJP        = 51932,
    CODEPAGE_ISO2022JP    = 50220
};
 
 
    static HRESULT ConvertString(
        DWORD* pdwMode,
        DWORD dwSrcEncoding,
        DWORD dwDstEncoding,
        BYTE* pSrcStr,
        UINT* pcSrcSize,
        BYTE* pDstStr,
        UINT* pcDstSize)
    {
        HRESULT hr = S_OK;
 
        try
        {
            IMultiLanguagePtr spMultiLanguage = GetMultiLanguage();
            if (spMultiLanguage == NULL)
            {
                return E_FAIL;
            }
 
            hr = spMultiLanguage->ConvertString(
                pdwMode,
                dwSrcEncoding,
                dwDstEncoding,
                pSrcStr,
                pcSrcSize,
                pDstStr,
                pcDstSize);
            if (FAILED(hr))
            {
                return hr;
            }
        }
        catch (...)
        {
            return E_FAIL;
        }
 
        return hr;
    }
    static IMultiLanguagePtr GetMultiLanguage()
    {
        HRESULT hr = S_OK;
 
        IMultiLanguagePtr spMultiLanguage;
        hr = spMultiLanguage.CreateInstance(__uuidof(CMultiLanguage));
        if (FAILED(hr))
        {
            return NULL;
        }
 
        return spMultiLanguage;
    }
一覧に戻る
© 2003 WAC.com All Right Reserved.