Jacek Caban : mshtml: Added IHTMLTxtRange::inRange implementation.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Sep 10 10:18:05 CDT 2007


Module: wine
Branch: master
Commit: 4930b51bb8b891a1fa36abbbc4f3c3b826000cdb
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4930b51bb8b891a1fa36abbbc4f3c3b826000cdb

Author: Jacek Caban <jacek at 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,




More information about the wine-cvs mailing list