В нашем приложении есть ошибка в не-юникодной версии; если мы скопируем некоторые русские символы в буфер обмена (используя SetClipboardData (CF_TEXT)), а затем вставим их в блокнот, они будут вставлены не как русские символы, а как кодовая страница 1252 эквивалента (например, Э становится Ý).
Пытаясь понять это, я сделал небольшое тестовое приложение для вставки, и оно работало нормально, если я использовал GetClipboardData (CF_TEXT). однако, если я использую GetClipboardData (CF_UNICODETEXT), у него точно такая же проблема, как и у блокнота.
Так что я предполагаю, что в блокноте просто используется CF_UNICODETEXT для вставки. Согласно прочитанной мною документации MS, буфер обмена должен иметь возможность конвертировать текст CF_TEXT в текст CF_UNICODE. На самом деле на странице:
http://msdn.microsoft.com/en-us/library/ms649013.aspx#_win32_Synthesized_Clipboard_Formats
там написано, что "размещение формата (ов) преобразования в буфере обмена не дает никаких преимуществ".
Если это правда, тогда я должен (я надеюсь) совершить простую ошибку, которую легко исправить.
Может кто-нибудь помочь мне с решением этой проблемы?
Спасибо