So, I looked at it some more, Wine's RichEdit OLE interface
implementation has
3 bugs which prevent our code from
working. None of these bugs are present in actual Windows.
- the tomCharFormat issue mentioned above.
- MoveEnd returns a Delta of 1 even when the true Delta is 0,
happens when the range is at the end.
- GetForeColor doesn't honor CFE_AUTOCOLOR, meaning it never
returns the special tomAutoColor color.
What I did now is revert to our previous
EM_GETCHARFORMAT/EM_SETCHARFORMAT based implementation. This works
with both Wine and Windows. Little bit less efficient but should not
be noticeable at all.
Will look into putting it into IS 6 as well.
Greetings,
Martijn
Wine example: