Nikolay Sivov : msxml3: Implement get_nodeTypeValue() for attributes without a type.

Alexandre Julliard julliard at winehq.org
Mon Nov 14 13:33:55 CST 2011


Module: wine
Branch: master
Commit: dd9a2effd5efa09388e76e0282f2e3f206cbbdb4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=dd9a2effd5efa09388e76e0282f2e3f206cbbdb4

Author: Nikolay Sivov <nsivov at 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(




More information about the wine-cvs mailing list