コードページから文字セットの取得 [MLang]

(2004.05.06)
    // 文字セットの取得
    // IE4.0 or lator
    static CString GetChatset(DWORD dwCodePage, LPCTSTR szDefaultCharset = _T(""))
    {
        USES_CONVERSION;
 
        HRESULT hr = S_OK;
 
        MIMECPINFO info;
        hr = CMLangHelper::GetCodePageInfo(dwCodePage, &info);
        if (FAILED(hr))
        {
            return szDefaultCharset;
        }
 
        return W2T(info.wszWebCharset);
    }
 
    // IE4.0 or lator
    static HRESULT GetCodePageInfo(DWORD dwCodePage, PMIMECPINFO pCodePageInfo)
    {
        HRESULT hr = S_OK;
 
        try
        {
            IMultiLanguagePtr spMultiLanguage = GetMultiLanguage();
            if (spMultiLanguage == NULL)
            {
                return E_FAIL;
            }
 
            hr = spMultiLanguage->GetCodePageInfo(dwCodePage, pCodePageInfo);
            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.