Проблема следующего содержания:
есть два приложения: экранная клавиатура и форма с RichEdit;
получаем русский символ в msg.CharCode
v := FKeyList.KeyChar(k);
if TVarData(v).VPointer <> nil then
msg.CharCode := Word(TVarData(v).VPointer^);
и посылаем сообщение в RichEdit:
SendMessageW(gRichEdit_Handle, WM_CHAR, msg.CharCode, msg.KeyData);
суть проблемы:этот русский символ отображается как знак вопроса.
...хотя, если RichEdit находиться на форме клавиатуры, то при
msg.Msg := WM_CHAR;
Application.MainForm.ActiveControl.DefaultHandler(msg)
русский символ отображается нормально.