[PATCH 1/8] riched20: Stub for ITextRange interface and implement ITextDocument::Range. (resend try 4)
Jactry Zeng
jactry92 at gmail.com
Fri Sep 12 04:32:19 CDT 2014
Hi Huw,
This is a newer version:
static HRESULT CreateITextRange(IRichEditOle *reOle, LONG start, LONG end,
ITextRangeImpl *txtRge, ITextRange**
ppRange)
{
IRichEditOleImpl *reOleImpl = impl_from_IRichEditOle(reOle);
txtRge->ITextRange_iface.lpVtbl = &trvt;
txtRge->ref = 1;
IRichEditOle_AddRef(reOle);
txtRge->reOle = reOleImpl;
txtRge->start = start;
txtRge->end = end;
list_add_head(&reOleImpl->rangelist, &txtRge->entry);
*ppRange = &txtRge->ITextRange_iface;
return S_OK;
}
I will prefer passing ITextRangeImpl into CreateITextRange instead of
ITextRange interface.
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));)
in CreateITextRange(),
because CreateITextRange() was just created for sharing code with
ITextRange::GetDuplicate and GetDuplicate
will return E_FAIL for all any other error[0] when ITextDocument::Range
returning E_OUTOFMEMORY.[1]
Thanks.
[0]
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787840(v=vs.85).aspx
[1]
http://msdn.microsoft.com/en-us/library/windows/desktop/bb774097(v=vs.85).aspx
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
> ITextRange::Release
> > 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.
>
> Huw.
>
--
Regards,
Jactry Zeng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20140912/7b5a3d71/attachment.html>
More information about the wine-devel
mailing list