Commit 87717c9c authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

riched20: Handle EM_FINDTEXTEX's unicode conversion in the host.

parent c80be66c
......@@ -4167,30 +4167,13 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
{
return editor->nTextLimit;
}
case EM_FINDTEXTEX:
{
LRESULT r;
if(!unicode){
FINDTEXTEXA *ex = (FINDTEXTEXA *)lParam;
int nChars = MultiByteToWideChar(CP_ACP, 0, ex->lpstrText, -1, NULL, 0);
WCHAR *tmp;
if ((tmp = heap_alloc(nChars * sizeof(*tmp))) != NULL)
MultiByteToWideChar(CP_ACP, 0, ex->lpstrText, -1, tmp, nChars);
r = ME_FindText(editor, wParam, &ex->chrg, tmp, &ex->chrgText);
heap_free(tmp);
}else{
FINDTEXTEXW *ex = (FINDTEXTEXW *)lParam;
r = ME_FindText(editor, wParam, &ex->chrg, ex->lpstrText, &ex->chrgText);
}
return r;
}
case EM_FINDTEXT:
case EM_FINDTEXTW:
{
FINDTEXTW *ft = (FINDTEXTW *)lParam;
return ME_FindText(editor, wParam, &ft->chrg, ft->lpstrText, NULL);
}
case EM_FINDTEXTEX:
case EM_FINDTEXTEXW:
{
FINDTEXTEXW *ex = (FINDTEXTEXW *)lParam;
......
......@@ -850,6 +850,27 @@ static LRESULT RichEditWndProc_common( HWND hwnd, UINT msg, WPARAM wparam,
if (!unicode) ME_EndToUnicode( CP_ACP, (WCHAR *)new_params.lpstrText );
break;
}
case EM_FINDTEXTEX:
{
FINDTEXTEXA *paramsA = (FINDTEXTEXA *)lparam;
FINDTEXTEXW *params = (FINDTEXTEXW *)lparam;
FINDTEXTEXW new_params;
int len;
if (!unicode)
{
new_params.chrg = params->chrg;
new_params.lpstrText = ME_ToUnicode( CP_ACP, (char *)params->lpstrText, &len );
params = &new_params;
}
hr = ITextServices_TxSendMessage( host->text_srv, EM_FINDTEXTEXW, wparam, (LPARAM)params, &res );
if (!unicode)
{
ME_EndToUnicode( CP_ACP, (WCHAR *)new_params.lpstrText );
paramsA->chrgText = params->chrgText;
}
break;
}
case WM_GETTEXT:
{
GETTEXTEX params;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment