请教一个多国语言字符串转换的问题
我的程序中要求一个功能,当从其他窗口,比如ie中,将一段文字拖到本窗口时,要接收到字符串并显示出来。
现在功能已经基本实现,拖过来英文,中文,日文,俄文,法文都没问题,但是德文却总有些字符显示乱码。
我试了其他的一些软件,qq和vc6都显示不正确,但是ie,msn,vs.net,office等都可以正确显示。
我想是我接收到字符串后没有做正确的转换,但是不明白该如何转换,接收到的字符串是以什么格式存储的。
希望有过类似经验的能指点一下,不胜感激。
我接收的代码大致如下:
BOOL CTmp3View::OnDrop(COleDataObject *pDataObject, DROPEFFECT dropEffect, CPoint point)
{
STGMEDIUM stgm;
FORMATETC fm = {CF_TEXT, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
char* cpData = NULL;
DWORD dwSize = 0;
//得到数据和数据的字节数
pDataObject->GetData(CF_TEXT, &stgm, &fm);
cpData = (char*)GlobalLock(stgm.hGlobal);
dwSize = GlobalSize(stgm.hGlobal);
//处理数据并显示
... ---->> //我想这里应该对cpData有所处理
return CView::OnDrop(pDataObject, dropEffect, point);
}