Hello folks,

I began to work on ITextRange and ITextSelction in the past two weeks. I have
implemented the ITextRange interface and some functions of it. And fixed some
other bugs in dlls/riched20/richole.c.


1. Stub implementation of ITextRange interface
This is just an initial implementation. In order to implement all the functions
of ITextRange, more members will be added to ITextRangeImpl struct. For example,
according this test[0] we knew when some text in an ITextRange instance was deleted,
range of ITextRange in the same RichEdit should adjust for this change. (MSDN[1]
also has some description about this.) So we should add something to let all
ITextRange instance know each other and adjust others range after deleting or
appending some text.

2. Initial implementation of ITextRange::GetText
This is also an initial implementation, because I found range of all the ITextRange
instances in an RichEdit would be reseted to (0, 0) and ITextRange::GetText would
return a NULL BSTR[2] when the content in this RichEdit was changed by WM_SETTEXT.
I think we may need to add a member to ME_TextEditor to let it know about all
ITextRange of it, so it can reset the range of all ITextRange in it when the content
was changed by WM_SETTEXT or any other functions.

Linked list may will be a good choice for the first problem.
Or anyone have a better way?
Any feedback will be appreciate!
Thank you! :)





--
Regards,
Jactry Zeng