[PATCH] msxml3: Add support for 'int' in IXMLDOMElement_put_dataType.
Hans Leidekker
hans at codeweavers.com
Fri Jun 12 05:32:05 CDT 2020
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
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);
--
2.20.1
More information about the wine-devel
mailing list