Module: wine Branch: master Commit: dd9a2effd5efa09388e76e0282f2e3f206cbbdb4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=dd9a2effd5efa09388e76e0282...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Sat Nov 5 13:42:41 2011 +0300
msxml3: Implement get_nodeTypeValue() for attributes without a type.
---
dlls/msxml3/attribute.c | 35 ++++++++++++++++++++++++++++++++--- 1 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c index b67a5b4..fc96658 100644 --- a/dlls/msxml3/attribute.c +++ b/dlls/msxml3/attribute.c @@ -448,11 +448,40 @@ static HRESULT WINAPI domattr_get_definition(
static HRESULT WINAPI domattr_get_nodeTypedValue( IXMLDOMAttribute *iface, - VARIANT* var1) + VARIANT* value) { domattr *This = impl_from_IXMLDOMAttribute( iface ); - FIXME("(%p)->(%p)\n", This, var1); - return return_null_var(var1); + IXMLDOMDocument *doc; + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, value); + + hr = IXMLDOMAttribute_get_ownerDocument(iface, &doc); + if (hr == S_OK) + { + IXMLDOMDocument2 *doc2; + + hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMDocument2, (void**)&doc2); + IXMLDOMDocument_Release(doc); + + if (hr == S_OK) + { + VARIANT schemas; + + hr = IXMLDOMDocument2_get_schemas(doc2, &schemas); + IXMLDOMDocument2_Release(doc2); + + if (hr != S_OK) + return IXMLDOMAttribute_get_value(iface, value); + else + { + FIXME("need to query schema for attribute type\n"); + VariantClear(&schemas); + } + } + } + + return return_null_var(value); }
static HRESULT WINAPI domattr_put_nodeTypedValue(