[1/3] msxml3/mxwriter: Implement put_version() for MXWriter
Nikolay Sivov
nsivov at codeweavers.com
Wed Aug 24 07:37:26 CDT 2011
Implement put_version() for MXWriter
-------------- next part --------------
From cc0615b271b1137bb10f9a22942bcd6d3dd3c87e Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <nsivov at codeweavers.com>
Date: Wed, 24 Aug 2011 13:25:29 +0400
Subject: [PATCH 1/3] Implement put_version() for MXWriter
---
dlls/msxml3/mxwriter.c | 13 ++++++++++---
dlls/msxml3/tests/saxreader.c | 28 ++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/dlls/msxml3/mxwriter.c b/dlls/msxml3/mxwriter.c
index b99366e..54b7758 100644
--- a/dlls/msxml3/mxwriter.c
+++ b/dlls/msxml3/mxwriter.c
@@ -1,7 +1,7 @@
/*
* MXWriter implementation
*
- * Copyright 2011 Nikolay Sivov for CodeWeaversы
+ * Copyright 2011 Nikolay Sivov for CodeWeavers
* Copyright 2011 Thomas Mullaly
*
* This library is free software; you can redistribute it and/or
@@ -525,8 +525,15 @@ static HRESULT WINAPI mxwriter_get_omitXMLDeclaration(IMXWriter *iface, VARIANT_
static HRESULT WINAPI mxwriter_put_version(IMXWriter *iface, BSTR version)
{
mxwriter *This = impl_from_IMXWriter( iface );
- FIXME("(%p)->(%s)\n", This, debugstr_w(version));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(version));
+
+ if (!version) return E_INVALIDARG;
+
+ SysFreeString(This->version);
+ This->version = SysAllocString(version);
+
+ return S_OK;
}
static HRESULT WINAPI mxwriter_get_version(IMXWriter *iface, BSTR *version)
diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index 53ce8dc..cc123ff 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -1191,6 +1191,34 @@ static void test_mxwriter_properties(void)
ok(!lstrcmpW(str, _bstr_("1.0")), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
+ /* store version string as is */
+ hr = IMXWriter_put_version(writer, NULL);
+ ok(hr == E_INVALIDARG, "got %08x\n", hr);
+
+ hr = IMXWriter_put_version(writer, _bstr_("1.0"));
+ ok(hr == S_OK, "got %08x\n", hr);
+
+ hr = IMXWriter_put_version(writer, _bstr_(""));
+ ok(hr == S_OK, "got %08x\n", hr);
+ hr = IMXWriter_get_version(writer, &str);
+ ok(hr == S_OK, "got %08x\n", hr);
+ ok(!lstrcmpW(str, _bstr_("")), "got %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+
+ hr = IMXWriter_put_version(writer, _bstr_("a.b"));
+ ok(hr == S_OK, "got %08x\n", hr);
+ hr = IMXWriter_get_version(writer, &str);
+ ok(hr == S_OK, "got %08x\n", hr);
+ ok(!lstrcmpW(str, _bstr_("a.b")), "got %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+
+ hr = IMXWriter_put_version(writer, _bstr_("2.0"));
+ ok(hr == S_OK, "got %08x\n", hr);
+ hr = IMXWriter_get_version(writer, &str);
+ ok(hr == S_OK, "got %08x\n", hr);
+ ok(!lstrcmpW(str, _bstr_("2.0")), "got %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+
IMXWriter_Release(writer);
free_bstrs();
}
--
1.5.6.5
More information about the wine-patches
mailing list