Nikolay Sivov : msxml3: Implement put_version() for MXWriter.
Alexandre Julliard
julliard at winehq.org
Wed Aug 24 14:05:27 CDT 2011
Module: wine
Branch: master
Commit: 74a7edd41ba79881c0a54ebf93878d394674ef77
URL: http://source.winehq.org/git/wine.git/?a=commit;h=74a7edd41ba79881c0a54ebf93878d394674ef77
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Wed Aug 24 13:25:29 2011 +0400
msxml3: 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();
}
More information about the wine-cvs
mailing list