From 56da338e5c00e5717a6d62bd523aad4cf94a284e Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 1 Mar 2008 22:54:33 +1100 Subject: [PATCH] msxml3: Implmented IXMLDOMCDATASection_get_data. --- dlls/msxml3/cdata.c | 16 ++++++++++++++-- dlls/msxml3/tests/domdoc.c | 8 +++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c index ce25bd8cf33..21c84335076 100644 --- a/dlls/msxml3/cdata.c +++ b/dlls/msxml3/cdata.c @@ -475,8 +475,20 @@ static HRESULT WINAPI domcdata_get_data( IXMLDOMCDATASection *iface, BSTR *p) { - FIXME("\n"); - return E_NOTIMPL; + domcdata *This = impl_from_IXMLDOMCDATASection( iface ); + HRESULT hr = E_FAIL; + VARIANT vRet; + + if(!p) + return E_INVALIDARG; + + hr = IXMLDOMNode_get_nodeValue( This->element, &vRet ); + if(hr == S_OK) + { + *p = V_BSTR(&vRet); + } + + return hr; } static HRESULT WINAPI domcdata_put_data( diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 0b9ab203b41..5f601d61375 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -2389,12 +2389,18 @@ static void test_xmlTypes(void) ok(hr == S_OK, "ret %08x\n", hr ); ok(len == 21, "expected 21 got %ld\n", len); - /* test length property */ + /* test get nodeValue */ hr = IXMLDOMCDATASection_get_nodeValue(pComment, &var); ok(hr == S_OK, "ret %08x\n", hr ); ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect text string\n"); VariantClear(&var); + /* test get data */ + hr = IXMLDOMCDATASection_get_data(pComment, &str); + ok(hr == S_OK, "ret %08x\n", hr ); + ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect text string\n"); + SysFreeString(str); + IXMLDOMCDATASection_Release(pCDataSec); }