Module: wine Branch: master Commit: 4930b51bb8b891a1fa36abbbc4f3c3b826000cdb URL: http://source.winehq.org/git/wine.git/?a=commit;h=4930b51bb8b891a1fa36abbbc4...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Sep 9 20:18:14 2007 +0200
mshtml: Added IHTMLTxtRange::inRange implementation.
---
dlls/mshtml/txtrange.c | 27 +++++++++++++++++++++++++-- 1 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/txtrange.c b/dlls/mshtml/txtrange.c index f684df7..c29b3c9 100644 --- a/dlls/mshtml/txtrange.c +++ b/dlls/mshtml/txtrange.c @@ -335,8 +335,31 @@ static HRESULT WINAPI HTMLTxtRange_inRange(IHTMLTxtRange *iface, IHTMLTxtRange * VARIANT_BOOL *InRange) { HTMLTxtRange *This = HTMLTXTRANGE_THIS(iface); - FIXME("(%p)->(%p %p)\n", This, Range, InRange); - return E_NOTIMPL; + HTMLTxtRange *src_range; + PRInt16 nsret = 0; + nsresult nsres; + + TRACE("(%p)->(%p %p)\n", This, Range, InRange); + + *InRange = VARIANT_FALSE; + + src_range = get_range_object(This->doc, Range); + if(!src_range) + return E_FAIL; + + nsres = nsIDOMRange_CompareBoundaryPoints(This->nsrange, NS_START_TO_START, + src_range->nsrange, &nsret); + if(NS_SUCCEEDED(nsres) && nsret <= 0) { + nsres = nsIDOMRange_CompareBoundaryPoints(This->nsrange, NS_END_TO_END, + src_range->nsrange, &nsret); + if(NS_SUCCEEDED(nsres) && nsret >= 0) + *InRange = VARIANT_TRUE; + } + + if(NS_FAILED(nsres)) + ERR("CompareBoundaryPoints failed: %08x\n", nsres); + + return S_OK; }
static HRESULT WINAPI HTMLTxtRange_isEqual(IHTMLTxtRange *iface, IHTMLTxtRange *Range,