Signed-off-by: Huw Davies huw@codeweavers.com --- dlls/riched20/editor.c | 11 ++++------- dlls/riched20/txthost.c | 11 +++++++++++ 2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 3d17d2d974f..217394eaafb 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -3883,14 +3883,11 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, } case EM_REPLACESEL: { - int len = 0; - LONG codepage = unicode ? CP_UNICODE : CP_ACP; - LPWSTR wszText = ME_ToUnicode(codepage, (void *)lParam, &len); + WCHAR *text = (WCHAR *)lParam; + int len = text ? lstrlenW( text ) : 0;
- TRACE("EM_REPLACESEL - %s\n", debugstr_w(wszText)); - - ME_ReplaceSel(editor, !!wParam, wszText, len); - ME_EndToUnicode(codepage, wszText); + TRACE( "EM_REPLACESEL - %s\n", debugstr_w( text ) ); + ME_ReplaceSel( editor, !!wParam, text, len ); return len; } case EM_SCROLLCARET: diff --git a/dlls/riched20/txthost.c b/dlls/riched20/txthost.c index ac561ef4c83..064ce3fb827 100644 --- a/dlls/riched20/txthost.c +++ b/dlls/riched20/txthost.c @@ -849,6 +849,17 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam, EndPaint( editor->hWnd, &ps ); return 0; } + case EM_REPLACESEL: + { + int len; + LONG codepage = unicode ? CP_UNICODE : CP_ACP; + WCHAR *text = ME_ToUnicode( codepage, (void *)lparam, &len ); + + hr = ITextServices_TxSendMessage( host->text_srv, msg, wparam, (LPARAM)text, &res ); + ME_EndToUnicode( codepage, text ); + res = len; + break; + } case EM_SETOPTIONS: { DWORD style;