Nikolay Sivov : msxml3: Implement get_line() and get_linepos().

Alexandre Julliard julliard at winehq.org
Tue Nov 8 12:23:08 CST 2011


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Nov  4 23:26:53 2011 +0300

msxml3: Implement get_line() and get_linepos().

---

 dlls/msxml3/parseerror.c   |   23 +++++++++++++++--------
 dlls/msxml3/tests/domdoc.c |   26 ++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/dlls/msxml3/parseerror.c b/dlls/msxml3/parseerror.c
index b8cc381..c461095 100644
--- a/dlls/msxml3/parseerror.c
+++ b/dlls/msxml3/parseerror.c
@@ -135,13 +135,10 @@ static HRESULT WINAPI parseError_GetTypeInfo(
     ITypeInfo** ppTInfo )
 {
     parse_error_t *This = impl_from_IXMLDOMParseError( iface );
-    HRESULT hr;
 
     TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
 
-    hr = get_typeinfo(IXMLDOMParseError_tid, ppTInfo);
-
-    return hr;
+    return get_typeinfo(IXMLDOMParseError_tid, ppTInfo);
 }
 
 static HRESULT WINAPI parseError_GetIDsOfNames(
@@ -255,8 +252,13 @@ static HRESULT WINAPI parseError_get_line(
     LONG *line )
 {
     parse_error_t *This = impl_from_IXMLDOMParseError( iface );
-    FIXME("(%p)->(%p)\n", This, line);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p): stub\n", This, line);
+
+    if (!line) return E_INVALIDARG;
+
+    *line = This->line;
+    return S_OK;
 }
 
 static HRESULT WINAPI parseError_get_linepos(
@@ -264,8 +266,13 @@ static HRESULT WINAPI parseError_get_linepos(
     LONG *linepos )
 {
     parse_error_t *This = impl_from_IXMLDOMParseError( iface );
-    FIXME("(%p)->(%p)\n", This, linepos);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, linepos);
+
+    if (!linepos) return E_INVALIDARG;
+
+    *linepos = This->linepos;
+    return S_OK;
 }
 
 static HRESULT WINAPI parseError_get_filepos(
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index a883da0..eeff419 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -10752,6 +10752,31 @@ static void test_dispex(void)
     free_bstrs();
 }
 
+static void test_parseerror(void)
+{
+    IXMLDOMParseError *error;
+    IXMLDOMDocument *doc;
+    HRESULT hr;
+
+    doc = create_document(&IID_IXMLDOMDocument);
+
+    hr = IXMLDOMDocument_get_parseError(doc, &error);
+    EXPECT_HR(hr, S_OK);
+
+    hr = IXMLDOMParseError_get_line(error, NULL);
+    EXPECT_HR(hr, E_INVALIDARG);
+
+    hr = IXMLDOMParseError_get_srcText(error, NULL);
+    todo_wine EXPECT_HR(hr, E_INVALIDARG);
+
+    hr = IXMLDOMParseError_get_linepos(error, NULL);
+    EXPECT_HR(hr, E_INVALIDARG);
+
+    IXMLDOMParseError_Release(error);
+
+    IXMLDOMDocument_Release(doc);
+}
+
 START_TEST(domdoc)
 {
     IXMLDOMDocument *doc;
@@ -10824,6 +10849,7 @@ START_TEST(domdoc)
     test_selection();
     test_load();
     test_dispex();
+    test_parseerror();
 
     test_xsltemplate();
 




More information about the wine-cvs mailing list