typedef struct _domattr
{
+ xmlnode node;
const struct IXMLDOMAttributeVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} domattr;
static inline domattr *impl_from_IXMLDOMAttribute( IXMLDOMAttribute *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else
{
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(This->node), var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(&This->node), var1 );
}
static const struct IXMLDOMAttributeVtbl domattr_vtbl =
This->lpVtbl = &domattr_vtbl;
This->ref = 1;
- This->node = create_basic_node( attribute, (IUnknown*)&This->lpVtbl, NULL );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, attribute, (IUnknown*)&This->lpVtbl, NULL);
return (IUnknown*) &This->lpVtbl;
}
typedef struct _domcdata
{
+ xmlnode node;
const struct IXMLDOMCDATASectionVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} domcdata;
static inline domcdata *impl_from_IXMLDOMCDATASection( IXMLDOMCDATASection *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMText ) ||
IsEqualGUID( riid, &IID_IXMLDOMElement ) )
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(This->node), val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(&This->node), val );
return hr;
}
if(!len)
return E_INVALIDARG;
- pContent = xmlNodeGetContent(This->node->node);
+ pContent = xmlNodeGetContent(This->node.node);
if(pContent)
{
nLength = xmlStrlen(pContent);
if(count == 0)
return hr;
- pContent = xmlNodeGetContent(This->node->node);
+ pContent = xmlNodeGetContent(This->node.node);
if(pContent)
{
nLength = xmlStrlen(pContent);
pContent = xmlChar_from_wchar( p );
if(pContent)
{
- if(xmlTextConcat(This->node->node, pContent, SysStringLen(p) ) == 0)
+ if(xmlTextConcat(This->node.node, pContent, SysStringLen(p) ) == 0)
hr = S_OK;
else
hr = E_FAIL;
return E_INVALIDARG;
}
- pXmlContent = xmlNodeGetContent(This->node->node);
+ pXmlContent = xmlNodeGetContent(This->node.node);
if(pXmlContent)
{
BSTR sContent = bstr_from_xmlChar( pXmlContent );
str = xmlChar_from_wchar(sNewString);
if(str)
{
- xmlNodeSetContent(This->node->node, str);
+ xmlNodeSetContent(This->node.node, str);
hr = S_OK;
}
HeapFree(GetProcessHeap(), 0, str);
This->lpVtbl = &domcdata_vtbl;
This->ref = 1;
- This->node = create_basic_node( text, (IUnknown*)&This->lpVtbl, NULL );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, text, (IUnknown*)&This->lpVtbl, NULL);
return (IUnknown*) &This->lpVtbl;
}
typedef struct _domcomment
{
+ xmlnode node;
const struct IXMLDOMCommentVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} domcomment;
static inline domcomment *impl_from_IXMLDOMComment( IXMLDOMComment *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else
{
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(This->node), val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(&This->node), val );
return hr;
}
if(!len)
return E_INVALIDARG;
- pContent = xmlNodeGetContent(This->node->node);
+ pContent = xmlNodeGetContent(This->node.node);
if(pContent)
{
nLength = xmlStrlen(pContent);
if(count == 0)
return hr;
- pContent = xmlNodeGetContent(This->node->node);
+ pContent = xmlNodeGetContent(This->node.node);
if(pContent)
{
nLength = xmlStrlen(pContent);
xmlTextConcat on Comment nodes. Fallback to setting the
contents directly if xmlTextConcat fails.
*/
- if(xmlTextConcat(This->node->node, pContent, SysStringLen(p) ) == 0)
+ if(xmlTextConcat(This->node.node, pContent, SysStringLen(p) ) == 0)
hr = S_OK;
else
{
xmlChar *pNew;
- pNew = xmlStrcat(xmlNodeGetContent(This->node->node), pContent);
+ pNew = xmlStrcat(xmlNodeGetContent(This->node.node), pContent);
if(pNew)
{
- xmlNodeSetContent(This->node->node, pNew);
+ xmlNodeSetContent(This->node.node, pNew);
hr = S_OK;
}
else
return E_INVALIDARG;
}
- pXmlContent = xmlNodeGetContent(This->node->node);
+ pXmlContent = xmlNodeGetContent(This->node.node);
if(pXmlContent)
{
BSTR sContent = bstr_from_xmlChar( pXmlContent );
str = xmlChar_from_wchar(sNewString);
if(str)
{
- xmlNodeSetContent(This->node->node, str);
+ xmlNodeSetContent(This->node.node, str);
hr = S_OK;
}
HeapFree( GetProcessHeap(), 0, str );
This->lpVtbl = &domcomment_vtbl;
This->ref = 1;
- This->node = create_basic_node( comment, (IUnknown*)&This->lpVtbl, NULL );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, comment, (IUnknown*)&This->lpVtbl, NULL);
return (IUnknown*) &This->lpVtbl;
}
typedef struct _domfrag
{
+ xmlnode node;
const struct IXMLDOMDocumentFragmentVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} domfrag;
static inline domfrag *impl_from_IXMLDOMDocumentFragment( IXMLDOMDocumentFragment *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else
{
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(This->node), domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(&This->node), domNode, var1 );
}
static const struct IXMLDOMDocumentFragmentVtbl domfrag_vtbl =
This->lpVtbl = &domfrag_vtbl;
This->ref = 1;
- This->node = create_basic_node( fragment, (IUnknown*)&This->lpVtbl, NULL );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, fragment, (IUnknown*)&This->lpVtbl, NULL);
return (IUnknown*) &This->lpVtbl;
}
typedef struct _domdoc
{
+ xmlnode node;
const struct IXMLDOMDocument2Vtbl *lpVtbl;
const struct IPersistStreamVtbl *lpvtblIPersistStream;
const struct IObjectWithSiteVtbl *lpvtblIObjectWithSite;
VARIANT_BOOL resolving;
VARIANT_BOOL preserving;
BOOL bUseXPath;
- xmlnode *node;
IXMLDOMSchemaCollection *schema;
bsc_t *bsc;
HRESULT error;
static inline xmlDocPtr get_doc( domdoc *This )
{
- return (xmlDocPtr)This->node->node;
+ return (xmlDocPtr)This->node.node;
}
static inline domdoc *impl_from_IPersistStream(IPersistStream *iface)
xmldoc->_private = create_priv();
- return attach_xmldoc( This->node, xmldoc );
+ return attach_xmldoc( &This->node, xmldoc );
}
static HRESULT WINAPI xmldoc_IPersistStream_Save(
TRACE("(%p, %p, %d)\n", iface, pStm, fClearDirty);
- hr = IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), &xmlString );
+ hr = IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(&This->node), &xmlString );
if(hr == S_OK)
{
DWORD count;
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else if (IsEqualGUID(&IID_IPersistStream, riid))
{
{
*ppvObject = &This->lpvtblISupportErrorInfo;
}
- else if(dispex_query_interface(&This->node->dispex, riid, ppvObject))
+ else if(dispex_query_interface(&This->node.dispex, riid, ppvObject))
{
return *ppvObject ? S_OK : E_NOINTERFACE;
}
if (This->site)
IUnknown_Release( This->site );
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
if(This->schema) IXMLDOMSchemaCollection_Release( This->schema );
if (This->stream) IStream_Release(This->stream);
HeapFree( GetProcessHeap(), 0, This );
BSTR* name )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), name );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(&This->node), name );
}
VARIANT* value )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), value );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(&This->node), value );
}
VARIANT value)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), value );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(&This->node), value );
}
DOMNodeType* type )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), type );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(&This->node), type );
}
IXMLDOMNode** parent )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(&This->node), parent );
}
IXMLDOMNodeList** childList )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), childList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), childList );
}
IXMLDOMNode** firstChild )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), firstChild );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(&This->node), firstChild );
}
IXMLDOMNode** lastChild )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), lastChild );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(&This->node), lastChild );
}
IXMLDOMNode** previousSibling )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), previousSibling );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(&This->node), previousSibling );
}
IXMLDOMNode** nextSibling )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), nextSibling );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(&This->node), nextSibling );
}
IXMLDOMNamedNodeMap** attributeMap )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(&This->node), attributeMap );
}
IXMLDOMNode** outNewChild )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newChild, refChild, outNewChild );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(&This->node), newChild, refChild, outNewChild );
}
IXMLDOMNode** outOldChild)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newChild, oldChild, outOldChild );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(&This->node), newChild, oldChild, outOldChild );
}
IXMLDOMNode** oldChild)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), childNode, oldChild );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(&This->node), childNode, oldChild );
}
IXMLDOMNode** outNewChild)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newChild, outNewChild );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(&This->node), newChild, outNewChild );
}
VARIANT_BOOL* hasChild)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), hasChild );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(&This->node), hasChild );
}
IXMLDOMDocument** DOMDocument)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), DOMDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(&This->node), DOMDocument );
}
IXMLDOMNode** cloneRoot)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), deep, cloneRoot );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(&This->node), deep, cloneRoot );
}
BSTR* nodeType )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), nodeType );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(&This->node), nodeType );
}
BSTR* text )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), text );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(&This->node), text );
}
BSTR text )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), text );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(&This->node), text );
}
VARIANT_BOOL* isSpecified )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), isSpecified );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(&This->node), isSpecified );
}
IXMLDOMNode** definitionNode )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), definitionNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(&This->node), definitionNode );
}
VARIANT* typedValue )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), typedValue );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(&This->node), typedValue );
}
static HRESULT WINAPI domdoc_put_nodeTypedValue(
VARIANT typedValue )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), typedValue );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(&This->node), typedValue );
}
VARIANT* dataTypeName )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), dataTypeName );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(&This->node), dataTypeName );
}
BSTR dataTypeName )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), dataTypeName );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(&This->node), dataTypeName );
}
BSTR* xmlString )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), xmlString );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(&This->node), xmlString );
}
BSTR* xmlString )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), styleSheet, xmlString );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(&This->node), styleSheet, xmlString );
}
IXMLDOMNodeList** resultList )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), queryString, resultList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(&This->node), queryString, resultList );
}
IXMLDOMNode** resultNode )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), queryString, resultNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(&This->node), queryString, resultNode );
}
VARIANT_BOOL* isParsed )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), isParsed );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(&This->node), isParsed );
}
BSTR* namespaceURI )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), namespaceURI );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(&This->node), namespaceURI );
}
BSTR* prefixString )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), prefixString );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), prefixString );
}
BSTR* nameString )
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), nameString );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(&This->node), nameString );
}
VARIANT outputObject)
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
- return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), stylesheet, outputObject );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(&This->node), stylesheet, outputObject );
}
IXMLDOMNode *element_node;
HRESULT hr;
- TRACE("%p %p\n", This, This->node);
+ TRACE("%p\n", This);
if(!DOMElement)
return E_INVALIDARG;
xmldoc = doparse( ptr, len );
if(xmldoc) {
xmldoc->_private = create_priv();
- return attach_xmldoc(This->node, xmldoc);
+ return attach_xmldoc(&This->node, xmldoc);
}
return S_OK;
*isSuccessful = VARIANT_FALSE;
- assert( This->node );
+ assert( &This->node );
switch( V_VT(&xmlSource) )
{
{
domdoc *newDoc = impl_from_IXMLDOMDocument2( pNewDoc );
xmldoc = xmlCopyDoc(get_doc(newDoc), 1);
- hr = attach_xmldoc(This->node, xmldoc);
+ hr = attach_xmldoc(&This->node, xmldoc);
if(SUCCEEDED(hr))
*isSuccessful = VARIANT_TRUE;
if(!filename || FAILED(hr)) {
xmldoc = xmlNewDoc(NULL);
xmldoc->_private = create_priv();
- hr = attach_xmldoc(This->node, xmldoc);
+ hr = attach_xmldoc(&This->node, xmldoc);
if(SUCCEEDED(hr))
hr = S_FALSE;
}
TRACE("%p %s %p\n", This, debugstr_w( bstrXML ), isSuccessful );
- assert ( This->node );
+ assert ( &This->node );
if ( isSuccessful )
{
xmldoc = xmlNewDoc(NULL);
xmldoc->_private = create_priv();
- hr2 = attach_xmldoc( This->node, xmldoc );
+ hr2 = attach_xmldoc( &This->node, xmldoc );
if( FAILED(hr2) )
hr = hr2;
doc->safeopt = 0;
doc->bsc = NULL;
- doc->node = create_basic_node( (xmlNodePtr)xmldoc, (IUnknown*)&doc->lpVtbl, &domdoc_dispex );
- if(!doc->node)
- {
- HeapFree(GetProcessHeap(), 0, doc);
- return E_FAIL;
- }
+ init_xmlnode(&doc->node, (xmlNodePtr)xmldoc, (IUnknown*)&doc->lpVtbl, &domdoc_dispex);
*document = (IXMLDOMDocument2*)&doc->lpVtbl;
typedef struct _domelem
{
+ xmlnode node;
const struct IXMLDOMElementVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} domelem;
static inline domelem *impl_from_IXMLDOMElement( IXMLDOMElement *iface )
static inline xmlNodePtr get_element( domelem *This )
{
- return This->node->node;
+ return This->node.node;
}
static HRESULT WINAPI domelem_QueryInterface(
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
- else if(dispex_query_interface(&This->node->dispex, riid, ppvObject))
+ else if(dispex_query_interface(&This->node.dispex, riid, ppvObject))
{
return *ppvObject ? S_OK : E_NOINTERFACE;
}
TRACE("(%p) ref=%d\n", This, ref);
if(!ref) {
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
heap_free(This);
}
BSTR* p )
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_get_nodeValue(
VARIANT* var1 )
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
+ return IXMLDOMNode_get_nodeValue( IXMLDOMNode_from_impl(&This->node), var1 );
}
static HRESULT WINAPI domelem_put_nodeValue(
VARIANT var1 )
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(This->node), var1 );
+ return IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(&This->node), var1 );
}
static HRESULT WINAPI domelem_get_nodeType(
DOMNodeType* domNodeType )
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(This->node), domNodeType );
+ return IXMLDOMNode_get_nodeType( IXMLDOMNode_from_impl(&This->node), domNodeType );
}
static HRESULT WINAPI domelem_get_parentNode(
IXMLDOMNode** parent )
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(This->node), parent );
+ return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(&This->node), parent );
}
static HRESULT WINAPI domelem_get_childNodes(
IXMLDOMNodeList** outList)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(This->node), outList );
+ return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList );
}
static HRESULT WINAPI domelem_get_firstChild(
IXMLDOMNode** domNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(This->node), domNode );
+ return IXMLDOMNode_get_firstChild( IXMLDOMNode_from_impl(&This->node), domNode );
}
static HRESULT WINAPI domelem_get_lastChild(
IXMLDOMNode** domNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(This->node), domNode );
+ return IXMLDOMNode_get_lastChild( IXMLDOMNode_from_impl(&This->node), domNode );
}
static HRESULT WINAPI domelem_get_previousSibling(
IXMLDOMNode** domNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(This->node), domNode );
+ return IXMLDOMNode_get_previousSibling( IXMLDOMNode_from_impl(&This->node), domNode );
}
static HRESULT WINAPI domelem_get_nextSibling(
IXMLDOMNode** domNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(This->node), domNode );
+ return IXMLDOMNode_get_nextSibling( IXMLDOMNode_from_impl(&This->node), domNode );
}
static HRESULT WINAPI domelem_get_attributes(
IXMLDOMNamedNodeMap** attributeMap)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(This->node), attributeMap );
+ return IXMLDOMNode_get_attributes( IXMLDOMNode_from_impl(&This->node), attributeMap );
}
static HRESULT WINAPI domelem_insertBefore(
IXMLDOMNode** outOldNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(This->node), newNode, var1, outOldNode );
+ return IXMLDOMNode_insertBefore( IXMLDOMNode_from_impl(&This->node), newNode, var1, outOldNode );
}
static HRESULT WINAPI domelem_replaceChild(
IXMLDOMNode** outOldNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(This->node), newNode, oldNode, outOldNode );
+ return IXMLDOMNode_replaceChild( IXMLDOMNode_from_impl(&This->node), newNode, oldNode, outOldNode );
}
static HRESULT WINAPI domelem_removeChild(
IXMLDOMNode* domNode, IXMLDOMNode** oldNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(This->node), domNode, oldNode );
+ return IXMLDOMNode_removeChild( IXMLDOMNode_from_impl(&This->node), domNode, oldNode );
}
static HRESULT WINAPI domelem_appendChild(
IXMLDOMNode* newNode, IXMLDOMNode** outNewNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(This->node), newNode, outNewNode );
+ return IXMLDOMNode_appendChild( IXMLDOMNode_from_impl(&This->node), newNode, outNewNode );
}
static HRESULT WINAPI domelem_hasChildNodes(
VARIANT_BOOL* pbool)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(This->node), pbool );
+ return IXMLDOMNode_hasChildNodes( IXMLDOMNode_from_impl(&This->node), pbool );
}
static HRESULT WINAPI domelem_get_ownerDocument(
IXMLDOMDocument** domDocument)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(This->node), domDocument );
+ return IXMLDOMNode_get_ownerDocument( IXMLDOMNode_from_impl(&This->node), domDocument );
}
static HRESULT WINAPI domelem_cloneNode(
VARIANT_BOOL pbool, IXMLDOMNode** outNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(This->node), pbool, outNode );
+ return IXMLDOMNode_cloneNode( IXMLDOMNode_from_impl(&This->node), pbool, outNode );
}
static HRESULT WINAPI domelem_get_nodeTypeString(
BSTR* p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_get_nodeTypeString( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_get_text(
BSTR* p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_get_text( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_put_text(
BSTR p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_put_text( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_get_specified(
VARIANT_BOOL* pbool)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(This->node), pbool );
+ return IXMLDOMNode_get_specified( IXMLDOMNode_from_impl(&This->node), pbool );
}
static HRESULT WINAPI domelem_get_definition(
IXMLDOMNode** domNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(This->node), domNode );
+ return IXMLDOMNode_get_definition( IXMLDOMNode_from_impl(&This->node), domNode );
}
static HRESULT WINAPI domelem_get_nodeTypedValue(
VARIANT* var1)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
+ return IXMLDOMNode_get_nodeTypedValue( IXMLDOMNode_from_impl(&This->node), var1 );
}
static HRESULT WINAPI domelem_put_nodeTypedValue(
VARIANT var1)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(This->node), var1 );
+ return IXMLDOMNode_put_nodeTypedValue( IXMLDOMNode_from_impl(&This->node), var1 );
}
static HRESULT WINAPI domelem_get_dataType(
VARIANT* var1)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(This->node), var1 );
+ return IXMLDOMNode_get_dataType( IXMLDOMNode_from_impl(&This->node), var1 );
}
static HRESULT WINAPI domelem_put_dataType(
BSTR p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_put_dataType( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_get_xml(
BSTR* p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_transformNode(
IXMLDOMNode* domNode, BSTR* p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(This->node), domNode, p );
+ return IXMLDOMNode_transformNode( IXMLDOMNode_from_impl(&This->node), domNode, p );
}
static HRESULT WINAPI domelem_selectNodes(
BSTR p, IXMLDOMNodeList** outList)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(This->node), p, outList );
+ return IXMLDOMNode_selectNodes( IXMLDOMNode_from_impl(&This->node), p, outList );
}
static HRESULT WINAPI domelem_selectSingleNode(
BSTR p, IXMLDOMNode** outNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(This->node), p, outNode );
+ return IXMLDOMNode_selectSingleNode( IXMLDOMNode_from_impl(&This->node), p, outNode );
}
static HRESULT WINAPI domelem_get_parsed(
VARIANT_BOOL* pbool)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(This->node), pbool );
+ return IXMLDOMNode_get_parsed( IXMLDOMNode_from_impl(&This->node), pbool );
}
static HRESULT WINAPI domelem_get_namespaceURI(
BSTR* p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_get_namespaceURI( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_get_prefix(
BSTR* p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_get_baseName(
BSTR* p)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(This->node), p );
+ return IXMLDOMNode_get_baseName( IXMLDOMNode_from_impl(&This->node), p );
}
static HRESULT WINAPI domelem_transformNodeToObject(
IXMLDOMNode* domNode, VARIANT var1)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(This->node), domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(&This->node), domNode, var1 );
}
static HRESULT WINAPI domelem_get_tagName(
TRACE("%p\n", This );
- if ( !This->node )
- return E_FAIL;
-
element = get_element( This );
if ( !element )
return E_FAIL;
This->lpVtbl = &domelem_vtbl;
This->ref = 1;
- This->node = create_basic_node( element, (IUnknown*)&This->lpVtbl, &domelem_dispex );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, element, (IUnknown*)&This->lpVtbl, &domelem_dispex);
return (IUnknown*) &This->lpVtbl;
}
typedef struct _entityref
{
+ xmlnode node;
const struct IXMLDOMEntityReferenceVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} entityref;
static inline entityref *impl_from_IXMLDOMEntityReference( IXMLDOMEntityReference *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else
{
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(This->node), domNode, var1 );
+ return IXMLDOMNode_transformNodeToObject( IXMLDOMNode_from_impl(&This->node), domNode, var1 );
}
static const struct IXMLDOMEntityReferenceVtbl entityref_vtbl =
This->lpVtbl = &entityref_vtbl;
This->ref = 1;
- This->node = create_basic_node( entity, (IUnknown*)&This->lpVtbl, NULL );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, entity, (IUnknown*)&This->lpVtbl, NULL);
return (IUnknown*) &This->lpVtbl;
}
return (IXMLDOMNode*)&This->lpVtbl;
}
-extern xmlnode *create_basic_node(xmlNodePtr,IUnknown*,dispex_static_data_t*);
+extern void init_xmlnode(xmlnode*,xmlNodePtr,IUnknown*,dispex_static_data_t*);
extern void destroy_xmlnode(xmlnode*);
extern HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument2 **document);
return IUnknown_Release(This->pUnkOuter);
ref = InterlockedDecrement( &This->ref );
- if(!ref)
+ if(!ref) {
destroy_xmlnode(This);
+ HeapFree( GetProcessHeap(), 0, This );
+ }
return ref;
}
{
if(This->node)
xmldoc_release(This->node->doc);
- HeapFree( GetProcessHeap(), 0, This );
}
-xmlnode *create_basic_node( xmlNodePtr node, IUnknown *pUnkOuter, dispex_static_data_t *dispex_data )
+void init_xmlnode(xmlnode *This, xmlNodePtr node, IUnknown *outer, dispex_static_data_t *dispex_data )
{
- xmlnode *This;
-
- This = HeapAlloc( GetProcessHeap(), 0, sizeof *This );
- if ( !This )
- return NULL;
-
if(node)
xmldoc_add_ref( node->doc );
This->lpVtbl = &xmlnode_vtbl;
-
- if(pUnkOuter)
- This->pUnkOuter = pUnkOuter; /* Don't take a ref on outer Unknown */
- else
- This->pUnkOuter = NULL;
-
- if(dispex_data)
- init_dispex(&This->dispex, This->pUnkOuter, dispex_data);
-
This->ref = 1;
This->node = node;
+ This->pUnkOuter = outer;
- return This;
+ if(dispex_data)
+ init_dispex(&This->dispex, This->pUnkOuter, dispex_data);
}
IXMLDOMNode *create_node( xmlNodePtr node )
case XML_DOCUMENT_NODE:
pUnk = create_domdoc( node );
break;
- default:
+ default: {
+ xmlnode *new_node;
+
FIXME("only creating basic node for type %d\n", node->type);
- pUnk = (IUnknown*)&create_basic_node( node, NULL, NULL )->lpVtbl;
+
+ new_node = heap_alloc(sizeof(xmlnode));
+ if(!new_node)
+ return NULL;
+
+ init_xmlnode(new_node, node, NULL, NULL);
+ pUnk = (IUnknown*)IXMLDOMNode_from_impl(new_node);
+ }
}
hr = IUnknown_QueryInterface(pUnk, &IID_IXMLDOMNode, (LPVOID*)&ret);
typedef struct _dom_pi
{
+ xmlnode node;
const struct IXMLDOMProcessingInstructionVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} dom_pi;
static inline dom_pi *impl_from_IXMLDOMProcessingInstruction( IXMLDOMProcessingInstruction *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else
{
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(This->node), val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(&This->node), val );
return hr;
}
This->lpVtbl = &dom_pi_vtbl;
This->ref = 1;
- This->node = create_basic_node( pi, (IUnknown*)&This->lpVtbl, NULL );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, pi, (IUnknown*)&This->lpVtbl, NULL);
return (IUnknown*) &This->lpVtbl;
}
typedef struct _domtext
{
+ xmlnode node;
const struct IXMLDOMTextVtbl *lpVtbl;
LONG ref;
- xmlnode *node;
} domtext;
static inline domtext *impl_from_IXMLDOMText( IXMLDOMText *iface )
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMNode ) )
{
- *ppvObject = IXMLDOMNode_from_impl(This->node);
+ *ppvObject = IXMLDOMNode_from_impl(&This->node);
}
else if ( IsEqualGUID( riid, &IID_IXMLDOMElement ) ||
IsEqualGUID( riid, &IID_IXMLDOMCDATASection ) )
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
- destroy_xmlnode(This->node);
+ destroy_xmlnode(&This->node);
HeapFree( GetProcessHeap(), 0, This );
}
BSTR* p )
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_nodeName( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(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( IXMLDOMNode_from_impl(This->node), val );
+ hr = IXMLDOMNode_put_nodeValue( IXMLDOMNode_from_impl(&This->node), val );
return hr;
}
if(!len)
return E_INVALIDARG;
- pContent = xmlNodeGetContent(This->node->node);
+ pContent = xmlNodeGetContent(This->node.node);
if(pContent)
{
nLength = xmlStrlen(pContent);
if(count == 0)
return hr;
- pContent = xmlNodeGetContent(This->node->node);
+ pContent = xmlNodeGetContent(This->node.node);
if(pContent)
{
nLength = xmlStrlen(pContent);
pContent = xmlChar_from_wchar( p );
if(pContent)
{
- if(xmlTextConcat(This->node->node, pContent, SysStringLen(p) ) == 0)
+ if(xmlTextConcat(This->node.node, pContent, SysStringLen(p)) == 0)
hr = S_OK;
else
hr = E_FAIL;
return E_INVALIDARG;
}
- pXmlContent = xmlNodeGetContent(This->node->node);
+ pXmlContent = xmlNodeGetContent(This->node.node);
if(pXmlContent)
{
BSTR sContent = bstr_from_xmlChar( pXmlContent );
str = xmlChar_from_wchar(sNewString);
if(str)
{
- xmlNodeSetContent(This->node->node, str);
+ xmlNodeSetContent(This->node.node, str);
hr = S_OK;
}
HeapFree(GetProcessHeap(), 0, str);
This->lpVtbl = &domtext_vtbl;
This->ref = 1;
- This->node = create_basic_node( text, (IUnknown*)&This->lpVtbl, NULL );
- if(!This->node)
- {
- HeapFree(GetProcessHeap(), 0, This);
- return NULL;
- }
+ init_xmlnode(&This->node, text, (IUnknown*)&This->lpVtbl, NULL);
return (IUnknown*) &This->lpVtbl;
}