[PATCH 1/8] riched20: Stub for ITextRange interface and implement ITextDocument::Range. (resend try 4)
jactry92 at gmail.com
Fri Sep 12 04:32:19 CDT 2014
This is a newer version:
static HRESULT CreateITextRange(IRichEditOle *reOle, LONG start, LONG end,
ITextRangeImpl *txtRge, ITextRange**
IRichEditOleImpl *reOleImpl = impl_from_IRichEditOle(reOle);
txtRge->ITextRange_iface.lpVtbl = &trvt;
txtRge->ref = 1;
txtRge->reOle = reOleImpl;
txtRge->start = start;
txtRge->end = end;
*ppRange = &txtRge->ITextRange_iface;
I will prefer passing ITextRangeImpl into CreateITextRange instead of
So we don't need to impl_from_ITextRange again. Is it also ok?
btw, I didn't alloc txtRge (txtRge = heap_alloc(sizeof(ITextRangeImpl));)
because CreateITextRange() was just created for sharing code with
ITextRange::GetDuplicate and GetDuplicate
will return E_FAIL for all any other error when ITextDocument::Range
2014-09-12 15:53 GMT+08:00 Huw Davies <huw at codeweavers.com>:
> On Fri, Sep 12, 2014 at 10:47:44AM +0800, Jactry Zeng wrote:
> > 2014-09-12 4:43 GMT+08:00 Sebastian Lackner <sebastian at fds-team.de>:
> > >
> > >
> > > Are you sure? Doesn't this test below show exactly the opposite? It
> seems to
> > be safe
> > > to release the ITextDocument, and afterwards call an ITextRange
> function - it
> > will just
> > > return CO_E_RELEASED since the parent object was already released. Or
> am I
> > misunderstanding
> > > this code?
> > So sorry, I made a mistake yesterday here. I added more a
> > before the ITextRange calling
> > in my new tests code yesterday.
> > Functions of ITextRange will return CO_E_RELEASED after reOle/txtDoc were
> > released and will
> > crash after the ITextRange was released.
> In that case let's go with your proposed implementation.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the wine-devel