#define _UNICODE 1
#pragma warning(disable:4305 4309)
#pragma comment(lib,"ole32")
#pragma comment(lib,"comsupp")
#include <cstdio>
#include <objbase.h>
#include <comip.h>
#include <mlang.h>
#include <tchar.h>
typedef _com_ptr_t<_com_IIID<IMultiLanguage3, &IID_IMultiLanguage3> > IMultiLanguage3Ptr;
int main() {
CoInitialize(NULL);
{
IMultiLanguage3Ptr pML(CLSID_CMultiLanguage, NULL, CLSCTX_INPROC);
char data[] = { 0xD6, 0xD0, 0xCE, 0xC4, 0xB1, 0xE0, 0xC2, 0xEB };
int isize = sizeof(data);
DetectEncodingInfo result[32];
int result_count = sizeof(result) / sizeof(result[0]);
HRESULT hr = pML->DetectInputCodepage(MLDETECTCP_NONE, 0, data, &isize, result, &result_count);
if (!SUCCEEDED(hr))
{
fprintf(stderr, "Failed with 0x%x\n", hr);
CoUninitialize();
return hr;
}
for (int i = 0; i < result_count; i++)
{
WCHAR desc[100] = {0};
pML->GetCodePageDescription(result[i].nCodePage, result[i].nLangID, desc, 100);
printf("CP:%d (%S)\n", result[i].nCodePage, desc);
}
}
CoUninitialize();
return 0;
}
查看当前编码(代码页)
最新推荐文章于 2024-07-19 12:44:29 发布