{
const struct IXMLDOMAttributeVtbl *lpVtbl;
LONG ref;
- IUnknown *node_unk;
- IXMLDOMNode *node;
+ xmlnode *node;
} domattr;
static inline domattr *impl_from_IXMLDOMAttribute( IXMLDOMAttribute *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
+ *ppvObject = IXMLDOMNode_from_impl(This->node);
}
else
{
return E_NOINTERFACE;
}
- IXMLDOMAttribute_AddRef( iface );
-
+ IXMLDOMText_AddRef((IUnknown*)*ppvObject);
return S_OK;
}
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->node_unk );
+ destroy_xmlnode(This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_get_nodeValue(
VARIANT* var1 )
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domattr_put_nodeValue(
VARIANT var1 )
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domattr_get_nodeType(
DOMNodeType* domNodeType )
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeType( This->node, domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
}
static HRESULT WINAPI domattr_get_parentNode(
IXMLDOMNode** parent )
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_parentNode( This->node, parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
}
static HRESULT WINAPI domattr_get_childNodes(
IXMLDOMNodeList** outList)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_childNodes( This->node, outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
}
static HRESULT WINAPI domattr_get_firstChild(
IXMLDOMNode** domNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_firstChild( This->node, domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domattr_get_lastChild(
IXMLDOMNode** domNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_lastChild( This->node, domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domattr_get_previousSibling(
IXMLDOMNode** domNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_previousSibling( This->node, domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domattr_get_nextSibling(
IXMLDOMNode** domNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nextSibling( This->node, domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domattr_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_attributes( This->node, attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
}
static HRESULT WINAPI domattr_insertBefore(
IXMLDOMNode** outOldNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_insertBefore( This->node, newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI domattr_replaceChild(
IXMLDOMNode** outOldNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_replaceChild( This->node, newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI domattr_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_removeChild( This->node, domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
}
static HRESULT WINAPI domattr_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_appendChild( This->node, newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
}
static HRESULT WINAPI domattr_hasChildNodes(
VARIANT_BOOL* pbool)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_hasChildNodes( This->node, pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domattr_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_ownerDocument( This->node, domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
}
static HRESULT WINAPI domattr_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_cloneNode( This->node, pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
}
static HRESULT WINAPI domattr_get_nodeTypeString(
BSTR* p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeTypeString( This->node, p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_get_text(
BSTR* p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_text( This->node, p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_put_text(
BSTR p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_put_text( This->node, p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_get_specified(
VARIANT_BOOL* pbool)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_specified( This->node, pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domattr_get_definition(
IXMLDOMNode** domNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_definition( This->node, domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domattr_get_nodeTypedValue(
VARIANT* var1)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domattr_put_nodeTypedValue(
VARIANT var1)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_put_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domattr_get_dataType(
VARIANT* var1)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_dataType( This->node, var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domattr_put_dataType(
BSTR p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_put_dataType( This->node, p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_get_xml(
BSTR* p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_xml( This->node, p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_transformNode( This->node, domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
}
static HRESULT WINAPI domattr_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_selectNodes( This->node, p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
}
static HRESULT WINAPI domattr_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_selectSingleNode( This->node, p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
}
static HRESULT WINAPI domattr_get_parsed(
VARIANT_BOOL* pbool)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_parsed( This->node, pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domattr_get_namespaceURI(
BSTR* p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_namespaceURI( This->node, p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_get_prefix(
BSTR* p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_prefix( This->node, p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_get_baseName(
BSTR* p)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_baseName( This->node, p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_transformNodeToObject( This->node, domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
}
static HRESULT WINAPI domattr_get_name(
{
/* name property returns the same value as nodeName */
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domattr_get_value(
VARIANT *var1)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domattr_put_value(
VARIANT var1)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static const struct IXMLDOMAttributeVtbl domattr_vtbl =
IUnknown* create_attribute( xmlNodePtr attribute )
{
domattr *This;
- xmlnode *node;
This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
if ( !This )
This->lpVtbl = &domattr_vtbl;
This->ref = 1;
- node = create_basic_node( attribute, (IUnknown*)&This->lpVtbl, NULL );
- if(!node)
+ This->node = create_basic_node( attribute, (IUnknown*)&This->lpVtbl, NULL );
+ if(!This->node)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- This->node_unk = (IUnknown*)&node->lpInternalUnkVtbl;
- This->node = IXMLDOMNode_from_impl(node);
-
return (IUnknown*) &This->lpVtbl;
}
{
const struct IXMLDOMCDATASectionVtbl *lpVtbl;
LONG ref;
- IUnknown *node_unk;
- IXMLDOMNode *node;
+ xmlnode *node;
} domcdata;
static inline domcdata *impl_from_IXMLDOMCDATASection( IXMLDOMCDATASection *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
+ *ppvObject = IXMLDOMNode_from_impl(This->node);
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMText ) ||
IsEqualGUID( riid, &IID_IXMLDOMElement ) )
return E_NOINTERFACE;
}
- IXMLDOMCDATASection_AddRef( iface );
-
+ IXMLDOMText_AddRef((IUnknown*)*ppvObject);
return S_OK;
}
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->node_unk );
+ destroy_xmlnode(This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_get_nodeValue(
VARIANT* var1 )
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcdata_put_nodeValue(
VARIANT var1 )
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcdata_get_nodeType(
DOMNodeType* domNodeType )
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_nodeType( This->node, domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
}
static HRESULT WINAPI domcdata_get_parentNode(
IXMLDOMNode** parent )
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_parentNode( This->node, parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
}
static HRESULT WINAPI domcdata_get_childNodes(
IXMLDOMNodeList** outList)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_childNodes( This->node, outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
}
static HRESULT WINAPI domcdata_get_firstChild(
IXMLDOMNode** domNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_firstChild( This->node, domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcdata_get_lastChild(
IXMLDOMNode** domNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_lastChild( This->node, domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcdata_get_previousSibling(
IXMLDOMNode** domNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_previousSibling( This->node, domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcdata_get_nextSibling(
IXMLDOMNode** domNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_nextSibling( This->node, domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcdata_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_attributes( This->node, attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
}
static HRESULT WINAPI domcdata_insertBefore(
IXMLDOMNode** outOldNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_insertBefore( This->node, newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI domcdata_replaceChild(
IXMLDOMNode** outOldNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_replaceChild( This->node, newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI domcdata_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_removeChild( This->node, domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
}
static HRESULT WINAPI domcdata_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_appendChild( This->node, newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
}
static HRESULT WINAPI domcdata_hasChildNodes(
VARIANT_BOOL* pbool)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_hasChildNodes( This->node, pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domcdata_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_ownerDocument( This->node, domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
}
static HRESULT WINAPI domcdata_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_cloneNode( This->node, pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
}
static HRESULT WINAPI domcdata_get_nodeTypeString(
BSTR* p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_nodeTypeString( This->node, p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_get_text(
BSTR* p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_text( This->node, p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_put_text(
BSTR p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_put_text( This->node, p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_get_specified(
VARIANT_BOOL* pbool)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_specified( This->node, pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domcdata_get_definition(
IXMLDOMNode** domNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_definition( This->node, domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcdata_get_nodeTypedValue(
VARIANT* var1)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcdata_put_nodeTypedValue(
VARIANT var1)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_put_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcdata_get_dataType(
VARIANT* var1)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_dataType( This->node, var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcdata_put_dataType(
BSTR p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_put_dataType( This->node, p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_get_xml(
BSTR* p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_xml( This->node, p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_transformNode( This->node, domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
}
static HRESULT WINAPI domcdata_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_selectNodes( This->node, p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
}
static HRESULT WINAPI domcdata_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_selectSingleNode( This->node, p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
}
static HRESULT WINAPI domcdata_get_parsed(
VARIANT_BOOL* pbool)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_parsed( This->node, pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domcdata_get_namespaceURI(
BSTR* p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_namespaceURI( This->node, p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_get_prefix(
BSTR* p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_prefix( This->node, p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_get_baseName(
BSTR* p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_baseName( This->node, p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcdata_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_transformNodeToObject( This->node, domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
}
static HRESULT WINAPI domcdata_get_data(
if(!p)
return E_INVALIDARG;
- hr = IXMLDOMNode_get_nodeValue( This->node, &vRet );
+ hr = IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), &vRet );
if(hr == S_OK)
{
*p = V_BSTR(&vRet);
V_VT(&val) = VT_BSTR;
V_BSTR(&val) = data;
- hr = IXMLDOMNode_put_nodeValue( This->node, val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), val );
return hr;
}
LONG *len)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
LONG nLength = 0;
if(!len)
return E_INVALIDARG;
- pContent = xmlNodeGetContent(pDOMNode->node);
+ pContent = xmlNodeGetContent(This->node->node);
if(pContent)
{
nLength = xmlStrlen(pContent);
LONG offset, LONG count, BSTR *p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
LONG nLength = 0;
HRESULT hr = S_FALSE;
if(count == 0)
return hr;
- pContent = xmlNodeGetContent(pDOMNode->node);
+ pContent = xmlNodeGetContent(This->node->node);
if(pContent)
{
nLength = xmlStrlen(pContent);
BSTR p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
HRESULT hr = S_FALSE;
pContent = xmlChar_from_wchar( p );
if(pContent)
{
- if(xmlTextConcat(pDOMNode->node, pContent, SysStringLen(p) ) == 0)
+ if(xmlTextConcat(This->node->node, pContent, SysStringLen(p) ) == 0)
hr = S_OK;
else
hr = E_FAIL;
LONG offset, BSTR p)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pXmlContent;
BSTR sNewString;
HRESULT hr = S_FALSE;
return E_INVALIDARG;
}
- pXmlContent = xmlNodeGetContent(pDOMNode->node);
+ pXmlContent = xmlNodeGetContent(This->node->node);
if(pXmlContent)
{
BSTR sContent = bstr_from_xmlChar( pXmlContent );
str = xmlChar_from_wchar(sNewString);
if(str)
{
- xmlNodeSetContent(pDOMNode->node, str);
+ xmlNodeSetContent(This->node->node, str);
hr = S_OK;
}
HeapFree(GetProcessHeap(), 0, str);
IUnknown* create_cdata( xmlNodePtr text )
{
domcdata *This;
- xmlnode *node;
This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
if ( !This )
This->lpVtbl = &domcdata_vtbl;
This->ref = 1;
- node = create_basic_node( text, (IUnknown*)&This->lpVtbl, NULL );
- if(!node)
+ This->node = create_basic_node( text, (IUnknown*)&This->lpVtbl, NULL );
+ if(!This->node)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- This->node_unk = (IUnknown*)&node->lpInternalUnkVtbl;
- This->node = IXMLDOMNode_from_impl(node);
-
return (IUnknown*) &This->lpVtbl;
}
{
const struct IXMLDOMCommentVtbl *lpVtbl;
LONG ref;
- IUnknown *node_unk;
- IXMLDOMNode *node;
+ xmlnode *node;
} domcomment;
static inline domcomment *impl_from_IXMLDOMComment( IXMLDOMComment *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
+ *ppvObject = IXMLDOMNode_from_impl(This->node);
}
else
{
return E_NOINTERFACE;
}
- IXMLDOMComment_AddRef( iface );
-
+ IXMLDOMText_AddRef((IUnknown*)*ppvObject);
return S_OK;
}
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->node_unk );
+ destroy_xmlnode(This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_get_nodeValue(
VARIANT* var1 )
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcomment_put_nodeValue(
VARIANT var1 )
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcomment_get_nodeType(
DOMNodeType* domNodeType )
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_nodeType( This->node, domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
}
static HRESULT WINAPI domcomment_get_parentNode(
IXMLDOMNode** parent )
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_parentNode( This->node, parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
}
static HRESULT WINAPI domcomment_get_childNodes(
IXMLDOMNodeList** outList)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_childNodes( This->node, outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
}
static HRESULT WINAPI domcomment_get_firstChild(
IXMLDOMNode** domNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_firstChild( This->node, domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcomment_get_lastChild(
IXMLDOMNode** domNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_lastChild( This->node, domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcomment_get_previousSibling(
IXMLDOMNode** domNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_previousSibling( This->node, domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcomment_get_nextSibling(
IXMLDOMNode** domNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_nextSibling( This->node, domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcomment_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_attributes( This->node, attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
}
static HRESULT WINAPI domcomment_insertBefore(
IXMLDOMNode** outOldNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_insertBefore( This->node, newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI domcomment_replaceChild(
IXMLDOMNode** outOldNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_replaceChild( This->node, newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI domcomment_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_removeChild( This->node, domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
}
static HRESULT WINAPI domcomment_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_appendChild( This->node, newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
}
static HRESULT WINAPI domcomment_hasChildNodes(
VARIANT_BOOL* pbool)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_hasChildNodes( This->node, pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domcomment_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_ownerDocument( This->node, domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
}
static HRESULT WINAPI domcomment_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_cloneNode( This->node, pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
}
static HRESULT WINAPI domcomment_get_nodeTypeString(
BSTR* p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_nodeTypeString( This->node, p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_get_text(
BSTR* p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_text( This->node, p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_put_text(
BSTR p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_put_text( This->node, p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_get_specified(
VARIANT_BOOL* pbool)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_specified( This->node, pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domcomment_get_definition(
IXMLDOMNode** domNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_definition( This->node, domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domcomment_get_nodeTypedValue(
VARIANT* var1)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcomment_put_nodeTypedValue(
VARIANT var1)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_put_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcomment_get_dataType(
VARIANT* var1)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_dataType( This->node, var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domcomment_put_dataType(
BSTR p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_put_dataType( This->node, p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_get_xml(
BSTR* p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_xml( This->node, p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_transformNode( This->node, domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
}
static HRESULT WINAPI domcomment_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_selectNodes( This->node, p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
}
static HRESULT WINAPI domcomment_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_selectSingleNode( This->node, p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
}
static HRESULT WINAPI domcomment_get_parsed(
VARIANT_BOOL* pbool)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_parsed( This->node, pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domcomment_get_namespaceURI(
BSTR* p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_namespaceURI( This->node, p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_get_prefix(
BSTR* p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_prefix( This->node, p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_get_baseName(
BSTR* p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_baseName( This->node, p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domcomment_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_transformNodeToObject( This->node, domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
}
static HRESULT WINAPI domcomment_get_data(
if(!p)
return E_INVALIDARG;
- hr = IXMLDOMNode_get_nodeValue( This->node, &vRet );
+ hr = IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), &vRet );
if(hr == S_OK)
{
*p = V_BSTR(&vRet);
V_VT(&val) = VT_BSTR;
V_BSTR(&val) = data;
- hr = IXMLDOMNode_put_nodeValue( This->node, val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), val );
return hr;
}
LONG *len)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
LONG nLength = 0;
if(!len)
return E_INVALIDARG;
- pContent = xmlNodeGetContent(pDOMNode->node);
+ pContent = xmlNodeGetContent(This->node->node);
if(pContent)
{
nLength = xmlStrlen(pContent);
LONG offset, LONG count, BSTR *p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
LONG nLength = 0;
HRESULT hr = S_FALSE;
if(count == 0)
return hr;
- pContent = xmlNodeGetContent(pDOMNode->node);
+ pContent = xmlNodeGetContent(This->node->node);
if(pContent)
{
nLength = xmlStrlen(pContent);
BSTR p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
HRESULT hr = S_FALSE;
xmlTextConcat on Comment nodes. Fallback to setting the
contents directly if xmlTextConcat fails.
*/
- if(xmlTextConcat(pDOMNode->node, pContent, SysStringLen(p) ) == 0)
+ if(xmlTextConcat(This->node->node, pContent, SysStringLen(p) ) == 0)
hr = S_OK;
else
{
xmlChar *pNew;
- pNew = xmlStrcat(xmlNodeGetContent(pDOMNode->node), pContent);
+ pNew = xmlStrcat(xmlNodeGetContent(This->node->node), pContent);
if(pNew)
{
- xmlNodeSetContent(pDOMNode->node, pNew);
+ xmlNodeSetContent(This->node->node, pNew);
hr = S_OK;
}
else
LONG offset, BSTR p)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pXmlContent;
BSTR sNewString;
HRESULT hr = S_FALSE;
return E_INVALIDARG;
}
- pXmlContent = xmlNodeGetContent(pDOMNode->node);
+ pXmlContent = xmlNodeGetContent(This->node->node);
if(pXmlContent)
{
BSTR sContent = bstr_from_xmlChar( pXmlContent );
str = xmlChar_from_wchar(sNewString);
if(str)
{
- xmlNodeSetContent(pDOMNode->node, str);
+ xmlNodeSetContent(This->node->node, str);
hr = S_OK;
}
HeapFree( GetProcessHeap(), 0, str );
IUnknown* create_comment( xmlNodePtr comment )
{
domcomment *This;
- xmlnode *node;
This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
if ( !This )
This->lpVtbl = &domcomment_vtbl;
This->ref = 1;
- node = create_basic_node( comment, (IUnknown*)&This->lpVtbl, NULL );
- if(!node)
+ This->node = create_basic_node( comment, (IUnknown*)&This->lpVtbl, NULL );
+ if(!This->node)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- This->node_unk = (IUnknown*)&node->lpInternalUnkVtbl;
- This->node = IXMLDOMNode_from_impl(node);
-
return (IUnknown*) &This->lpVtbl;
}
{
const struct IXMLDOMDocumentFragmentVtbl *lpVtbl;
LONG ref;
- IUnknown *node_unk;
- IXMLDOMNode *node;
+ xmlnode *node;
} domfrag;
static inline domfrag *impl_from_IXMLDOMDocumentFragment( IXMLDOMDocumentFragment *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
+ *ppvObject = IXMLDOMNode_from_impl(This->node);
}
else
{
return E_NOINTERFACE;
}
- IXMLDOMDocumentFragment_AddRef( iface );
-
+ IXMLDOMText_AddRef((IUnknown*)*ppvObject);
return S_OK;
}
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->node_unk );
+ destroy_xmlnode(This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_get_nodeValue(
VARIANT* var1 )
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domfrag_put_nodeValue(
VARIANT var1 )
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domfrag_get_nodeType(
DOMNodeType* domNodeType )
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_nodeType( This->node, domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
}
static HRESULT WINAPI domfrag_get_parentNode(
IXMLDOMNode** parent )
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_parentNode( This->node, parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
}
static HRESULT WINAPI domfrag_get_childNodes(
IXMLDOMNodeList** outList)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_childNodes( This->node, outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
}
static HRESULT WINAPI domfrag_get_firstChild(
IXMLDOMNode** domNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_firstChild( This->node, domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domfrag_get_lastChild(
IXMLDOMNode** domNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_lastChild( This->node, domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domfrag_get_previousSibling(
IXMLDOMNode** domNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_previousSibling( This->node, domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domfrag_get_nextSibling(
IXMLDOMNode** domNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_nextSibling( This->node, domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domfrag_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_attributes( This->node, attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
}
static HRESULT WINAPI domfrag_insertBefore(
IXMLDOMNode** outOldNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_insertBefore( This->node, newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI domfrag_replaceChild(
IXMLDOMNode** outOldNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_replaceChild( This->node, newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI domfrag_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_removeChild( This->node, domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
}
static HRESULT WINAPI domfrag_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_appendChild( This->node, newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
}
static HRESULT WINAPI domfrag_hasChildNodes(
VARIANT_BOOL* pbool)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_hasChildNodes( This->node, pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domfrag_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_ownerDocument( This->node, domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
}
static HRESULT WINAPI domfrag_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_cloneNode( This->node, pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
}
static HRESULT WINAPI domfrag_get_nodeTypeString(
BSTR* p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_nodeTypeString( This->node, p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_get_text(
BSTR* p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_text( This->node, p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_put_text(
BSTR p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_put_text( This->node, p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_get_specified(
VARIANT_BOOL* pbool)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_specified( This->node, pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domfrag_get_definition(
IXMLDOMNode** domNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_definition( This->node, domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domfrag_get_nodeTypedValue(
VARIANT* var1)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domfrag_put_nodeTypedValue(
VARIANT var1)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_put_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domfrag_get_dataType(
VARIANT* var1)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_dataType( This->node, var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domfrag_put_dataType(
BSTR p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_put_dataType( This->node, p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_get_xml(
BSTR* p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_xml( This->node, p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_transformNode( This->node, domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
}
static HRESULT WINAPI domfrag_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_selectNodes( This->node, p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
}
static HRESULT WINAPI domfrag_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_selectSingleNode( This->node, p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
}
static HRESULT WINAPI domfrag_get_parsed(
VARIANT_BOOL* pbool)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_parsed( This->node, pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domfrag_get_namespaceURI(
BSTR* p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_namespaceURI( This->node, p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_get_prefix(
BSTR* p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_prefix( This->node, p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_get_baseName(
BSTR* p)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_baseName( This->node, p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domfrag_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_transformNodeToObject( This->node, domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
}
static const struct IXMLDOMDocumentFragmentVtbl domfrag_vtbl =
IUnknown* create_doc_fragment( xmlNodePtr fragment )
{
domfrag *This;
- xmlnode *node;
This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
if ( !This )
This->lpVtbl = &domfrag_vtbl;
This->ref = 1;
- node = create_basic_node( fragment, (IUnknown*)&This->lpVtbl, NULL );
- if(!node)
+ This->node = create_basic_node( fragment, (IUnknown*)&This->lpVtbl, NULL );
+ if(!This->node)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- This->node_unk = (IUnknown*)&node->lpInternalUnkVtbl;
- This->node = IXMLDOMNode_from_impl(node);
-
return (IUnknown*) &This->lpVtbl;
}
if (This->site)
IUnknown_Release( This->site );
- IXMLDOMNode_Release(IXMLDOMNode_from_impl(This->node));
+ destroy_xmlnode(This->node);
if(This->schema) IXMLDOMSchemaCollection_Release( This->schema );
if (This->stream) IStream_Release(This->stream);
HeapFree( GetProcessHeap(), 0, This );
TRACE("(%p) ref=%d\n", This, ref);
if(!ref) {
- IXMLDOMNode_Release(IXMLDOMNode_from_impl(This->node));
+ destroy_xmlnode(This->node);
heap_free(This);
}
{
const struct IXMLDOMEntityReferenceVtbl *lpVtbl;
LONG ref;
- IUnknown *node_unk;
- IXMLDOMNode *node;
+ xmlnode *node;
} entityref;
static inline entityref *impl_from_IXMLDOMEntityReference( IXMLDOMEntityReference *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
+ *ppvObject = IXMLDOMNode_from_impl(This->node);
}
else
{
return E_NOINTERFACE;
}
- IXMLDOMEntityReference_AddRef( iface );
-
+ IUnknown_AddRef((IUnknown*)*ppvObject);
return S_OK;
}
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->node_unk );
+ destroy_xmlnode(This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_get_nodeValue(
VARIANT* var1 )
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI entityref_put_nodeValue(
VARIANT var1 )
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI entityref_get_nodeType(
DOMNodeType* domNodeType )
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_nodeType( This->node, domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
}
static HRESULT WINAPI entityref_get_parentNode(
IXMLDOMNode** parent )
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_parentNode( This->node, parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
}
static HRESULT WINAPI entityref_get_childNodes(
IXMLDOMNodeList** outList)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_childNodes( This->node, outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
}
static HRESULT WINAPI entityref_get_firstChild(
IXMLDOMNode** domNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_firstChild( This->node, domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI entityref_get_lastChild(
IXMLDOMNode** domNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_lastChild( This->node, domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI entityref_get_previousSibling(
IXMLDOMNode** domNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_previousSibling( This->node, domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI entityref_get_nextSibling(
IXMLDOMNode** domNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_nextSibling( This->node, domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI entityref_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_attributes( This->node, attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
}
static HRESULT WINAPI entityref_insertBefore(
IXMLDOMNode** outOldNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_insertBefore( This->node, newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI entityref_replaceChild(
IXMLDOMNode** outOldNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_replaceChild( This->node, newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI entityref_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_removeChild( This->node, domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
}
static HRESULT WINAPI entityref_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_appendChild( This->node, newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
}
static HRESULT WINAPI entityref_hasChildNodes(
VARIANT_BOOL* pbool)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_hasChildNodes( This->node, pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI entityref_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_ownerDocument( This->node, domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
}
static HRESULT WINAPI entityref_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_cloneNode( This->node, pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
}
static HRESULT WINAPI entityref_get_nodeTypeString(
BSTR* p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_nodeTypeString( This->node, p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_get_text(
BSTR* p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_text( This->node, p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_put_text(
BSTR p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_put_text( This->node, p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_get_specified(
VARIANT_BOOL* pbool)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_specified( This->node, pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI entityref_get_definition(
IXMLDOMNode** domNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_definition( This->node, domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI entityref_get_nodeTypedValue(
VARIANT* var1)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI entityref_put_nodeTypedValue(
VARIANT var1)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_put_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI entityref_get_dataType(
VARIANT* var1)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_dataType( This->node, var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI entityref_put_dataType(
BSTR p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_put_dataType( This->node, p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_get_xml(
BSTR* p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_xml( This->node, p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_transformNode( This->node, domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
}
static HRESULT WINAPI entityref_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_selectNodes( This->node, p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
}
static HRESULT WINAPI entityref_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_selectSingleNode( This->node, p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
}
static HRESULT WINAPI entityref_get_parsed(
VARIANT_BOOL* pbool)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_parsed( This->node, pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI entityref_get_namespaceURI(
BSTR* p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_namespaceURI( This->node, p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_get_prefix(
BSTR* p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_prefix( This->node, p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_get_baseName(
BSTR* p)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_baseName( This->node, p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI entityref_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_transformNodeToObject( This->node, domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
}
static const struct IXMLDOMEntityReferenceVtbl entityref_vtbl =
IUnknown* create_doc_entity_ref( xmlNodePtr entity )
{
entityref *This;
- xmlnode *node;
This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
if ( !This )
This->lpVtbl = &entityref_vtbl;
This->ref = 1;
- node = create_basic_node( entity, (IUnknown*)&This->lpVtbl, NULL );
- if(!node)
+ This->node = create_basic_node( entity, (IUnknown*)&This->lpVtbl, NULL );
+ if(!This->node)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- This->node_unk = (IUnknown*)&node->lpInternalUnkVtbl;
- This->node = IXMLDOMNode_from_impl(node);
-
return (IUnknown*) &This->lpVtbl;
}
extern IUnknown *create_cdata( xmlNodePtr text );
extern IXMLDOMNodeList *create_children_nodelist( xmlNodePtr );
extern IXMLDOMNamedNodeMap *create_nodemap( IXMLDOMNode *node );
-extern IUnknown *create_doc_Implementation();
+extern IUnknown *create_doc_Implementation(void);
extern IUnknown *create_doc_fragment( xmlNodePtr fragment );
extern IUnknown *create_doc_entity_ref( xmlNodePtr entity );
{
DispatchEx dispex;
const struct IXMLDOMNodeVtbl *lpVtbl;
- const struct IUnknownVtbl *lpInternalUnkVtbl;
IUnknown *pUnkOuter;
LONG ref;
xmlNodePtr node;
}
extern xmlnode *create_basic_node(xmlNodePtr,IUnknown*,dispex_static_data_t*);
+extern void destroy_xmlnode(xmlnode*);
extern HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument2 **document);
static const WCHAR szUUID[] = {'u','u','i','d',0};
static const WCHAR szBinHex[] = {'b','i','n','.','h','e','x',0};
-static inline xmlnode *impl_from_InternalUnknown( IUnknown *iface )
-{
- return (xmlnode *)((char*)iface - FIELD_OFFSET(xmlnode, lpInternalUnkVtbl));
-}
-
xmlNodePtr xmlNodePtr_from_domnode( IXMLDOMNode *iface, xmlElementType type )
{
xmlnode *This;
void** ppvObject )
{
xmlnode *This = impl_from_IXMLDOMNode( iface );
+
TRACE("%p %s %p\n", This, debugstr_guid(riid), ppvObject);
- return IUnknown_QueryInterface(This->pUnkOuter, riid, ppvObject);
+ if(This->pUnkOuter)
+ return IUnknown_QueryInterface(This->pUnkOuter, riid, ppvObject);
+
+ if (IsEqualGUID(riid, &IID_IUnknown)) {
+ *ppvObject = iface;
+ }else if (IsEqualGUID( riid, &IID_IDispatch) ||
+ IsEqualGUID( riid, &IID_IXMLDOMNode)) {
+ *ppvObject = &This->lpVtbl;
+ }else {
+ FIXME("interface %s not implemented\n", debugstr_guid(riid));
+ *ppvObject = NULL;
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef( (IUnknown*)*ppvObject );
+ return S_OK;
}
static ULONG WINAPI xmlnode_AddRef(
IXMLDOMNode *iface )
{
xmlnode *This = impl_from_IXMLDOMNode( iface );
- return IUnknown_AddRef(This->pUnkOuter);
+
+ if(This->pUnkOuter)
+ return IUnknown_AddRef(This->pUnkOuter);
+
+ return InterlockedIncrement(&This->ref);
}
static ULONG WINAPI xmlnode_Release(
IXMLDOMNode *iface )
{
xmlnode *This = impl_from_IXMLDOMNode( iface );
- return IUnknown_Release(This->pUnkOuter);
+ LONG ref;
+
+ if(This->pUnkOuter)
+ return IUnknown_Release(This->pUnkOuter);
+
+ ref = InterlockedDecrement( &This->ref );
+ if(!ref)
+ destroy_xmlnode(This);
+
+ return ref;
}
static HRESULT WINAPI xmlnode_GetTypeInfoCount(
xmlnode_transformNodeToObject,
};
-static HRESULT WINAPI Internal_QueryInterface(
- IUnknown *iface,
- REFIID riid,
- void** ppvObject )
+void destroy_xmlnode(xmlnode *This)
{
- xmlnode *This = impl_from_InternalUnknown( iface );
-
- TRACE("%p %s %p\n", iface, debugstr_guid(riid), ppvObject);
-
-
- if ( IsEqualGUID( riid, &IID_IUnknown ))
- *ppvObject = iface;
- else if ( IsEqualGUID( riid, &IID_IDispatch ) ||
- IsEqualGUID( riid, &IID_IXMLDOMNode ) )
- *ppvObject = &This->lpVtbl;
- else
- {
- FIXME("interface %s not implemented\n", debugstr_guid(riid));
- *ppvObject = NULL;
- return E_NOINTERFACE;
- }
-
- IUnknown_AddRef( (IUnknown*)*ppvObject );
-
- return S_OK;
-}
-
-static ULONG WINAPI Internal_AddRef(
- IUnknown *iface )
-{
- xmlnode *This = impl_from_InternalUnknown( iface );
- return InterlockedIncrement( &This->ref );
+ if(This->node)
+ xmldoc_release(This->node->doc);
+ HeapFree( GetProcessHeap(), 0, This );
}
-static ULONG WINAPI Internal_Release(
- IUnknown *iface )
-{
- xmlnode *This = impl_from_InternalUnknown( iface );
- ULONG ref;
-
- ref = InterlockedDecrement( &This->ref );
- if ( ref == 0 )
- {
- if( This->node )
- xmldoc_release( This->node->doc );
- HeapFree( GetProcessHeap(), 0, This );
- }
-
- return ref;
-}
-
-static const struct IUnknownVtbl internal_unk_vtbl =
-{
- Internal_QueryInterface,
- Internal_AddRef,
- Internal_Release
-};
-
xmlnode *create_basic_node( xmlNodePtr node, IUnknown *pUnkOuter, dispex_static_data_t *dispex_data )
{
xmlnode *This;
xmldoc_add_ref( node->doc );
This->lpVtbl = &xmlnode_vtbl;
- This->lpInternalUnkVtbl = &internal_unk_vtbl;
if(pUnkOuter)
This->pUnkOuter = pUnkOuter; /* Don't take a ref on outer Unknown */
else
- This->pUnkOuter = (IUnknown *)&This->lpInternalUnkVtbl;
+ This->pUnkOuter = NULL;
if(dispex_data)
init_dispex(&This->dispex, This->pUnkOuter, dispex_data);
break;
default:
FIXME("only creating basic node for type %d\n", node->type);
- pUnk = (IUnknown*)&create_basic_node( node, NULL, NULL )->lpInternalUnkVtbl;
+ pUnk = (IUnknown*)&create_basic_node( node, NULL, NULL )->lpVtbl;
}
hr = IUnknown_QueryInterface(pUnk, &IID_IXMLDOMNode, (LPVOID*)&ret);
{
const struct IXMLDOMProcessingInstructionVtbl *lpVtbl;
LONG ref;
- IUnknown *node_unk;
- IXMLDOMNode *node;
+ xmlnode *node;
} dom_pi;
static inline dom_pi *impl_from_IXMLDOMProcessingInstruction( IXMLDOMProcessingInstruction *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
+ *ppvObject = IXMLDOMNode_from_impl(This->node);
}
else
{
return E_NOINTERFACE;
}
- IXMLDOMProcessingInstruction_AddRef( iface );
-
+ IUnknown_AddRef((IUnknown*)*ppvObject);
return S_OK;
}
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->node_unk );
+ destroy_xmlnode(This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_get_nodeValue(
VARIANT* var1 )
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI dom_pi_put_nodeValue(
SysFreeString(sTarget);
}
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI dom_pi_get_nodeType(
DOMNodeType* domNodeType )
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nodeType( This->node, domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
}
static HRESULT WINAPI dom_pi_get_parentNode(
IXMLDOMNode** parent )
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_parentNode( This->node, parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
}
static HRESULT WINAPI dom_pi_get_childNodes(
IXMLDOMNodeList** outList)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_childNodes( This->node, outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
}
static HRESULT WINAPI dom_pi_get_firstChild(
IXMLDOMNode** domNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_firstChild( This->node, domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI dom_pi_get_lastChild(
IXMLDOMNode** domNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_lastChild( This->node, domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI dom_pi_get_previousSibling(
IXMLDOMNode** domNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_previousSibling( This->node, domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI dom_pi_get_nextSibling(
IXMLDOMNode** domNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nextSibling( This->node, domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI dom_pi_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_attributes( This->node, attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
}
static HRESULT WINAPI dom_pi_insertBefore(
IXMLDOMNode** outOldNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_insertBefore( This->node, newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI dom_pi_replaceChild(
IXMLDOMNode** outOldNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_replaceChild( This->node, newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI dom_pi_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_removeChild( This->node, domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
}
static HRESULT WINAPI dom_pi_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_appendChild( This->node, newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
}
static HRESULT WINAPI dom_pi_hasChildNodes(
VARIANT_BOOL* pbool)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_hasChildNodes( This->node, pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI dom_pi_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_ownerDocument( This->node, domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
}
static HRESULT WINAPI dom_pi_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_cloneNode( This->node, pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
}
static HRESULT WINAPI dom_pi_get_nodeTypeString(
BSTR* p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nodeTypeString( This->node, p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_get_text(
BSTR* p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_text( This->node, p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_put_text(
BSTR p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_put_text( This->node, p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_get_specified(
VARIANT_BOOL* pbool)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_specified( This->node, pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI dom_pi_get_definition(
IXMLDOMNode** domNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_definition( This->node, domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI dom_pi_get_nodeTypedValue(
VARIANT* var1)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI dom_pi_put_nodeTypedValue(
VARIANT var1)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_put_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI dom_pi_get_dataType(
VARIANT* var1)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_dataType( This->node, var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI dom_pi_put_dataType(
BSTR p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_put_dataType( This->node, p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_get_xml(
BSTR* p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_xml( This->node, p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_transformNode( This->node, domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
}
static HRESULT WINAPI dom_pi_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_selectNodes( This->node, p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
}
static HRESULT WINAPI dom_pi_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_selectSingleNode( This->node, p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
}
static HRESULT WINAPI dom_pi_get_parsed(
VARIANT_BOOL* pbool)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_parsed( This->node, pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI dom_pi_get_namespaceURI(
BSTR* p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_namespaceURI( This->node, p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_get_prefix(
BSTR* p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_prefix( This->node, p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_get_baseName(
BSTR* p)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_baseName( This->node, p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_transformNodeToObject( This->node, domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
}
static HRESULT WINAPI dom_pi_get_target(
{
/* target returns the same value as nodeName property */
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI dom_pi_get_data(
if(!p)
return E_INVALIDARG;
- hr = IXMLDOMNode_get_nodeValue( This->node, &vRet );
+ hr = IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), &vRet );
if(hr == S_OK)
{
*p = V_BSTR(&vRet);
V_VT(&val) = VT_BSTR;
V_BSTR(&val) = data;
- hr = IXMLDOMNode_put_nodeValue( This->node, val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), val );
return hr;
}
IUnknown* create_pi( xmlNodePtr pi )
{
dom_pi *This;
- xmlnode *node;
This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
if ( !This )
This->lpVtbl = &dom_pi_vtbl;
This->ref = 1;
- node = create_basic_node( pi, (IUnknown*)&This->lpVtbl, NULL );
- if(!node)
+ This->node = create_basic_node( pi, (IUnknown*)&This->lpVtbl, NULL );
+ if(!This->node)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- This->node_unk = (IUnknown*)&node->lpInternalUnkVtbl;
- This->node = IXMLDOMNode_from_impl(node);
-
return (IUnknown*) &This->lpVtbl;
}
{
const struct IXMLDOMTextVtbl *lpVtbl;
LONG ref;
- IUnknown *node_unk;
- IXMLDOMNode *node;
+ xmlnode *node;
} domtext;
static inline domtext *impl_from_IXMLDOMText( IXMLDOMText *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- return IUnknown_QueryInterface(This->node_unk, riid, ppvObject);
+ *ppvObject = IXMLDOMNode_from_impl(This->node);
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMElement ) ||
IsEqualGUID( riid, &IID_IXMLDOMCDATASection ) )
return E_NOINTERFACE;
}
- IXMLDOMText_AddRef( iface );
-
+ IXMLDOMText_AddRef((IUnknown*)*ppvObject);
return S_OK;
}
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- IUnknown_Release( This->node_unk );
+ destroy_xmlnode(This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_nodeName( This->node, p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_get_nodeValue(
VARIANT* var1 )
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_nodeValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domtext_put_nodeValue(
VARIANT var1 )
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_put_nodeValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domtext_get_nodeType(
DOMNodeType* domNodeType )
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_nodeType( This->node, domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
}
static HRESULT WINAPI domtext_get_parentNode(
IXMLDOMNode** parent )
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_parentNode( This->node, parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
}
static HRESULT WINAPI domtext_get_childNodes(
IXMLDOMNodeList** outList)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_childNodes( This->node, outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
}
static HRESULT WINAPI domtext_get_firstChild(
IXMLDOMNode** domNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_firstChild( This->node, domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domtext_get_lastChild(
IXMLDOMNode** domNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_lastChild( This->node, domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domtext_get_previousSibling(
IXMLDOMNode** domNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_previousSibling( This->node, domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domtext_get_nextSibling(
IXMLDOMNode** domNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_nextSibling( This->node, domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domtext_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_attributes( This->node, attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
}
static HRESULT WINAPI domtext_insertBefore(
IXMLDOMNode** outOldNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_insertBefore( This->node, newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI domtext_replaceChild(
IXMLDOMNode** outOldNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_replaceChild( This->node, newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI domtext_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_removeChild( This->node, domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
}
static HRESULT WINAPI domtext_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_appendChild( This->node, newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
}
static HRESULT WINAPI domtext_hasChildNodes(
VARIANT_BOOL* pbool)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_hasChildNodes( This->node, pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domtext_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_ownerDocument( This->node, domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
}
static HRESULT WINAPI domtext_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_cloneNode( This->node, pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
}
static HRESULT WINAPI domtext_get_nodeTypeString(
BSTR* p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_nodeTypeString( This->node, p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_get_text(
BSTR* p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_text( This->node, p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_put_text(
BSTR p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_put_text( This->node, p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_get_specified(
VARIANT_BOOL* pbool)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_specified( This->node, pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domtext_get_definition(
IXMLDOMNode** domNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_definition( This->node, domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
}
static HRESULT WINAPI domtext_get_nodeTypedValue(
VARIANT* var1)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domtext_put_nodeTypedValue(
VARIANT var1)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_put_nodeTypedValue( This->node, var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domtext_get_dataType(
VARIANT* var1)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_dataType( This->node, var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
}
static HRESULT WINAPI domtext_put_dataType(
BSTR p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_put_dataType( This->node, p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_get_xml(
BSTR* p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_xml( This->node, p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_transformNode( This->node, domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
}
static HRESULT WINAPI domtext_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_selectNodes( This->node, p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
}
static HRESULT WINAPI domtext_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_selectSingleNode( This->node, p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
}
static HRESULT WINAPI domtext_get_parsed(
VARIANT_BOOL* pbool)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_parsed( This->node, pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
}
static HRESULT WINAPI domtext_get_namespaceURI(
BSTR* p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_namespaceURI( This->node, p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_get_prefix(
BSTR* p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_prefix( This->node, p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_get_baseName(
BSTR* p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_baseName( This->node, p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
}
static HRESULT WINAPI domtext_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_transformNodeToObject( This->node, domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
}
static HRESULT WINAPI domtext_get_data(
if(!p)
return E_INVALIDARG;
- hr = IXMLDOMNode_get_nodeValue( This->node, &vRet );
+ hr = IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), &vRet );
if(hr == S_OK)
{
*p = V_BSTR(&vRet);
V_VT(&val) = VT_BSTR;
V_BSTR(&val) = data;
- hr = IXMLDOMNode_put_nodeValue( This->node, val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), val );
return hr;
}
LONG *len)
{
domtext *This = impl_from_IXMLDOMText( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
LONG nLength = 0;
if(!len)
return E_INVALIDARG;
- pContent = xmlNodeGetContent(pDOMNode->node);
+ pContent = xmlNodeGetContent(This->node->node);
if(pContent)
{
nLength = xmlStrlen(pContent);
LONG offset, LONG count, BSTR *p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
LONG nLength = 0;
HRESULT hr = S_FALSE;
if(count == 0)
return hr;
- pContent = xmlNodeGetContent(pDOMNode->node);
+ pContent = xmlNodeGetContent(This->node->node);
if(pContent)
{
nLength = xmlStrlen(pContent);
BSTR p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pContent;
HRESULT hr = S_FALSE;
pContent = xmlChar_from_wchar( p );
if(pContent)
{
- if(xmlTextConcat(pDOMNode->node, pContent, SysStringLen(p) ) == 0)
+ if(xmlTextConcat(This->node->node, pContent, SysStringLen(p) ) == 0)
hr = S_OK;
else
hr = E_FAIL;
LONG offset, BSTR p)
{
domtext *This = impl_from_IXMLDOMText( iface );
- xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
xmlChar *pXmlContent;
BSTR sNewString;
HRESULT hr = S_FALSE;
return E_INVALIDARG;
}
- pXmlContent = xmlNodeGetContent(pDOMNode->node);
+ pXmlContent = xmlNodeGetContent(This->node->node);
if(pXmlContent)
{
BSTR sContent = bstr_from_xmlChar( pXmlContent );
str = xmlChar_from_wchar(sNewString);
if(str)
{
- xmlNodeSetContent(pDOMNode->node, str);
+ xmlNodeSetContent(This->node->node, str);
hr = S_OK;
}
HeapFree(GetProcessHeap(), 0, str);
IUnknown* create_text( xmlNodePtr text )
{
domtext *This;
- xmlnode *node;
This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
if ( !This )
This->lpVtbl = &domtext_vtbl;
This->ref = 1;
- node = create_basic_node( text, (IUnknown*)&This->lpVtbl, NULL );
- if(!node)
+ This->node = create_basic_node( text, (IUnknown*)&This->lpVtbl, NULL );
+ if(!This->node)
{
HeapFree(GetProcessHeap(), 0, This);
return NULL;
}
- This->node_unk = (IUnknown*)&node->lpInternalUnkVtbl;
- This->node = IXMLDOMNode_from_impl(node);
-
return (IUnknown*) &This->lpVtbl;
}