msxml3: Store outer iface as IXMLDOMNode instead of IUnknown in xmlnode.
authorJacek Caban <jacek@codeweavers.com>
Sat, 4 Sep 2010 15:54:13 +0000 (17:54 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 6 Sep 2010 14:13:21 +0000 (16:13 +0200)
dlls/msxml3/attribute.c
dlls/msxml3/cdata.c
dlls/msxml3/comment.c
dlls/msxml3/docfrag.c
dlls/msxml3/domdoc.c
dlls/msxml3/element.c
dlls/msxml3/entityref.c
dlls/msxml3/msxml_private.h
dlls/msxml3/node.c
dlls/msxml3/pi.c
dlls/msxml3/text.c

index 0bdc6919035ebf22ed147a7c5758cc852f8ddfff..327f91c5805a4a067bd8929a0f49b952dfe37c52 100644 (file)
@@ -556,7 +556,7 @@ IUnknown* create_attribute( xmlNodePtr attribute )
     This->lpVtbl = &domattr_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, attribute, (IUnknown*)&This->lpVtbl, NULL);
+    init_xmlnode(&This->node, attribute, (IXMLDOMNode*)&This->lpVtbl, NULL);
 
     return (IUnknown*) &This->lpVtbl;
 }
index 373bbc80a3a4d5ee634ccb13154da276352a0f7d..b23d19d170d3ccb1e4dec9fd078ff827bbdce5e4 100644 (file)
@@ -835,7 +835,7 @@ IUnknown* create_cdata( xmlNodePtr text )
     This->lpVtbl = &domcdata_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, text, (IUnknown*)&This->lpVtbl, NULL);
+    init_xmlnode(&This->node, text, (IXMLDOMNode*)&This->lpVtbl, NULL);
 
     return (IUnknown*) &This->lpVtbl;
 }
index 74d036d00eb89e633a57ddfa1e367799ba6b6314..6e7b77ef15522d6f56c51f4ab70f8316b9fe7aac 100644 (file)
@@ -781,7 +781,7 @@ IUnknown* create_comment( xmlNodePtr comment )
     This->lpVtbl = &domcomment_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, comment, (IUnknown*)&This->lpVtbl, NULL);
+    init_xmlnode(&This->node, comment, (IXMLDOMNode*)&This->lpVtbl, NULL);
 
     return (IUnknown*) &This->lpVtbl;
 }
index d1b5b8c32debaeef04c99007c48098b3b0254d75..9ca63d3f6df955ea142e5b39e4297aea3efa820b 100644 (file)
@@ -526,7 +526,7 @@ IUnknown* create_doc_fragment( xmlNodePtr fragment )
     This->lpVtbl = &domfrag_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, fragment, (IUnknown*)&This->lpVtbl, NULL);
+    init_xmlnode(&This->node, fragment, (IXMLDOMNode*)&This->lpVtbl, NULL);
 
     return (IUnknown*) &This->lpVtbl;
 }
index 98045a06ff007ea9d479de0d90c5884830d05650..3f01329b26024358387a0af1bdf69abfd0f9a782 100644 (file)
@@ -2404,7 +2404,7 @@ HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **docu
     doc->safeopt = 0;
     doc->bsc = NULL;
 
-    init_xmlnode(&doc->node, (xmlNodePtr)xmldoc, (IUnknown*)&doc->lpVtbl, &domdoc_dispex);
+    init_xmlnode(&doc->node, (xmlNodePtr)xmldoc, (IXMLDOMNode*)&doc->lpVtbl, &domdoc_dispex);
 
     *document = (IXMLDOMDocument3*)&doc->lpVtbl;
 
index 4c557ef39d0a38ae4b08564d230ad539fb509b0b..5b4a6040346a52fc0a246f4a364d35fbee0d487e 100644 (file)
@@ -801,7 +801,7 @@ IUnknown* create_element( xmlNodePtr element )
     This->lpVtbl = &domelem_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, element, (IUnknown*)&This->lpVtbl, &domelem_dispex);
+    init_xmlnode(&This->node, element, (IXMLDOMNode*)&This->lpVtbl, &domelem_dispex);
 
     return (IUnknown*) &This->lpVtbl;
 }
index f58314156520f2aa8275a47547a89d9331832851..c55fd181e43f832cd8a5a290bb3b9b474c240a15 100644 (file)
@@ -525,7 +525,7 @@ IUnknown* create_doc_entity_ref( xmlNodePtr entity )
     This->lpVtbl = &entityref_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, entity, (IUnknown*)&This->lpVtbl, NULL);
+    init_xmlnode(&This->node, entity, (IXMLDOMNode*)&This->lpVtbl, NULL);
 
     return (IUnknown*) &This->lpVtbl;
 }
