[PATCH 5/5] riched20: Handle EM_REPLACESEL's unicode conversion in the host.
Huw Davies
huw at codeweavers.com
Wed Mar 10 03:31:20 CST 2021
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/riched20/editor.c | 11 ++++-------
dlls/riched20/txthost.c | 12 ++++++++++++
2 files changed, 16 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 3cfb6b65ca7..07e266c0f87 100644
--- a/dlls/riched20/txthost.c
+++ b/dlls/riched20/txthost.c
@@ -847,6 +847,18 @@ 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;
--
2.23.0
More information about the wine-devel
mailing list