Hans Leidekker : msxml3: Add support for 'int' in IXMLDOMElement_put_dataType.

Alexandre Julliard julliard at winehq.org
Tue Jun 23 15:52:51 CDT 2020


Module: wine
Branch: master
Commit: 0bec5dfeeca8e27fe19290bafc0550906de7b1eb
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0bec5dfeeca8e27fe19290bafc0550906de7b1eb

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Fri Jun 12 12:32:05 2020 +0200

msxml3: Add support for 'int' in IXMLDOMElement_put_dataType.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msxml3/element.c      |  1 +
 dlls/msxml3/tests/domdoc.c | 27 +++++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index 0ff26e4fb7..ecebd39fea 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -847,6 +847,7 @@ static HRESULT WINAPI domelem_put_nodeTypedValue(
     {
     /* for untyped node coerce to BSTR and set */
     case DT_INVALID:
+    case DT_INT:
         if (V_VT(&value) != VT_BSTR)
         {
             VARIANT content;
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index a6acdba366..49768b8dbe 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -8541,6 +8541,33 @@ static void test_put_nodeTypedValue(void)
        "got %s, expected \"1\"\n", wine_dbgstr_w(V_BSTR(&type)));
     VariantClear(&type);
 
+    /* int */
+    hr = IXMLDOMElement_put_dataType(elem, _bstr_("int"));
+    EXPECT_HR(hr, S_OK);
+
+    V_VT(&value) = VT_BSTR;
+    V_BSTR(&value) = _bstr_("1");
+    hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
+    EXPECT_HR(hr, S_OK);
+    VariantClear(&value);
+
+    V_VT(&value) = VT_EMPTY;
+    hr = IXMLDOMElement_get_nodeTypedValue(elem, &value);
+    EXPECT_HR(hr, S_OK);
+    ok(V_VT(&value) == VT_I4, "got %d\n", V_VT(&value));
+    ok(V_I4(&value) == 1, "got %d\n", V_I4(&value));
+
+    V_VT(&value) = VT_I2;
+    V_I2(&value) = -1;
+    hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
+    EXPECT_HR(hr, S_OK);
+
+    V_VT(&value) = VT_EMPTY;
+    hr = IXMLDOMElement_get_nodeTypedValue(elem, &value);
+    EXPECT_HR(hr, S_OK);
+    ok(V_VT(&value) == VT_I4, "got %d\n", V_VT(&value));
+    ok(V_I4(&value) == -1, "got %d\n", V_I4(&value));
+
     hr = IXMLDOMElement_get_firstChild(elem, &node);
     EXPECT_HR(hr, S_OK);
     hr = IXMLDOMElement_removeChild(elem, node, NULL);




More information about the wine-cvs mailing list