I'm re'ing my own post, but I think there's a combination of (1) a wine bug and (2) user error at work here.
(1) The wine bug (I think) is that riched32.dll is registering the wrong window class name. Here's a suggested patch:
[root@ihop dlls]# diff -Naur richedit/richedit.c richedit.MUSE/richedit.c --- richedit/richedit.c 2004-11-18 12:28:53.000000000 -0800 +++ richedit.MUSE/richedit.c 2004-11-18 17:03:33.000000000 -0800 @@ -792,7 +792,11 @@ wndClass.cbWndExtra = RTFInfoOffset + sizeof(RTFControl_Info*); wndClass.hCursor = LoadCursorA(0, (LPSTR)IDC_ARROW); wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); +#if (_RICHEDIT_VER >= 0x0200 ) + wndClass.lpszClassName = RICHEDIT_CLASS20A; /* WC_RICHED32A; */ +#else wndClass.lpszClassName = RICHEDIT_CLASS10A; /* WC_RICHED32A; */ +#endif
RegisterClassA (&wndClass); }
Can any wise ones comment on this?
(2) My user error is that Windows requires that RICHED32.DLL be manually loaded before use, it seems. At least that's what MFC requires, via its AfxInitRichEdit2() function. I called LoadLibrary("RICHED32.DLL") and, with my above patch, CreateWindow(RICHEDIT_CLASS,...) works fine.
This isn't true for other DLLs... but, oh well, there it is.
Cheers... mo