求助:用SetClipboardData往剪贴板放一个RTF格式的字符串, 当字符串是UNICODE时粘贴失败
ANSI时期的代码:
CSharedFile sf(GMEM_MOVEABLE | GMEM_SHARE | GMEM_ZEROINIT);
TCHAR sz[200];
/*
下面这句不要管,这个是RTF格式的字符串(用VC以2进制打开.rtf文件可见类似代码
效果是字号为12 (fs24/2)的ABC, Arial字体
*/
_tcscpy(sz, _T("{\\rtf1{\\fonttbl{\\f0\\fnil Arial;}}\r\n\\f0\\fs24 ABC}"));
sf.Write(sz, _tcslen(sz) * sizeof(TCHAR));
OpenClipboard();
EmptyClipboard();
/*
RICHEDIT.H, #define CF_RTF TEXT("Rich Text Format")
*/
SetClipboardData(::RegisterClipboardFormat(CF_RTF), sfRTF.Detach());
CloseClipboard();
运行正常的很, 但是改成UNICODE后,在Word或WordPad下粘贴不出格式化的文本,只能粘贴出第一个"{".是不是往CSharedFile sf里写UNICODE字符的问题,该怎么修改?