mshtml: COM cleanup for the IHTMLDOMNode iface.

This commit is contained in:
Michael Stefaniuc 2010-12-30 01:39:16 +01:00 committed by Alexandre Julliard
parent 6d4170bd40
commit f653f4a22e
32 changed files with 156 additions and 150 deletions

View File

@ -50,21 +50,21 @@ static HRESULT WINAPI HTMLAnchorElement_QueryInterface(IHTMLAnchorElement *iface
{ {
HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface); HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLAnchorElement_AddRef(IHTMLAnchorElement *iface) static ULONG WINAPI HTMLAnchorElement_AddRef(IHTMLAnchorElement *iface)
{ {
HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface); HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLAnchorElement_Release(IHTMLAnchorElement *iface) static ULONG WINAPI HTMLAnchorElement_Release(IHTMLAnchorElement *iface)
{ {
HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface); HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLAnchorElement_GetTypeInfoCount(IHTMLAnchorElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLAnchorElement_GetTypeInfoCount(IHTMLAnchorElement *iface, UINT *pctinfo)

View File

@ -203,21 +203,21 @@ static HRESULT WINAPI HTMLBodyElement_QueryInterface(IHTMLBodyElement *iface,
{ {
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface); HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->textcont.element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->textcont.element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLBodyElement_AddRef(IHTMLBodyElement *iface) static ULONG WINAPI HTMLBodyElement_AddRef(IHTMLBodyElement *iface)
{ {
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface); HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->textcont.element.node)); return IHTMLDOMNode_AddRef(&This->textcont.element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLBodyElement_Release(IHTMLBodyElement *iface) static ULONG WINAPI HTMLBodyElement_Release(IHTMLBodyElement *iface)
{ {
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface); HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->textcont.element.node)); return IHTMLDOMNode_Release(&This->textcont.element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLBodyElement_GetTypeInfoCount(IHTMLBodyElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLBodyElement_GetTypeInfoCount(IHTMLBodyElement *iface, UINT *pctinfo)

View File

@ -46,21 +46,21 @@ static HRESULT WINAPI HTMLCommentElement_QueryInterface(IHTMLCommentElement *ifa
{ {
HTMLCommentElement *This = HTMLCOMMENT_THIS(iface); HTMLCommentElement *This = HTMLCOMMENT_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLCommentElement_AddRef(IHTMLCommentElement *iface) static ULONG WINAPI HTMLCommentElement_AddRef(IHTMLCommentElement *iface)
{ {
HTMLCommentElement *This = HTMLCOMMENT_THIS(iface); HTMLCommentElement *This = HTMLCOMMENT_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLCommentElement_Release(IHTMLCommentElement *iface) static ULONG WINAPI HTMLCommentElement_Release(IHTMLCommentElement *iface)
{ {
HTMLCommentElement *This = HTMLCOMMENT_THIS(iface); HTMLCommentElement *This = HTMLCOMMENT_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLCommentElement_GetTypeInfoCount(IHTMLCommentElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLCommentElement_GetTypeInfoCount(IHTMLCommentElement *iface, UINT *pctinfo)

View File

@ -172,7 +172,7 @@ static HRESULT WINAPI HTMLDocument_get_body(IHTMLDocument2 *iface, IHTMLElement
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)p); return IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface, &IID_IHTMLElement, (void**)p);
} }
static HRESULT WINAPI HTMLDocument_get_activeElement(IHTMLDocument2 *iface, IHTMLElement **p) static HRESULT WINAPI HTMLDocument_get_activeElement(IHTMLDocument2 *iface, IHTMLElement **p)
@ -1985,8 +1985,10 @@ static HTMLDocumentNode *alloc_doc_node(HTMLDocumentObj *doc_obj, HTMLWindow *wi
doc->basedoc.doc_obj = doc_obj; doc->basedoc.doc_obj = doc_obj;
doc->basedoc.window = window; doc->basedoc.window = window;
init_dispex(&doc->node.dispex, (IUnknown*)HTMLDOMNODE(&doc->node), &HTMLDocumentNode_dispex); init_dispex(&doc->node.dispex, (IUnknown*)&doc->node.IHTMLDOMNode_iface,
init_doc(&doc->basedoc, (IUnknown*)HTMLDOMNODE(&doc->node), DISPATCHEX(&doc->node.dispex)); &HTMLDocumentNode_dispex);
init_doc(&doc->basedoc, (IUnknown*)&doc->node.IHTMLDOMNode_iface,
DISPATCHEX(&doc->node.dispex));
HTMLDocumentNode_SecMgr_Init(doc); HTMLDocumentNode_SecMgr_Init(doc);
init_nsevents(doc); init_nsevents(doc);

View File

@ -133,8 +133,8 @@ static HRESULT WINAPI HTMLDocument3_createTextNode(IHTMLDocument3 *iface, BSTR t
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*newTextNode = HTMLDOMNODE(node); *newTextNode = &node->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(HTMLDOMNODE(node)); IHTMLDOMNode_AddRef(&node->IHTMLDOMNode_iface);
return S_OK; return S_OK;
} }
@ -174,7 +174,7 @@ static HRESULT WINAPI HTMLDocument3_get_documentElement(IHTMLDocument3 *iface, I
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)p); return IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface, &IID_IHTMLElement, (void**)p);
} }
static HRESULT WINAPI HTMLDocument3_uniqueID(IHTMLDocument3 *iface, BSTR *p) static HRESULT WINAPI HTMLDocument3_uniqueID(IHTMLDocument3 *iface, BSTR *p)
@ -542,7 +542,8 @@ static HRESULT WINAPI HTMLDocument3_getElementById(IHTMLDocument3 *iface, BSTR v
nsIDOMNode_Release(nsnode); nsIDOMNode_Release(nsnode);
if(SUCCEEDED(hres)) if(SUCCEEDED(hres))
hres = IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)pel); hres = IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface, &IID_IHTMLElement,
(void**)pel);
}else { }else {
*pel = NULL; *pel = NULL;
hres = S_OK; hres = S_OK;

View File

@ -153,8 +153,8 @@ static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bs
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*ppRetNode = HTMLDOMNODE(&elem->node); *ppRetNode = &elem->node.IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(HTMLDOMNODE(&elem->node)); IHTMLDOMNode_AddRef(&elem->node.IHTMLDOMNode_iface);
return S_OK; return S_OK;
} }

View File

@ -152,21 +152,21 @@ static HRESULT WINAPI HTMLElement_QueryInterface(IHTMLElement *iface,
{ {
HTMLElement *This = impl_from_IHTMLElement(iface); HTMLElement *This = impl_from_IHTMLElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLElement_AddRef(IHTMLElement *iface) static ULONG WINAPI HTMLElement_AddRef(IHTMLElement *iface)
{ {
HTMLElement *This = impl_from_IHTMLElement(iface); HTMLElement *This = impl_from_IHTMLElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->node)); return IHTMLDOMNode_AddRef(&This->node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLElement_Release(IHTMLElement *iface) static ULONG WINAPI HTMLElement_Release(IHTMLElement *iface)
{ {
HTMLElement *This = impl_from_IHTMLElement(iface); HTMLElement *This = impl_from_IHTMLElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->node)); return IHTMLDOMNode_Release(&This->node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLElement_GetTypeInfoCount(IHTMLElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLElement_GetTypeInfoCount(IHTMLElement *iface, UINT *pctinfo)
@ -409,7 +409,7 @@ static HRESULT WINAPI HTMLElement_get_parentElement(IHTMLElement *iface, IHTMLEl
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
hres = IHTMLDOMNode_get_parentNode(HTMLDOMNODE(&This->node), &node); hres = IHTMLDOMNode_get_parentNode(&This->node.IHTMLDOMNode_iface, &node);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;

View File

@ -535,7 +535,7 @@ IHTMLElementCollection *create_all_collection(HTMLDOMNode *node, BOOL include_ro
create_all_list(node->doc, node, &buf); create_all_list(node->doc, node, &buf);
elem_vector_normalize(&buf); elem_vector_normalize(&buf);
return HTMLElementCollection_Create((IUnknown*)HTMLDOMNODE(node), buf.buf, buf.len); return HTMLElementCollection_Create((IUnknown*)&node->IHTMLDOMNode_iface, buf.buf, buf.len);
} }
IHTMLElementCollection *create_collection_from_nodelist(HTMLDocumentNode *doc, IUnknown *unk, nsIDOMNodeList *nslist) IHTMLElementCollection *create_collection_from_nodelist(HTMLDocumentNode *doc, IUnknown *unk, nsIDOMNodeList *nslist)

View File

@ -47,21 +47,21 @@ static HRESULT WINAPI HTMLEmbedElement_QueryInterface(IHTMLEmbedElement *iface,
{ {
HTMLEmbedElement *This = HTMLEMBED_THIS(iface); HTMLEmbedElement *This = HTMLEMBED_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLEmbedElement_AddRef(IHTMLEmbedElement *iface) static ULONG WINAPI HTMLEmbedElement_AddRef(IHTMLEmbedElement *iface)
{ {
HTMLEmbedElement *This = HTMLEMBED_THIS(iface); HTMLEmbedElement *This = HTMLEMBED_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLEmbedElement_Release(IHTMLEmbedElement *iface) static ULONG WINAPI HTMLEmbedElement_Release(IHTMLEmbedElement *iface)
{ {
HTMLEmbedElement *This = HTMLEMBED_THIS(iface); HTMLEmbedElement *This = HTMLEMBED_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLEmbedElement_GetTypeInfoCount(IHTMLEmbedElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLEmbedElement_GetTypeInfoCount(IHTMLEmbedElement *iface, UINT *pctinfo)

View File

@ -322,7 +322,8 @@ static HRESULT WINAPI HTMLEventObj_get_srcElement(IHTMLEventObj *iface, IHTMLEle
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(This->target), &IID_IHTMLElement, (void**)p); return IHTMLDOMNode_QueryInterface(&This->target->IHTMLDOMNode_iface, &IID_IHTMLElement,
(void**)p);
} }
static HRESULT WINAPI HTMLEventObj_get_altKey(IHTMLEventObj *iface, VARIANT_BOOL *p) static HRESULT WINAPI HTMLEventObj_get_altKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
@ -772,7 +773,7 @@ static IHTMLEventObj *create_event(HTMLDOMNode *target, eventid_t eid, nsIDOMEve
} }
ret->target = target; ret->target = target;
IHTMLDOMNode_AddRef(HTMLDOMNODE(target)); IHTMLDOMNode_AddRef(&target->IHTMLDOMNode_iface);
init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLEventObj_iface, &HTMLEventObj_dispex); init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLEventObj_iface, &HTMLEventObj_dispex);
@ -927,8 +928,8 @@ void fire_event(HTMLDocumentNode *doc, eventid_t eid, BOOL set_event, nsIDOMNode
do { do {
hres = get_node(doc, nsnode, FALSE, &node); hres = get_node(doc, nsnode, FALSE, &node);
if(SUCCEEDED(hres) && node) if(SUCCEEDED(hres) && node)
call_event_handlers(doc, event_obj, *get_node_event_target(node), node->cp_container, eid, call_event_handlers(doc, event_obj, *get_node_event_target(node),
(IDispatch*)HTMLDOMNODE(node)); node->cp_container, eid, (IDispatch*)&node->IHTMLDOMNode_iface);
if(!(event_info[eid].flags & EVENT_BUBBLE)) if(!(event_info[eid].flags & EVENT_BUBBLE))
break; break;
@ -954,8 +955,8 @@ void fire_event(HTMLDocumentNode *doc, eventid_t eid, BOOL set_event, nsIDOMNode
if(NS_SUCCEEDED(nsres) && nsbody) { if(NS_SUCCEEDED(nsres) && nsbody) {
hres = get_node(doc, (nsIDOMNode*)nsbody, FALSE, &node); hres = get_node(doc, (nsIDOMNode*)nsbody, FALSE, &node);
if(SUCCEEDED(hres) && node) if(SUCCEEDED(hres) && node)
call_event_handlers(doc, event_obj, *get_node_event_target(node), node->cp_container, call_event_handlers(doc, event_obj, *get_node_event_target(node),
eid, (IDispatch*)HTMLDOMNODE(node)); node->cp_container, eid, (IDispatch*)&node->IHTMLDOMNode_iface);
nsIDOMHTMLElement_Release(nsbody); nsIDOMHTMLElement_Release(nsbody);
}else { }else {
ERR("Could not get body: %08x\n", nsres); ERR("Could not get body: %08x\n", nsres);

View File

@ -67,9 +67,9 @@ static HRESULT htmlform_item(HTMLFormElement *This, int i, IDispatch **ret)
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
IHTMLDOMNode_AddRef(HTMLDOMNODE(node)); IHTMLDOMNode_AddRef(&node->IHTMLDOMNode_iface);
nsIDOMNode_Release(item); nsIDOMNode_Release(item);
*ret = (IDispatch*)HTMLDOMNODE(node); *ret = (IDispatch*)&node->IHTMLDOMNode_iface;
}else { }else {
*ret = NULL; *ret = NULL;
} }
@ -84,21 +84,21 @@ static HRESULT WINAPI HTMLFormElement_QueryInterface(IHTMLFormElement *iface,
{ {
HTMLFormElement *This = HTMLFORM_THIS(iface); HTMLFormElement *This = HTMLFORM_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLFormElement_AddRef(IHTMLFormElement *iface) static ULONG WINAPI HTMLFormElement_AddRef(IHTMLFormElement *iface)
{ {
HTMLFormElement *This = HTMLFORM_THIS(iface); HTMLFormElement *This = HTMLFORM_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLFormElement_Release(IHTMLFormElement *iface) static ULONG WINAPI HTMLFormElement_Release(IHTMLFormElement *iface)
{ {
HTMLFormElement *This = HTMLFORM_THIS(iface); HTMLFormElement *This = HTMLFORM_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLFormElement_GetTypeInfoCount(IHTMLFormElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLFormElement_GetTypeInfoCount(IHTMLFormElement *iface, UINT *pctinfo)

View File

@ -46,21 +46,21 @@ static HRESULT WINAPI HTMLFrameElement3_QueryInterface(IHTMLFrameElement3 *iface
{ {
HTMLFrameElement *This = impl_from_IHTMLFrameElement3(iface); HTMLFrameElement *This = impl_from_IHTMLFrameElement3(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->framebase.element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->framebase.element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLFrameElement3_AddRef(IHTMLFrameElement3 *iface) static ULONG WINAPI HTMLFrameElement3_AddRef(IHTMLFrameElement3 *iface)
{ {
HTMLFrameElement *This = impl_from_IHTMLFrameElement3(iface); HTMLFrameElement *This = impl_from_IHTMLFrameElement3(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->framebase.element.node)); return IHTMLDOMNode_AddRef(&This->framebase.element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLFrameElement3_Release(IHTMLFrameElement3 *iface) static ULONG WINAPI HTMLFrameElement3_Release(IHTMLFrameElement3 *iface)
{ {
HTMLFrameElement *This = impl_from_IHTMLFrameElement3(iface); HTMLFrameElement *This = impl_from_IHTMLFrameElement3(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->framebase.element.node)); return IHTMLDOMNode_Release(&This->framebase.element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLFrameElement3_GetTypeInfoCount(IHTMLFrameElement3 *iface, UINT *pctinfo) static HRESULT WINAPI HTMLFrameElement3_GetTypeInfoCount(IHTMLFrameElement3 *iface, UINT *pctinfo)

View File

@ -67,21 +67,21 @@ static HRESULT WINAPI HTMLFrameBase_QueryInterface(IHTMLFrameBase *iface, REFIID
{ {
HTMLFrameBase *This = HTMLFRAMEBASE_THIS(iface); HTMLFrameBase *This = HTMLFRAMEBASE_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLFrameBase_AddRef(IHTMLFrameBase *iface) static ULONG WINAPI HTMLFrameBase_AddRef(IHTMLFrameBase *iface)
{ {
HTMLFrameBase *This = HTMLFRAMEBASE_THIS(iface); HTMLFrameBase *This = HTMLFRAMEBASE_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLFrameBase_Release(IHTMLFrameBase *iface) static ULONG WINAPI HTMLFrameBase_Release(IHTMLFrameBase *iface)
{ {
HTMLFrameBase *This = HTMLFRAMEBASE_THIS(iface); HTMLFrameBase *This = HTMLFRAMEBASE_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLFrameBase_GetTypeInfoCount(IHTMLFrameBase *iface, UINT *pctinfo) static HRESULT WINAPI HTMLFrameBase_GetTypeInfoCount(IHTMLFrameBase *iface, UINT *pctinfo)
@ -374,21 +374,21 @@ static HRESULT WINAPI HTMLFrameBase2_QueryInterface(IHTMLFrameBase2 *iface, REFI
{ {
HTMLFrameBase *This = HTMLFRAMEBASE2_THIS(iface); HTMLFrameBase *This = HTMLFRAMEBASE2_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLFrameBase2_AddRef(IHTMLFrameBase2 *iface) static ULONG WINAPI HTMLFrameBase2_AddRef(IHTMLFrameBase2 *iface)
{ {
HTMLFrameBase *This = HTMLFRAMEBASE2_THIS(iface); HTMLFrameBase *This = HTMLFRAMEBASE2_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLFrameBase2_Release(IHTMLFrameBase2 *iface) static ULONG WINAPI HTMLFrameBase2_Release(IHTMLFrameBase2 *iface)
{ {
HTMLFrameBase *This = HTMLFRAMEBASE2_THIS(iface); HTMLFrameBase *This = HTMLFRAMEBASE2_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLFrameBase2_GetTypeInfoCount(IHTMLFrameBase2 *iface, UINT *pctinfo) static HRESULT WINAPI HTMLFrameBase2_GetTypeInfoCount(IHTMLFrameBase2 *iface, UINT *pctinfo)

View File

@ -47,21 +47,21 @@ static HRESULT WINAPI HTMLGenericElement_QueryInterface(IHTMLGenericElement *ifa
{ {
HTMLGenericElement *This = impl_from_IHTMLGenericElement(iface); HTMLGenericElement *This = impl_from_IHTMLGenericElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLGenericElement_AddRef(IHTMLGenericElement *iface) static ULONG WINAPI HTMLGenericElement_AddRef(IHTMLGenericElement *iface)
{ {
HTMLGenericElement *This = impl_from_IHTMLGenericElement(iface); HTMLGenericElement *This = impl_from_IHTMLGenericElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLGenericElement_Release(IHTMLGenericElement *iface) static ULONG WINAPI HTMLGenericElement_Release(IHTMLGenericElement *iface)
{ {
HTMLGenericElement *This = impl_from_IHTMLGenericElement(iface); HTMLGenericElement *This = impl_from_IHTMLGenericElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLGenericElement_GetTypeInfoCount(IHTMLGenericElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLGenericElement_GetTypeInfoCount(IHTMLGenericElement *iface, UINT *pctinfo)

View File

@ -46,21 +46,21 @@ static HRESULT WINAPI HTMLIFrameElement_QueryInterface(IHTMLIFrameElement *iface
{ {
HTMLIFrame *This = impl_from_IHTMLIFrameElement(iface); HTMLIFrame *This = impl_from_IHTMLIFrameElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->framebase.element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->framebase.element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLIFrameElement_AddRef(IHTMLIFrameElement *iface) static ULONG WINAPI HTMLIFrameElement_AddRef(IHTMLIFrameElement *iface)
{ {
HTMLIFrame *This = impl_from_IHTMLIFrameElement(iface); HTMLIFrame *This = impl_from_IHTMLIFrameElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->framebase.element.node)); return IHTMLDOMNode_AddRef(&This->framebase.element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLIFrameElement_Release(IHTMLIFrameElement *iface) static ULONG WINAPI HTMLIFrameElement_Release(IHTMLIFrameElement *iface)
{ {
HTMLIFrame *This = impl_from_IHTMLIFrameElement(iface); HTMLIFrame *This = impl_from_IHTMLIFrameElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->framebase.element.node)); return IHTMLDOMNode_Release(&This->framebase.element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLIFrameElement_GetTypeInfoCount(IHTMLIFrameElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLIFrameElement_GetTypeInfoCount(IHTMLIFrameElement *iface, UINT *pctinfo)

View File

@ -49,21 +49,21 @@ static HRESULT WINAPI HTMLImgElement_QueryInterface(IHTMLImgElement *iface, REFI
{ {
HTMLImgElement *This = impl_from_IHTMLImgElement(iface); HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLImgElement_AddRef(IHTMLImgElement *iface) static ULONG WINAPI HTMLImgElement_AddRef(IHTMLImgElement *iface)
{ {
HTMLImgElement *This = impl_from_IHTMLImgElement(iface); HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLImgElement_Release(IHTMLImgElement *iface) static ULONG WINAPI HTMLImgElement_Release(IHTMLImgElement *iface)
{ {
HTMLImgElement *This = impl_from_IHTMLImgElement(iface); HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLImgElement_GetTypeInfoCount(IHTMLImgElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLImgElement_GetTypeInfoCount(IHTMLImgElement *iface, UINT *pctinfo)

View File

@ -56,21 +56,21 @@ static HRESULT WINAPI HTMLInputElement_QueryInterface(IHTMLInputElement *iface,
{ {
HTMLInputElement *This = impl_from_IHTMLInputElement(iface); HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLInputElement_AddRef(IHTMLInputElement *iface) static ULONG WINAPI HTMLInputElement_AddRef(IHTMLInputElement *iface)
{ {
HTMLInputElement *This = impl_from_IHTMLInputElement(iface); HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLInputElement_Release(IHTMLInputElement *iface) static ULONG WINAPI HTMLInputElement_Release(IHTMLInputElement *iface)
{ {
HTMLInputElement *This = impl_from_IHTMLInputElement(iface); HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLInputElement_GetTypeInfoCount(IHTMLInputElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLInputElement_GetTypeInfoCount(IHTMLInputElement *iface, UINT *pctinfo)
@ -825,21 +825,21 @@ static HRESULT WINAPI HTMLInputTextElement_QueryInterface(IHTMLInputTextElement
{ {
HTMLInputElement *This = impl_from_IHTMLInputTextElement(iface); HTMLInputElement *This = impl_from_IHTMLInputTextElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLInputTextElement_AddRef(IHTMLInputTextElement *iface) static ULONG WINAPI HTMLInputTextElement_AddRef(IHTMLInputTextElement *iface)
{ {
HTMLInputElement *This = impl_from_IHTMLInputTextElement(iface); HTMLInputElement *This = impl_from_IHTMLInputTextElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLInputTextElement_Release(IHTMLInputTextElement *iface) static ULONG WINAPI HTMLInputTextElement_Release(IHTMLInputTextElement *iface)
{ {
HTMLInputElement *This = impl_from_IHTMLInputTextElement(iface); HTMLInputElement *This = impl_from_IHTMLInputTextElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLInputTextElement_GetTypeInfoCount(IHTMLInputTextElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLInputTextElement_GetTypeInfoCount(IHTMLInputTextElement *iface, UINT *pctinfo)

View File

@ -179,7 +179,7 @@ static HRESULT WINAPI HTMLDOMChildrenCollection_item(IHTMLDOMChildrenCollection
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*ppItem = (IDispatch*)HTMLDOMNODE(node); *ppItem = (IDispatch*)&node->IHTMLDOMNode_iface;
IDispatch_AddRef(*ppItem); IDispatch_AddRef(*ppItem);
return S_OK; return S_OK;
} }
@ -291,19 +291,22 @@ static IHTMLDOMChildrenCollection *create_child_collection(HTMLDocumentNode *doc
return HTMLCHILDCOL(ret); return HTMLCHILDCOL(ret);
} }
#define HTMLDOMNODE_THIS(iface) DEFINE_THIS(HTMLDOMNode, HTMLDOMNode, iface) static inline HTMLDOMNode *impl_from_IHTMLDOMNode(IHTMLDOMNode *iface)
{
return CONTAINING_RECORD(iface, HTMLDOMNode, IHTMLDOMNode_iface);
}
static HRESULT WINAPI HTMLDOMNode_QueryInterface(IHTMLDOMNode *iface, static HRESULT WINAPI HTMLDOMNode_QueryInterface(IHTMLDOMNode *iface,
REFIID riid, void **ppv) REFIID riid, void **ppv)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
return This->vtbl->qi(This, riid, ppv); return This->vtbl->qi(This, riid, ppv);
} }
static ULONG WINAPI HTMLDOMNode_AddRef(IHTMLDOMNode *iface) static ULONG WINAPI HTMLDOMNode_AddRef(IHTMLDOMNode *iface)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
LONG ref = InterlockedIncrement(&This->ref); LONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref); TRACE("(%p) ref=%d\n", This, ref);
@ -313,7 +316,7 @@ static ULONG WINAPI HTMLDOMNode_AddRef(IHTMLDOMNode *iface)
static ULONG WINAPI HTMLDOMNode_Release(IHTMLDOMNode *iface) static ULONG WINAPI HTMLDOMNode_Release(IHTMLDOMNode *iface)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
LONG ref = InterlockedDecrement(&This->ref); LONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref); TRACE("(%p) ref=%d\n", This, ref);
@ -329,14 +332,14 @@ static ULONG WINAPI HTMLDOMNode_Release(IHTMLDOMNode *iface)
static HRESULT WINAPI HTMLDOMNode_GetTypeInfoCount(IHTMLDOMNode *iface, UINT *pctinfo) static HRESULT WINAPI HTMLDOMNode_GetTypeInfoCount(IHTMLDOMNode *iface, UINT *pctinfo)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->dispex), pctinfo); return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->dispex), pctinfo);
} }
static HRESULT WINAPI HTMLDOMNode_GetTypeInfo(IHTMLDOMNode *iface, UINT iTInfo, static HRESULT WINAPI HTMLDOMNode_GetTypeInfo(IHTMLDOMNode *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo) LCID lcid, ITypeInfo **ppTInfo)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo); return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo);
} }
@ -344,7 +347,7 @@ static HRESULT WINAPI HTMLDOMNode_GetIDsOfNames(IHTMLDOMNode *iface, REFIID riid
LPOLESTR *rgszNames, UINT cNames, LPOLESTR *rgszNames, UINT cNames,
LCID lcid, DISPID *rgDispId) LCID lcid, DISPID *rgDispId)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId); return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId);
} }
@ -352,14 +355,14 @@ static HRESULT WINAPI HTMLDOMNode_Invoke(IHTMLDOMNode *iface, DISPID dispIdMembe
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid, return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
} }
static HRESULT WINAPI HTMLDOMNode_get_nodeType(IHTMLDOMNode *iface, LONG *p) static HRESULT WINAPI HTMLDOMNode_get_nodeType(IHTMLDOMNode *iface, LONG *p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
PRUint16 type = -1; PRUint16 type = -1;
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
@ -397,7 +400,7 @@ static HRESULT WINAPI HTMLDOMNode_get_nodeType(IHTMLDOMNode *iface, LONG *p)
static HRESULT WINAPI HTMLDOMNode_get_parentNode(IHTMLDOMNode *iface, IHTMLDOMNode **p) static HRESULT WINAPI HTMLDOMNode_get_parentNode(IHTMLDOMNode *iface, IHTMLDOMNode **p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
HTMLDOMNode *node; HTMLDOMNode *node;
nsIDOMNode *nsnode; nsIDOMNode *nsnode;
nsresult nsres; nsresult nsres;
@ -421,14 +424,14 @@ static HRESULT WINAPI HTMLDOMNode_get_parentNode(IHTMLDOMNode *iface, IHTMLDOMNo
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*p = HTMLDOMNODE(node); *p = &node->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(*p); IHTMLDOMNode_AddRef(*p);
return S_OK; return S_OK;
} }
static HRESULT WINAPI HTMLDOMNode_hasChildNodes(IHTMLDOMNode *iface, VARIANT_BOOL *fChildren) static HRESULT WINAPI HTMLDOMNode_hasChildNodes(IHTMLDOMNode *iface, VARIANT_BOOL *fChildren)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
PRBool has_child = FALSE; PRBool has_child = FALSE;
nsresult nsres; nsresult nsres;
@ -444,7 +447,7 @@ static HRESULT WINAPI HTMLDOMNode_hasChildNodes(IHTMLDOMNode *iface, VARIANT_BOO
static HRESULT WINAPI HTMLDOMNode_get_childNodes(IHTMLDOMNode *iface, IDispatch **p) static HRESULT WINAPI HTMLDOMNode_get_childNodes(IHTMLDOMNode *iface, IDispatch **p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
nsIDOMNodeList *nslist; nsIDOMNodeList *nslist;
nsresult nsres; nsresult nsres;
@ -464,7 +467,7 @@ static HRESULT WINAPI HTMLDOMNode_get_childNodes(IHTMLDOMNode *iface, IDispatch
static HRESULT WINAPI HTMLDOMNode_get_attributes(IHTMLDOMNode *iface, IDispatch **p) static HRESULT WINAPI HTMLDOMNode_get_attributes(IHTMLDOMNode *iface, IDispatch **p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -472,7 +475,7 @@ static HRESULT WINAPI HTMLDOMNode_get_attributes(IHTMLDOMNode *iface, IDispatch
static HRESULT WINAPI HTMLDOMNode_insertBefore(IHTMLDOMNode *iface, IHTMLDOMNode *newChild, static HRESULT WINAPI HTMLDOMNode_insertBefore(IHTMLDOMNode *iface, IHTMLDOMNode *newChild,
VARIANT refChild, IHTMLDOMNode **node) VARIANT refChild, IHTMLDOMNode **node)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
nsIDOMNode *nsnode, *nsref = NULL; nsIDOMNode *nsnode, *nsref = NULL;
HTMLDOMNode *new_child; HTMLDOMNode *new_child;
HTMLDOMNode *node_obj; HTMLDOMNode *node_obj;
@ -518,7 +521,7 @@ static HRESULT WINAPI HTMLDOMNode_insertBefore(IHTMLDOMNode *iface, IHTMLDOMNode
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*node = HTMLDOMNODE(node_obj); *node = &node_obj->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(*node); IHTMLDOMNode_AddRef(*node);
return S_OK; return S_OK;
} }
@ -526,7 +529,7 @@ static HRESULT WINAPI HTMLDOMNode_insertBefore(IHTMLDOMNode *iface, IHTMLDOMNode
static HRESULT WINAPI HTMLDOMNode_removeChild(IHTMLDOMNode *iface, IHTMLDOMNode *oldChild, static HRESULT WINAPI HTMLDOMNode_removeChild(IHTMLDOMNode *iface, IHTMLDOMNode *oldChild,
IHTMLDOMNode **node) IHTMLDOMNode **node)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
HTMLDOMNode *node_obj; HTMLDOMNode *node_obj;
nsIDOMNode *nsnode; nsIDOMNode *nsnode;
nsresult nsres; nsresult nsres;
@ -550,7 +553,7 @@ static HRESULT WINAPI HTMLDOMNode_removeChild(IHTMLDOMNode *iface, IHTMLDOMNode
return hres; return hres;
/* FIXME: Make sure that node != newChild */ /* FIXME: Make sure that node != newChild */
*node = HTMLDOMNODE(node_obj); *node = &node_obj->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(*node); IHTMLDOMNode_AddRef(*node);
return S_OK; return S_OK;
} }
@ -558,7 +561,7 @@ static HRESULT WINAPI HTMLDOMNode_removeChild(IHTMLDOMNode *iface, IHTMLDOMNode
static HRESULT WINAPI HTMLDOMNode_replaceChild(IHTMLDOMNode *iface, IHTMLDOMNode *newChild, static HRESULT WINAPI HTMLDOMNode_replaceChild(IHTMLDOMNode *iface, IHTMLDOMNode *newChild,
IHTMLDOMNode *oldChild, IHTMLDOMNode **node) IHTMLDOMNode *oldChild, IHTMLDOMNode **node)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
FIXME("(%p)->(%p %p %p)\n", This, newChild, oldChild, node); FIXME("(%p)->(%p %p %p)\n", This, newChild, oldChild, node);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -566,7 +569,7 @@ static HRESULT WINAPI HTMLDOMNode_replaceChild(IHTMLDOMNode *iface, IHTMLDOMNode
static HRESULT WINAPI HTMLDOMNode_cloneNode(IHTMLDOMNode *iface, VARIANT_BOOL fDeep, static HRESULT WINAPI HTMLDOMNode_cloneNode(IHTMLDOMNode *iface, VARIANT_BOOL fDeep,
IHTMLDOMNode **clonedNode) IHTMLDOMNode **clonedNode)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
HTMLDOMNode *new_node; HTMLDOMNode *new_node;
nsIDOMNode *nsnode; nsIDOMNode *nsnode;
nsresult nsres; nsresult nsres;
@ -584,14 +587,14 @@ static HRESULT WINAPI HTMLDOMNode_cloneNode(IHTMLDOMNode *iface, VARIANT_BOOL fD
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*clonedNode = HTMLDOMNODE(new_node); *clonedNode = &new_node->IHTMLDOMNode_iface;
return S_OK; return S_OK;
} }
static HRESULT WINAPI HTMLDOMNode_removeNode(IHTMLDOMNode *iface, VARIANT_BOOL fDeep, static HRESULT WINAPI HTMLDOMNode_removeNode(IHTMLDOMNode *iface, VARIANT_BOOL fDeep,
IHTMLDOMNode **removed) IHTMLDOMNode **removed)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
FIXME("(%p)->(%x %p)\n", This, fDeep, removed); FIXME("(%p)->(%x %p)\n", This, fDeep, removed);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -599,7 +602,7 @@ static HRESULT WINAPI HTMLDOMNode_removeNode(IHTMLDOMNode *iface, VARIANT_BOOL f
static HRESULT WINAPI HTMLDOMNode_swapNode(IHTMLDOMNode *iface, IHTMLDOMNode *otherNode, static HRESULT WINAPI HTMLDOMNode_swapNode(IHTMLDOMNode *iface, IHTMLDOMNode *otherNode,
IHTMLDOMNode **swappedNode) IHTMLDOMNode **swappedNode)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
FIXME("(%p)->(%p %p)\n", This, otherNode, swappedNode); FIXME("(%p)->(%p %p)\n", This, otherNode, swappedNode);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -607,7 +610,7 @@ static HRESULT WINAPI HTMLDOMNode_swapNode(IHTMLDOMNode *iface, IHTMLDOMNode *ot
static HRESULT WINAPI HTMLDOMNode_replaceNode(IHTMLDOMNode *iface, IHTMLDOMNode *replacement, static HRESULT WINAPI HTMLDOMNode_replaceNode(IHTMLDOMNode *iface, IHTMLDOMNode *replacement,
IHTMLDOMNode **replaced) IHTMLDOMNode **replaced)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
FIXME("(%p)->(%p %p)\n", This, replacement, replaced); FIXME("(%p)->(%p %p)\n", This, replacement, replaced);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -615,7 +618,7 @@ static HRESULT WINAPI HTMLDOMNode_replaceNode(IHTMLDOMNode *iface, IHTMLDOMNode
static HRESULT WINAPI HTMLDOMNode_appendChild(IHTMLDOMNode *iface, IHTMLDOMNode *newChild, static HRESULT WINAPI HTMLDOMNode_appendChild(IHTMLDOMNode *iface, IHTMLDOMNode *newChild,
IHTMLDOMNode **node) IHTMLDOMNode **node)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
HTMLDOMNode *node_obj; HTMLDOMNode *node_obj;
nsIDOMNode *nsnode; nsIDOMNode *nsnode;
nsresult nsres; nsresult nsres;
@ -639,14 +642,14 @@ static HRESULT WINAPI HTMLDOMNode_appendChild(IHTMLDOMNode *iface, IHTMLDOMNode
return hres; return hres;
/* FIXME: Make sure that node != newChild */ /* FIXME: Make sure that node != newChild */
*node = HTMLDOMNODE(node_obj); *node = &node_obj->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(*node); IHTMLDOMNode_AddRef(*node);
return S_OK; return S_OK;
} }
static HRESULT WINAPI HTMLDOMNode_get_nodeName(IHTMLDOMNode *iface, BSTR *p) static HRESULT WINAPI HTMLDOMNode_get_nodeName(IHTMLDOMNode *iface, BSTR *p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
@ -675,7 +678,7 @@ static HRESULT WINAPI HTMLDOMNode_get_nodeName(IHTMLDOMNode *iface, BSTR *p)
static HRESULT WINAPI HTMLDOMNode_put_nodeValue(IHTMLDOMNode *iface, VARIANT v) static HRESULT WINAPI HTMLDOMNode_put_nodeValue(IHTMLDOMNode *iface, VARIANT v)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
TRACE("(%p)->()\n", This); TRACE("(%p)->()\n", This);
@ -701,7 +704,7 @@ static HRESULT WINAPI HTMLDOMNode_put_nodeValue(IHTMLDOMNode *iface, VARIANT v)
static HRESULT WINAPI HTMLDOMNode_get_nodeValue(IHTMLDOMNode *iface, VARIANT *p) static HRESULT WINAPI HTMLDOMNode_get_nodeValue(IHTMLDOMNode *iface, VARIANT *p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
const PRUnichar *val; const PRUnichar *val;
nsAString val_str; nsAString val_str;
@ -725,7 +728,7 @@ static HRESULT WINAPI HTMLDOMNode_get_nodeValue(IHTMLDOMNode *iface, VARIANT *p)
static HRESULT WINAPI HTMLDOMNode_get_firstChild(IHTMLDOMNode *iface, IHTMLDOMNode **p) static HRESULT WINAPI HTMLDOMNode_get_firstChild(IHTMLDOMNode *iface, IHTMLDOMNode **p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
nsIDOMNode *nschild = NULL; nsIDOMNode *nschild = NULL;
HTMLDOMNode *node; HTMLDOMNode *node;
HRESULT hres; HRESULT hres;
@ -743,14 +746,14 @@ static HRESULT WINAPI HTMLDOMNode_get_firstChild(IHTMLDOMNode *iface, IHTMLDOMNo
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*p = HTMLDOMNODE(node); *p = &node->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(*p); IHTMLDOMNode_AddRef(*p);
return S_OK; return S_OK;
} }
static HRESULT WINAPI HTMLDOMNode_get_lastChild(IHTMLDOMNode *iface, IHTMLDOMNode **p) static HRESULT WINAPI HTMLDOMNode_get_lastChild(IHTMLDOMNode *iface, IHTMLDOMNode **p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
nsIDOMNode *nschild = NULL; nsIDOMNode *nschild = NULL;
HTMLDOMNode *node; HTMLDOMNode *node;
HRESULT hres; HRESULT hres;
@ -768,21 +771,21 @@ static HRESULT WINAPI HTMLDOMNode_get_lastChild(IHTMLDOMNode *iface, IHTMLDOMNod
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*p = HTMLDOMNODE(node); *p = &node->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(*p); IHTMLDOMNode_AddRef(*p);
return S_OK; return S_OK;
} }
static HRESULT WINAPI HTMLDOMNode_get_previousSibling(IHTMLDOMNode *iface, IHTMLDOMNode **p) static HRESULT WINAPI HTMLDOMNode_get_previousSibling(IHTMLDOMNode *iface, IHTMLDOMNode **p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDOMNode_get_nextSibling(IHTMLDOMNode *iface, IHTMLDOMNode **p) static HRESULT WINAPI HTMLDOMNode_get_nextSibling(IHTMLDOMNode *iface, IHTMLDOMNode **p)
{ {
HTMLDOMNode *This = HTMLDOMNODE_THIS(iface); HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface);
nsIDOMNode *nssibling = NULL; nsIDOMNode *nssibling = NULL;
HTMLDOMNode *node; HTMLDOMNode *node;
HRESULT hres; HRESULT hres;
@ -800,13 +803,11 @@ static HRESULT WINAPI HTMLDOMNode_get_nextSibling(IHTMLDOMNode *iface, IHTMLDOMN
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
*p = HTMLDOMNODE(node); *p = &node->IHTMLDOMNode_iface;
IHTMLDOMNode_AddRef(*p); IHTMLDOMNode_AddRef(*p);
return S_OK; return S_OK;
} }
#undef HTMLDOMNODE_THIS
static const IHTMLDOMNodeVtbl HTMLDOMNodeVtbl = { static const IHTMLDOMNodeVtbl HTMLDOMNodeVtbl = {
HTMLDOMNode_QueryInterface, HTMLDOMNode_QueryInterface,
HTMLDOMNode_AddRef, HTMLDOMNode_AddRef,
@ -844,21 +845,21 @@ static HRESULT WINAPI HTMLDOMNode2_QueryInterface(IHTMLDOMNode2 *iface,
{ {
HTMLDOMNode *This = HTMLDOMNODE2_THIS(iface); HTMLDOMNode *This = HTMLDOMNODE2_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(This), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLDOMNode2_AddRef(IHTMLDOMNode2 *iface) static ULONG WINAPI HTMLDOMNode2_AddRef(IHTMLDOMNode2 *iface)
{ {
HTMLDOMNode *This = HTMLDOMNODE2_THIS(iface); HTMLDOMNode *This = HTMLDOMNODE2_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(This)); return IHTMLDOMNode_AddRef(&This->IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLDOMNode2_Release(IHTMLDOMNode2 *iface) static ULONG WINAPI HTMLDOMNode2_Release(IHTMLDOMNode2 *iface)
{ {
HTMLDOMNode *This = HTMLDOMNODE2_THIS(iface); HTMLDOMNode *This = HTMLDOMNODE2_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(This)); return IHTMLDOMNode_Release(&This->IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLDOMNode2_GetTypeInfoCount(IHTMLDOMNode2 *iface, UINT *pctinfo) static HRESULT WINAPI HTMLDOMNode2_GetTypeInfoCount(IHTMLDOMNode2 *iface, UINT *pctinfo)
@ -926,10 +927,10 @@ HRESULT HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid, void **ppv)
if(IsEqualGUID(&IID_IUnknown, riid)) { if(IsEqualGUID(&IID_IUnknown, riid)) {
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = HTMLDOMNODE(This); *ppv = &This->IHTMLDOMNode_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) { }else if(IsEqualGUID(&IID_IDispatch, riid)) {
TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = HTMLDOMNODE(This); *ppv = &This->IHTMLDOMNode_iface;
}else if(IsEqualGUID(&IID_IDispatchEx, riid)) { }else if(IsEqualGUID(&IID_IDispatchEx, riid)) {
if(This->dispex.data) { if(This->dispex.data) {
TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv); TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv);
@ -940,7 +941,7 @@ HRESULT HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid, void **ppv)
} }
}else if(IsEqualGUID(&IID_IHTMLDOMNode, riid)) { }else if(IsEqualGUID(&IID_IHTMLDOMNode, riid)) {
TRACE("(%p)->(IID_IHTMLDOMNode %p)\n", This, ppv); TRACE("(%p)->(IID_IHTMLDOMNode %p)\n", This, ppv);
*ppv = HTMLDOMNODE(This); *ppv = &This->IHTMLDOMNode_iface;
}else if(IsEqualGUID(&IID_IHTMLDOMNode2, riid)) { }else if(IsEqualGUID(&IID_IHTMLDOMNode2, riid)) {
TRACE("(%p)->(IID_IHTMLDOMNode2 %p)\n", This, ppv); TRACE("(%p)->(IID_IHTMLDOMNode2 %p)\n", This, ppv);
*ppv = HTMLDOMNODE2(This); *ppv = HTMLDOMNODE2(This);
@ -973,7 +974,7 @@ static HRESULT HTMLDOMNode_clone(HTMLDOMNode *This, nsIDOMNode *nsnode, HTMLDOMN
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
IHTMLDOMNode_AddRef(HTMLDOMNODE(*ret)); IHTMLDOMNode_AddRef(&(*ret)->IHTMLDOMNode_iface);
return S_OK; return S_OK;
} }
@ -985,7 +986,7 @@ static const NodeImplVtbl HTMLDOMNodeImplVtbl = {
void HTMLDOMNode_Init(HTMLDocumentNode *doc, HTMLDOMNode *node, nsIDOMNode *nsnode) void HTMLDOMNode_Init(HTMLDocumentNode *doc, HTMLDOMNode *node, nsIDOMNode *nsnode)
{ {
node->lpHTMLDOMNodeVtbl = &HTMLDOMNodeVtbl; node->IHTMLDOMNode_iface.lpVtbl = &HTMLDOMNodeVtbl;
node->lpHTMLDOMNode2Vtbl = &HTMLDOMNode2Vtbl; node->lpHTMLDOMNode2Vtbl = &HTMLDOMNode2Vtbl;
node->ref = 1; node->ref = 1;
node->doc = doc; node->doc = doc;
@ -1082,7 +1083,7 @@ static HTMLDOMNode *get_node_obj(HTMLDocumentNode *This, IUnknown *iface)
IHTMLDOMNode_Release(node); IHTMLDOMNode_Release(node);
while(iter) { while(iter) {
if(HTMLDOMNODE(iter) == node) if(&iter->IHTMLDOMNode_iface == node)
return iter; return iter;
iter = iter->next; iter = iter->next;
} }
@ -1102,6 +1103,6 @@ void release_nodes(HTMLDocumentNode *This)
next = iter->next; next = iter->next;
iter->doc = NULL; iter->doc = NULL;
if(&This->node != iter) if(&This->node != iter)
IHTMLDOMNode_Release(HTMLDOMNODE(iter)); IHTMLDOMNode_Release(&iter->IHTMLDOMNode_iface);
} }
} }

View File

@ -51,21 +51,22 @@ static HRESULT WINAPI HTMLObjectElement_QueryInterface(IHTMLObjectElement *iface
{ {
HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface); HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->plugin_container.element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->plugin_container.element.node.IHTMLDOMNode_iface,
riid, ppv);
} }
static ULONG WINAPI HTMLObjectElement_AddRef(IHTMLObjectElement *iface) static ULONG WINAPI HTMLObjectElement_AddRef(IHTMLObjectElement *iface)
{ {
HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface); HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->plugin_container.element.node)); return IHTMLDOMNode_AddRef(&This->plugin_container.element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLObjectElement_Release(IHTMLObjectElement *iface) static ULONG WINAPI HTMLObjectElement_Release(IHTMLObjectElement *iface)
{ {
HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface); HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->plugin_container.element.node)); return IHTMLDOMNode_Release(&This->plugin_container.element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLObjectElement_GetTypeInfoCount(IHTMLObjectElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLObjectElement_GetTypeInfoCount(IHTMLObjectElement *iface, UINT *pctinfo)

View File

@ -48,21 +48,21 @@ static HRESULT WINAPI HTMLOptionElement_QueryInterface(IHTMLOptionElement *iface
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = HTMLOPTION_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLOptionElement_AddRef(IHTMLOptionElement *iface) static ULONG WINAPI HTMLOptionElement_AddRef(IHTMLOptionElement *iface)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = HTMLOPTION_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLOptionElement_Release(IHTMLOptionElement *iface) static ULONG WINAPI HTMLOptionElement_Release(IHTMLOptionElement *iface)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = HTMLOPTION_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLOptionElement_GetTypeInfoCount(IHTMLOptionElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLOptionElement_GetTypeInfoCount(IHTMLOptionElement *iface, UINT *pctinfo)
@ -499,7 +499,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
hres = IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), hres = IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface,
&IID_IHTMLOptionElement, (void**)optelem); &IID_IHTMLOptionElement, (void**)optelem);
if(V_VT(&text) == VT_BSTR) if(V_VT(&text) == VT_BSTR)

View File

@ -49,21 +49,21 @@ static HRESULT WINAPI HTMLScriptElement_QueryInterface(IHTMLScriptElement *iface
{ {
HTMLScriptElement *This = impl_from_IHTMLScriptElement(iface); HTMLScriptElement *This = impl_from_IHTMLScriptElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLScriptElement_AddRef(IHTMLScriptElement *iface) static ULONG WINAPI HTMLScriptElement_AddRef(IHTMLScriptElement *iface)
{ {
HTMLScriptElement *This = impl_from_IHTMLScriptElement(iface); HTMLScriptElement *This = impl_from_IHTMLScriptElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLScriptElement_Release(IHTMLScriptElement *iface) static ULONG WINAPI HTMLScriptElement_Release(IHTMLScriptElement *iface)
{ {
HTMLScriptElement *This = impl_from_IHTMLScriptElement(iface); HTMLScriptElement *This = impl_from_IHTMLScriptElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLScriptElement_GetTypeInfoCount(IHTMLScriptElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLScriptElement_GetTypeInfoCount(IHTMLScriptElement *iface, UINT *pctinfo)

View File

@ -73,8 +73,8 @@ static HRESULT htmlselect_item(HTMLSelectElement *This, int i, IDispatch **ret)
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
IHTMLDOMNode_AddRef(HTMLDOMNODE(node)); IHTMLDOMNode_AddRef(&node->IHTMLDOMNode_iface);
*ret = (IDispatch*)HTMLDOMNODE(node); *ret = (IDispatch*)&node->IHTMLDOMNode_iface;
}else { }else {
*ret = NULL; *ret = NULL;
} }
@ -86,21 +86,21 @@ static HRESULT WINAPI HTMLSelectElement_QueryInterface(IHTMLSelectElement *iface
{ {
HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface); HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLSelectElement_AddRef(IHTMLSelectElement *iface) static ULONG WINAPI HTMLSelectElement_AddRef(IHTMLSelectElement *iface)
{ {
HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface); HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLSelectElement_Release(IHTMLSelectElement *iface) static ULONG WINAPI HTMLSelectElement_Release(IHTMLSelectElement *iface)
{ {
HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface); HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLSelectElement_GetTypeInfoCount(IHTMLSelectElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLSelectElement_GetTypeInfoCount(IHTMLSelectElement *iface, UINT *pctinfo)
@ -387,7 +387,7 @@ static HRESULT WINAPI HTMLSelectElement_add(IHTMLSelectElement *iface, IHTMLElem
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
hres = IHTMLDOMNode_appendChild(HTMLDOMNODE(&This->element.node), node, &tmp); hres = IHTMLDOMNode_appendChild(&This->element.node.IHTMLDOMNode_iface, node, &tmp);
IHTMLDOMNode_Release(node); IHTMLDOMNode_Release(node);
if(SUCCEEDED(hres) && tmp) if(SUCCEEDED(hres) && tmp)
IHTMLDOMNode_Release(tmp); IHTMLDOMNode_Release(tmp);

View File

@ -49,21 +49,21 @@ static HRESULT WINAPI HTMLStyleElement_QueryInterface(IHTMLStyleElement *iface,
{ {
HTMLStyleElement *This = HTMLSTYLE_THIS(iface); HTMLStyleElement *This = HTMLSTYLE_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLStyleElement_AddRef(IHTMLStyleElement *iface) static ULONG WINAPI HTMLStyleElement_AddRef(IHTMLStyleElement *iface)
{ {
HTMLStyleElement *This = HTMLSTYLE_THIS(iface); HTMLStyleElement *This = HTMLSTYLE_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLStyleElement_Release(IHTMLStyleElement *iface) static ULONG WINAPI HTMLStyleElement_Release(IHTMLStyleElement *iface)
{ {
HTMLStyleElement *This = HTMLSTYLE_THIS(iface); HTMLStyleElement *This = HTMLSTYLE_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLStyleElement_GetTypeInfoCount(IHTMLStyleElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLStyleElement_GetTypeInfoCount(IHTMLStyleElement *iface, UINT *pctinfo)

View File

@ -49,21 +49,21 @@ static HRESULT WINAPI HTMLTable_QueryInterface(IHTMLTable *iface,
{ {
HTMLTable *This = HTMLTABLE_THIS(iface); HTMLTable *This = HTMLTABLE_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLTable_AddRef(IHTMLTable *iface) static ULONG WINAPI HTMLTable_AddRef(IHTMLTable *iface)
{ {
HTMLTable *This = HTMLTABLE_THIS(iface); HTMLTable *This = HTMLTABLE_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLTable_Release(IHTMLTable *iface) static ULONG WINAPI HTMLTable_Release(IHTMLTable *iface)
{ {
HTMLTable *This = HTMLTABLE_THIS(iface); HTMLTable *This = HTMLTABLE_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLTable_GetTypeInfoCount(IHTMLTable *iface, UINT *pctinfo) static HRESULT WINAPI HTMLTable_GetTypeInfoCount(IHTMLTable *iface, UINT *pctinfo)

View File

@ -49,21 +49,21 @@ static HRESULT WINAPI HTMLTableRow_QueryInterface(IHTMLTableRow *iface,
{ {
HTMLTableRow *This = impl_from_IHTMLTableRow(iface); HTMLTableRow *This = impl_from_IHTMLTableRow(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLTableRow_AddRef(IHTMLTableRow *iface) static ULONG WINAPI HTMLTableRow_AddRef(IHTMLTableRow *iface)
{ {
HTMLTableRow *This = impl_from_IHTMLTableRow(iface); HTMLTableRow *This = impl_from_IHTMLTableRow(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLTableRow_Release(IHTMLTableRow *iface) static ULONG WINAPI HTMLTableRow_Release(IHTMLTableRow *iface)
{ {
HTMLTableRow *This = impl_from_IHTMLTableRow(iface); HTMLTableRow *This = impl_from_IHTMLTableRow(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLTableRow_GetTypeInfoCount(IHTMLTableRow *iface, UINT *pctinfo) static HRESULT WINAPI HTMLTableRow_GetTypeInfoCount(IHTMLTableRow *iface, UINT *pctinfo)

View File

@ -49,21 +49,21 @@ static HRESULT WINAPI HTMLTextAreaElement_QueryInterface(IHTMLTextAreaElement *i
{ {
HTMLTextAreaElement *This = impl_from_IHTMLTextAreaElement(iface); HTMLTextAreaElement *This = impl_from_IHTMLTextAreaElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLTextAreaElement_AddRef(IHTMLTextAreaElement *iface) static ULONG WINAPI HTMLTextAreaElement_AddRef(IHTMLTextAreaElement *iface)
{ {
HTMLTextAreaElement *This = impl_from_IHTMLTextAreaElement(iface); HTMLTextAreaElement *This = impl_from_IHTMLTextAreaElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLTextAreaElement_Release(IHTMLTextAreaElement *iface) static ULONG WINAPI HTMLTextAreaElement_Release(IHTMLTextAreaElement *iface)
{ {
HTMLTextAreaElement *This = impl_from_IHTMLTextAreaElement(iface); HTMLTextAreaElement *This = impl_from_IHTMLTextAreaElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLTextAreaElement_GetTypeInfoCount(IHTMLTextAreaElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLTextAreaElement_GetTypeInfoCount(IHTMLTextAreaElement *iface, UINT *pctinfo)

View File

@ -48,21 +48,21 @@ static HRESULT WINAPI HTMLDOMTextNode_QueryInterface(IHTMLDOMTextNode *iface,
{ {
HTMLDOMTextNode *This = HTMLTEXT_THIS(iface); HTMLDOMTextNode *This = HTMLTEXT_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLDOMTextNode_AddRef(IHTMLDOMTextNode *iface) static ULONG WINAPI HTMLDOMTextNode_AddRef(IHTMLDOMTextNode *iface)
{ {
HTMLDOMTextNode *This = HTMLTEXT_THIS(iface); HTMLDOMTextNode *This = HTMLTEXT_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->node)); return IHTMLDOMNode_AddRef(&This->node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLDOMTextNode_Release(IHTMLDOMTextNode *iface) static ULONG WINAPI HTMLDOMTextNode_Release(IHTMLDOMTextNode *iface)
{ {
HTMLDOMTextNode *This = HTMLTEXT_THIS(iface); HTMLDOMTextNode *This = HTMLTEXT_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->node)); return IHTMLDOMNode_Release(&This->node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLDOMTextNode_GetTypeInfoCount(IHTMLDOMTextNode *iface, UINT *pctinfo) static HRESULT WINAPI HTMLDOMTextNode_GetTypeInfoCount(IHTMLDOMTextNode *iface, UINT *pctinfo)
@ -197,7 +197,7 @@ static HRESULT HTMLDOMTextNode_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTM
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
IHTMLDOMNode_AddRef(HTMLDOMNODE(*ret)); IHTMLDOMNode_AddRef(&(*ret)->IHTMLDOMNode_iface);
return S_OK; return S_OK;
} }

View File

@ -531,7 +531,7 @@ typedef struct {
struct HTMLDOMNode { struct HTMLDOMNode {
DispatchEx dispex; DispatchEx dispex;
const IHTMLDOMNodeVtbl *lpHTMLDOMNodeVtbl; IHTMLDOMNode IHTMLDOMNode_iface;
const IHTMLDOMNode2Vtbl *lpHTMLDOMNode2Vtbl; const IHTMLDOMNode2Vtbl *lpHTMLDOMNode2Vtbl;
const NodeImplVtbl *vtbl; const NodeImplVtbl *vtbl;
@ -642,7 +642,6 @@ struct HTMLDocumentNode {
#define STATUSCLB(x) ((IBindStatusCallback*) &(x)->lpBindStatusCallbackVtbl) #define STATUSCLB(x) ((IBindStatusCallback*) &(x)->lpBindStatusCallbackVtbl)
#define BINDINFO(x) ((IInternetBindInfo*) &(x)->lpInternetBindInfoVtbl); #define BINDINFO(x) ((IInternetBindInfo*) &(x)->lpInternetBindInfoVtbl);
#define HTMLDOMNODE(x) ((IHTMLDOMNode*) &(x)->lpHTMLDOMNodeVtbl)
#define HTMLDOMNODE2(x) ((IHTMLDOMNode2*) &(x)->lpHTMLDOMNode2Vtbl) #define HTMLDOMNODE2(x) ((IHTMLDOMNode2*) &(x)->lpHTMLDOMNode2Vtbl)
#define HTMLTEXTCONT(x) ((IHTMLTextContainer*) &(x)->lpHTMLTextContainerVtbl) #define HTMLTEXTCONT(x) ((IHTMLTextContainer*) &(x)->lpHTMLTextContainerVtbl)

View File

@ -1244,7 +1244,7 @@ static nsresult NSAPI nsContextMenuListener_OnShowContextMenu(nsIContextMenuList
if(FAILED(hres)) if(FAILED(hres))
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
show_context_menu(This->doc, dwID, &pt, (IDispatch*)HTMLDOMNODE(node)); show_context_menu(This->doc, dwID, &pt, (IDispatch*)&node->IHTMLDOMNode_iface);
return NS_OK; return NS_OK;
} }

View File

@ -1201,7 +1201,8 @@ static HRESULT assoc_element(PluginHost *host, HTMLDocumentNode *doc, nsIDOMElem
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
hres = IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_HTMLPluginContainer, (void**)&container_elem); hres = IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface, &IID_HTMLPluginContainer,
(void**)&container_elem);
if(FAILED(hres)) { if(FAILED(hres)) {
ERR("Not an object element\n"); ERR("Not an object element\n");
return hres; return hres;

View File

@ -47,19 +47,19 @@ const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY =
static HRESULT WINAPI InternetHostSecurityManager_QueryInterface(IInternetHostSecurityManager *iface, REFIID riid, void **ppv) static HRESULT WINAPI InternetHostSecurityManager_QueryInterface(IInternetHostSecurityManager *iface, REFIID riid, void **ppv)
{ {
HTMLDocumentNode *This = HOSTSECMGR_THIS(iface); HTMLDocumentNode *This = HOSTSECMGR_THIS(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->node), riid, ppv); return IHTMLDOMNode_QueryInterface(&This->node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI InternetHostSecurityManager_AddRef(IInternetHostSecurityManager *iface) static ULONG WINAPI InternetHostSecurityManager_AddRef(IInternetHostSecurityManager *iface)
{ {
HTMLDocumentNode *This = HOSTSECMGR_THIS(iface); HTMLDocumentNode *This = HOSTSECMGR_THIS(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->node)); return IHTMLDOMNode_AddRef(&This->node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI InternetHostSecurityManager_Release(IInternetHostSecurityManager *iface) static ULONG WINAPI InternetHostSecurityManager_Release(IInternetHostSecurityManager *iface)
{ {
HTMLDocumentNode *This = HOSTSECMGR_THIS(iface); HTMLDocumentNode *This = HOSTSECMGR_THIS(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->node)); return IHTMLDOMNode_Release(&This->node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI InternetHostSecurityManager_GetSecurityId(IInternetHostSecurityManager *iface, BYTE *pbSecurityId, static HRESULT WINAPI InternetHostSecurityManager_GetSecurityId(IInternetHostSecurityManager *iface, BYTE *pbSecurityId,

View File

@ -1212,7 +1212,7 @@ static HRESULT WINAPI HTMLTxtRange_parentElement(IHTMLTxtRange *iface, IHTMLElem
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)parent); return IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface, &IID_IHTMLElement, (void**)parent);
} }
static HRESULT WINAPI HTMLTxtRange_duplicate(IHTMLTxtRange *iface, IHTMLTxtRange **Duplicate) static HRESULT WINAPI HTMLTxtRange_duplicate(IHTMLTxtRange *iface, IHTMLTxtRange **Duplicate)