Michael Karcher : msxml3: Text node should not aggregate element.
Alexandre Julliard
julliard at winehq.org
Fri Oct 10 08:06:28 CDT 2008
Module: wine
Branch: master
Commit: 9fe98546e44719684102f1d39ae7197a6cee3960
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9fe98546e44719684102f1d39ae7197a6cee3960
Author: Michael Karcher <wine at mkarcher.dialup.fu-berlin.de>
Date: Thu Oct 9 15:36:14 2008 +0200
msxml3: Text node should not aggregate element.
---
dlls/msxml3/tests/domdoc.c | 3 +++
dlls/msxml3/text.c | 17 ++++++++---------
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 9bc1469..15a60e5 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -559,6 +559,9 @@ static void test_domdoc( void )
{
IXMLDOMNamedNodeMap *pAttribs;
+ r = IXMLDOMText_QueryInterface(nodetext, &IID_IXMLDOMElement, (LPVOID*)&element);
+ ok(r == E_NOINTERFACE, "ret %08x\n", r );
+
/* Text Last Child Checks */
r = IXMLDOMText_get_lastChild(nodetext, NULL);
ok(r == E_INVALIDARG, "ret %08x\n", r );
diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c
index 59b6bfe..7cb1d42 100644
--- a/dlls/msxml3/text.c
+++ b/dlls/msxml3/text.c
@@ -42,7 +42,7 @@ typedef struct _domtext
{
const struct IXMLDOMTextVtbl *lpVtbl;
LONG ref;
- IUnknown *element_unk;
+ IUnknown *node_unk;
IXMLDOMNode *node;
} domtext;
@@ -66,10 +66,9 @@ static HRESULT WINAPI domtext_QueryInterface(
{
*ppvObject = iface;
}
- else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) ||
- IsEqualGUID( riid, &IID_IXMLDOMElement ) )
+ else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->element_unk, riid, ppvObject);
+ return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
}
else
{
@@ -98,7 +97,7 @@ static ULONG WINAPI domtext_Release(
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->element_unk );
+ IUnknown_Release( This->node_unk );
HeapFree( GetProcessHeap(), 0, This );
}
@@ -773,17 +772,17 @@ IUnknown* create_text( xmlNodePtr text )
This->lpVtbl = &domtext_vtbl;
This->ref = 1;
- This->element_unk = create_element( text, (IUnknown*)&This->lpVtbl );
- if(!This->element_unk)
+ This->node_unk = create_basic_node( text, (IUnknown*)&This->lpVtbl );
+ if(!This->node_unk)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- hr = IUnknown_QueryInterface(This->element_unk, &IID_IXMLDOMNode, (LPVOID*)&This->node);
+ hr = IUnknown_QueryInterface(This->node_unk, &IID_IXMLDOMNode, (LPVOID*)&This->node);
if(FAILED(hr))
{
- IUnknown_Release(This->element_unk);
+ IUnknown_Release(This->node_unk);
HeapFree( GetProcessHeap(), 0, This );
return NULL;
}
More information about the wine-cvs
mailing list