[Bug 4144] Numerous RichText problems

Wine Bugs wine-bugs at winehq.org
Thu Dec 29 23:34:03 CST 2005


http://bugs.winehq.org/show_bug.cgi?id=4144





------- Additional Comments From dank at kegel.com  2005-29-12 23:34 -------
Here's the text that was embedded in the demo program; it really
should have been part of the bug description.
--- snip ---
RichEd demo
The point of this demo is to demonstrate the problems with the
Wine version of RichEd. There are 5 notable bugs:

1) Wine RichEd ignores wordwrap messages sent to the window.

2) [LockWindowUpdate is unimplemented in wine]
Note: Some programmers use the WM_SETREDRAW message ( &HB ) instead of
LockWindowUpdate. The effect is virtually the same.

3) Wine RichEd ignores the options when finding text in a RichTextBox. 
If you do a search for "blah" you can see a simple demo of the problem. 
Use the find button with options checked or unchecked for testing. 
The message behind the RichEd.Find call (in the activeX control) 
is EM_FINDTEXT (WM_USER + 56). 
The way it works is that SendMessage is used to send EM_FINDTEXT to the window. 
(There is also EM_FINDTEXTEX (WM_USER + 79)  )
SendMessage(windowHandle, EM_FINDTEXT, Options, FINDTEXT struct pointer)
The Options parameter is a 32-bit integer flag.

Using the Windows RichEd library, RichEd20.dll, #1 and #3 here are not bugs. 
They only malfunction with the Wine Riched version.
(One interesting note: A Find done not-whole-word will miss a second
version of the word in a row. Ex.: in blahblah only the first "blah" is
found, while if RichEd20.dll is not loaded the Find is almost entirely
malfunctional. It's possible those issues are partially connected to
some problem with offset position numbers used to start the Find. In
both the control and API the RTB text has a zero-based offset system,
but Wine could be starting text at 1?  )
---------------------------------

4) ActiveX controloperations bug:
( The test buttons use ActiveX control methods or API methods. 
Use "Find API" and "Color Test API" for the API functions.)
The problems above apply to the RichTextBox when API calls 
are used for the Find and coloring operations. 
When the ActiveX control method RTB.Find is used, it seems to always
crash with various and rather odd errors. 
One common error was OLE error 80010108, which I think is: 
"The object has disconnected from its client". 
Another time there was error -1 (?). 
The ActiveX control Find method crash happens regardless of 
whether the Wine Riched20.dll is used. 
Complication note: On Win9x the activeX control, RichTx32.ocx,
is actually a wrapper for RichEd v. 1 - RichEd32.dll. On later Windows
versions that have RichEd v. 3 or 4, the v. 1 library is "emulated"
for the control. So it's uncertain whether the control is actually using
the Windows RichEd20.dll library, whether it's loaded or not. )

5) Finally, if you run this demo under both Wine and Windows you'll see
that the text coloring operation, designed to be inefficient for the sake
of the demo, is nevertheless *several times slower* under Wine than it
is on Windows.

--- snip ---


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list