index 2210574812e056e2ebf528ce7e96951731344eef..fe843b8a870a03b5ed0e3cbce588fc55749ab11c 100644 (file)
@@ -145,7 +145,7 @@ typedef struct _xmlnode
 {
     DispatchEx dispex;
     const struct IXMLDOMNodeVtbl *lpVtbl;
-    IUnknown *pUnkOuter;
+    IXMLDOMNode *iface;
     LONG ref;
     xmlNodePtr node;
 } xmlnode;
@@ -160,7 +160,7 @@ static inline IXMLDOMNode *IXMLDOMNode_from_impl(xmlnode *This)
     return (IXMLDOMNode*)&This->lpVtbl;
 }
 
-extern void init_xmlnode(xmlnode*,xmlNodePtr,IUnknown*,dispex_static_data_t*);
+extern void init_xmlnode(xmlnode*,xmlNodePtr,IXMLDOMNode*,dispex_static_data_t*);
 extern void destroy_xmlnode(xmlnode*);
 
 extern HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document);
index 2c6df3254a5be68cc5a16f453e4372a082d586af..5b9eee4435a67965b4cb44e5a7e00ceb6087a8a6 100644 (file)
@@ -89,8 +89,8 @@ static HRESULT WINAPI xmlnode_QueryInterface(
 
     TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObject);
 
-    if(This->pUnkOuter)
-        return IUnknown_QueryInterface(This->pUnkOuter, riid, ppvObject);
+    if(This->iface)
+        return IXMLDOMNode_QueryInterface(This->iface, riid, ppvObject);
 
     if (IsEqualGUID(riid, &IID_IUnknown)) {
         *ppvObject = iface;
@@ -112,8 +112,8 @@ static ULONG WINAPI xmlnode_AddRef(
 {
     xmlnode *This = impl_from_IXMLDOMNode( iface );
 
-    if(This->pUnkOuter)
-        return IUnknown_AddRef(This->pUnkOuter);
+    if(This->iface)
+        return IXMLDOMNode_AddRef(This->iface);
 
     return InterlockedIncrement(&This->ref);
 }
@@ -124,8 +124,8 @@ static ULONG WINAPI xmlnode_Release(
     xmlnode *This = impl_from_IXMLDOMNode( iface );
     LONG ref;
 
-    if(This->pUnkOuter)
-        return IUnknown_Release(This->pUnkOuter);
+    if(This->iface)
+        return IXMLDOMNode_Release(This->iface);
 
     ref = InterlockedDecrement( &This->ref );
     if(!ref) {
@@ -1713,7 +1713,7 @@ void destroy_xmlnode(xmlnode *This)
         xmldoc_release(This->node->doc);
 }
 
-void init_xmlnode(xmlnode *This, xmlNodePtr node, IUnknown *outer, dispex_static_data_t *dispex_data )
+void init_xmlnode(xmlnode *This, xmlNodePtr node, IXMLDOMNode *node_iface, dispex_static_data_t *dispex_data)
 {
     if(node)
         xmldoc_add_ref( node->doc );
@@ -1721,10 +1721,10 @@ void init_xmlnode(xmlnode *This, xmlNodePtr node, IUnknown *outer, dispex_static
     This->lpVtbl = &xmlnode_vtbl;
     This->ref = 1;
     This->node = node;
-    This->pUnkOuter = outer;
+    This->iface = node_iface;
 
     if(dispex_data)
-        init_dispex(&This->dispex, This->pUnkOuter, dispex_data);
+        init_dispex(&This->dispex, (IUnknown*)This->iface, dispex_data);
 }
 
 IXMLDOMNode *create_node( xmlNodePtr node )
index 4a5e6219857aad76b11e53602ac85649bf67a20d..2c70cc7a398c2c153f03aad2b9533ad4090c5dc0 100644 (file)
@@ -611,7 +611,7 @@ IUnknown* create_pi( xmlNodePtr pi )
     This->lpVtbl = &dom_pi_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, pi, (IUnknown*)&This->lpVtbl, NULL);
+    init_xmlnode(&This->node, pi, (IXMLDOMNode*)&This->lpVtbl, NULL);
 
     return (IUnknown*) &This->lpVtbl;
 }
index a087076900f8d642b468bcbfd76a261ceca5d4af..d3da258f76cca8ac4babadb03604fcd017a105fa 100644 (file)
@@ -811,7 +811,7 @@ IUnknown* create_text( xmlNodePtr text )
     This->lpVtbl = &domtext_vtbl;
     This->ref = 1;
 
-    init_xmlnode(&This->node, text, (IUnknown*)&This->lpVtbl, NULL);
+    init_xmlnode(&This->node, text, (IXMLDOMNode*)&This->lpVtbl, NULL);
 
     return (IUnknown*) &This->lpVtbl;
 }