// 文字セットの取得
// 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;
}