richedit: Store richedit version rather than boolean bEmulateVersion10 value

Phil Krylov phil.krylov at
Thu Jul 3 18:03:12 CDT 2008

On 03/07/2008, Dylan Smith <dylan.ah.smith at> wrote:
 > On Thu, Jul 3, 2008 at 2:01 PM, Juan Lang <juan.lang at> wrote:
 > > Hi Dylan,
 > >
 > > -  if (!editor->bEmulateVersion10 || (editor->nEventMask & ENM_UPDATE))
 > > +  if (!editor->dwEmulatedVersion || (editor->nEventMask & ENM_UPDATE))
 > >
 > > This change is incorrect, as dwEmulatedVersion is never set to 0.  I
 > > believe you mean if (editor->dwEmulatedVersion > 0x100 || ...
 > >
 > You're right, that was a mistake.  Thanks for catching it.
 > > I have to ask, though:  what bug does this fix?
 > >
 > This doesn't fix a bug, but it allows me to add functionality for
 > msftedit.dll without changing the way riched20.dll works when loaded
 > directly.  Without storing more than a boolean value it will be hard to
 > support the multiple versions of richedit controls.
 >  I would like to properly implement tables for richedit controls, which
 > greatly differs in how it is implemented between riched20.dll and
 > msftedit.dll.  Should I only worry about how it is done in the newer
 > richedit controls?  I am worried that this will cause problems considering
 > that amy program that loads msftedit.dll assumes that they are getting a
 > specific implementation.

IMHO no real applications depend on poverty of table functionality of
 versions 2 and 3. If somebody finds one, we could think about it
 then... To my knowledge, there is just one thing better in table
 support of 2.0 than in 3.0 and IIRC 4.1: better breaking of long
 tables on page boundaries when printing. But I consider it a bug in
 versions >2.0 which we should not replicate (when EM_FORMATRANGE will
 be supported).

 -- Ph.

More information about the wine-devel mailing list