Commit 3b14acbd authored by Gabriel Ivăncescu's avatar Gabriel Ivăncescu Committed by Alexandre Julliard

mshtml: Move the IHTMLDocument5 interface out of basedoc.

parent 527c2b28
...@@ -3005,82 +3005,78 @@ static const IHTMLDocument4Vtbl HTMLDocument4Vtbl = { ...@@ -3005,82 +3005,78 @@ static const IHTMLDocument4Vtbl HTMLDocument4Vtbl = {
HTMLDocument4_get_URLUnencoded HTMLDocument4_get_URLUnencoded
}; };
static inline HTMLDocument *impl_from_IHTMLDocument5(IHTMLDocument5 *iface) static inline HTMLDocumentNode *impl_from_IHTMLDocument5(IHTMLDocument5 *iface)
{ {
return CONTAINING_RECORD(iface, HTMLDocument, IHTMLDocument5_iface); return CONTAINING_RECORD(iface, HTMLDocumentNode, IHTMLDocument5_iface);
} }
static HRESULT WINAPI HTMLDocument5_QueryInterface(IHTMLDocument5 *iface, static HRESULT WINAPI HTMLDocument5_QueryInterface(IHTMLDocument5 *iface, REFIID riid, void **ppv)
REFIID riid, void **ppv)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
return htmldoc_query_interface(This, riid, ppv); return htmldoc_query_interface(&This->basedoc, riid, ppv);
} }
static ULONG WINAPI HTMLDocument5_AddRef(IHTMLDocument5 *iface) static ULONG WINAPI HTMLDocument5_AddRef(IHTMLDocument5 *iface)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
return htmldoc_addref(This); return htmldoc_addref(&This->basedoc);
} }
static ULONG WINAPI HTMLDocument5_Release(IHTMLDocument5 *iface) static ULONG WINAPI HTMLDocument5_Release(IHTMLDocument5 *iface)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
return htmldoc_release(This); return htmldoc_release(&This->basedoc);
} }
static HRESULT WINAPI HTMLDocument5_GetTypeInfoCount(IHTMLDocument5 *iface, UINT *pctinfo) static HRESULT WINAPI HTMLDocument5_GetTypeInfoCount(IHTMLDocument5 *iface, UINT *pctinfo)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
return IDispatchEx_GetTypeInfoCount(&This->IDispatchEx_iface, pctinfo); return IDispatchEx_GetTypeInfoCount(&This->basedoc.IDispatchEx_iface, pctinfo);
} }
static HRESULT WINAPI HTMLDocument5_GetTypeInfo(IHTMLDocument5 *iface, UINT iTInfo, static HRESULT WINAPI HTMLDocument5_GetTypeInfo(IHTMLDocument5 *iface, UINT iTInfo, LCID lcid,
LCID lcid, ITypeInfo **ppTInfo) ITypeInfo **ppTInfo)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
return IDispatchEx_GetTypeInfo(&This->IDispatchEx_iface, iTInfo, lcid, ppTInfo); return IDispatchEx_GetTypeInfo(&This->basedoc.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
} }
static HRESULT WINAPI HTMLDocument5_GetIDsOfNames(IHTMLDocument5 *iface, REFIID riid, static HRESULT WINAPI HTMLDocument5_GetIDsOfNames(IHTMLDocument5 *iface, REFIID riid, LPOLESTR *rgszNames,
LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) UINT cNames, LCID lcid, DISPID *rgDispId)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
return IDispatchEx_GetIDsOfNames(&This->IDispatchEx_iface, riid, rgszNames, cNames, lcid, return IDispatchEx_GetIDsOfNames(&This->basedoc.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId);
rgDispId);
} }
static HRESULT WINAPI HTMLDocument5_Invoke(IHTMLDocument5 *iface, DISPID dispIdMember, static HRESULT WINAPI HTMLDocument5_Invoke(IHTMLDocument5 *iface, DISPID dispIdMember, REFIID riid, LCID lcid,
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
return IDispatchEx_Invoke(&This->IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, return IDispatchEx_Invoke(&This->basedoc.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
pDispParams, pVarResult, pExcepInfo, puArgErr); pDispParams, pVarResult, pExcepInfo, puArgErr);
} }
static HRESULT WINAPI HTMLDocument5_put_onmousewheel(IHTMLDocument5 *iface, VARIANT v) static HRESULT WINAPI HTMLDocument5_put_onmousewheel(IHTMLDocument5 *iface, VARIANT v)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
return set_doc_event(This, EVENTID_MOUSEWHEEL, &v); return set_doc_event(&This->basedoc, EVENTID_MOUSEWHEEL, &v);
} }
static HRESULT WINAPI HTMLDocument5_get_onmousewheel(IHTMLDocument5 *iface, VARIANT *p) static HRESULT WINAPI HTMLDocument5_get_onmousewheel(IHTMLDocument5 *iface, VARIANT *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
return get_doc_event(This, EVENTID_MOUSEWHEEL, p); return get_doc_event(&This->basedoc, EVENTID_MOUSEWHEEL, p);
} }
static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMNode **p) static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMNode **p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
HTMLDocumentNode *doc_node = This->doc_node;
nsIDOMDocumentType *nsdoctype; nsIDOMDocumentType *nsdoctype;
HTMLDOMNode *doctype_node; HTMLDOMNode *doctype_node;
nsresult nsres; nsresult nsres;
...@@ -3088,12 +3084,12 @@ static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMN ...@@ -3088,12 +3084,12 @@ static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMN
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(dispex_compat_mode(&doc_node->node.event_target.dispex) < COMPAT_MODE_IE9) { if(dispex_compat_mode(&This->node.event_target.dispex) < COMPAT_MODE_IE9) {
*p = NULL; *p = NULL;
return S_OK; return S_OK;
} }
nsres = nsIDOMHTMLDocument_GetDoctype(doc_node->nsdoc, &nsdoctype); nsres = nsIDOMHTMLDocument_GetDoctype(This->nsdoc, &nsdoctype);
if(NS_FAILED(nsres)) if(NS_FAILED(nsres))
return map_nsresult(nsres); return map_nsresult(nsres);
if(!nsdoctype) { if(!nsdoctype) {
...@@ -3111,34 +3107,33 @@ static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMN ...@@ -3111,34 +3107,33 @@ static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMN
static HRESULT WINAPI HTMLDocument5_get_implementation(IHTMLDocument5 *iface, IHTMLDOMImplementation **p) static HRESULT WINAPI HTMLDocument5_get_implementation(IHTMLDocument5 *iface, IHTMLDOMImplementation **p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
HTMLDocumentNode *doc_node = This->doc_node;
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!doc_node->dom_implementation) { if(!This->dom_implementation) {
HRESULT hres; HRESULT hres;
hres = create_dom_implementation(doc_node, &doc_node->dom_implementation); hres = create_dom_implementation(This, &This->dom_implementation);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
} }
IHTMLDOMImplementation_AddRef(doc_node->dom_implementation); IHTMLDOMImplementation_AddRef(This->dom_implementation);
*p = doc_node->dom_implementation; *p = This->dom_implementation;
return S_OK; return S_OK;
} }
static HRESULT WINAPI HTMLDocument5_createAttribute(IHTMLDocument5 *iface, BSTR bstrattrName, static HRESULT WINAPI HTMLDocument5_createAttribute(IHTMLDocument5 *iface, BSTR bstrattrName,
IHTMLDOMAttribute **ppattribute) IHTMLDOMAttribute **ppattribute)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
HTMLDOMAttribute *attr; HTMLDOMAttribute *attr;
HRESULT hres; HRESULT hres;
TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrattrName), ppattribute); TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrattrName), ppattribute);
hres = HTMLDOMAttribute_Create(bstrattrName, NULL, 0, dispex_compat_mode(&This->doc_node->node.event_target.dispex), &attr); hres = HTMLDOMAttribute_Create(bstrattrName, NULL, 0, dispex_compat_mode(&This->node.event_target.dispex), &attr);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
...@@ -3149,7 +3144,7 @@ static HRESULT WINAPI HTMLDocument5_createAttribute(IHTMLDocument5 *iface, BSTR ...@@ -3149,7 +3144,7 @@ static HRESULT WINAPI HTMLDocument5_createAttribute(IHTMLDocument5 *iface, BSTR
static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bstrdata, static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bstrdata,
IHTMLDOMNode **ppRetNode) IHTMLDOMNode **ppRetNode)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
nsIDOMComment *nscomment; nsIDOMComment *nscomment;
HTMLElement *elem; HTMLElement *elem;
nsAString str; nsAString str;
...@@ -3158,20 +3153,20 @@ static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bs ...@@ -3158,20 +3153,20 @@ static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bs
TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrdata), ppRetNode); TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrdata), ppRetNode);
if(!This->doc_node->nsdoc) { if(!This->nsdoc) {
WARN("NULL nsdoc\n"); WARN("NULL nsdoc\n");
return E_UNEXPECTED; return E_UNEXPECTED;
} }
nsAString_InitDepend(&str, bstrdata); nsAString_InitDepend(&str, bstrdata);
nsres = nsIDOMHTMLDocument_CreateComment(This->doc_node->nsdoc, &str, &nscomment); nsres = nsIDOMHTMLDocument_CreateComment(This->nsdoc, &str, &nscomment);
nsAString_Finish(&str); nsAString_Finish(&str);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("CreateTextNode failed: %08lx\n", nsres); ERR("CreateTextNode failed: %08lx\n", nsres);
return E_FAIL; return E_FAIL;
} }
hres = HTMLCommentElement_Create(This->doc_node, (nsIDOMNode*)nscomment, &elem); hres = HTMLCommentElement_Create(This, (nsIDOMNode*)nscomment, &elem);
nsIDOMComment_Release(nscomment); nsIDOMComment_Release(nscomment);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
...@@ -3182,103 +3177,103 @@ static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bs ...@@ -3182,103 +3177,103 @@ static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bs
static HRESULT WINAPI HTMLDocument5_put_onfocusin(IHTMLDocument5 *iface, VARIANT v) static HRESULT WINAPI HTMLDocument5_put_onfocusin(IHTMLDocument5 *iface, VARIANT v)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
return set_doc_event(This, EVENTID_FOCUSIN, &v); return set_doc_event(&This->basedoc, EVENTID_FOCUSIN, &v);
} }
static HRESULT WINAPI HTMLDocument5_get_onfocusin(IHTMLDocument5 *iface, VARIANT *p) static HRESULT WINAPI HTMLDocument5_get_onfocusin(IHTMLDocument5 *iface, VARIANT *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
return get_doc_event(This, EVENTID_FOCUSIN, p); return get_doc_event(&This->basedoc, EVENTID_FOCUSIN, p);
} }
static HRESULT WINAPI HTMLDocument5_put_onfocusout(IHTMLDocument5 *iface, VARIANT v) static HRESULT WINAPI HTMLDocument5_put_onfocusout(IHTMLDocument5 *iface, VARIANT v)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
return set_doc_event(This, EVENTID_FOCUSOUT, &v); return set_doc_event(&This->basedoc, EVENTID_FOCUSOUT, &v);
} }
static HRESULT WINAPI HTMLDocument5_get_onfocusout(IHTMLDocument5 *iface, VARIANT *p) static HRESULT WINAPI HTMLDocument5_get_onfocusout(IHTMLDocument5 *iface, VARIANT *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
return get_doc_event(This, EVENTID_FOCUSOUT, p); return get_doc_event(&This->basedoc, EVENTID_FOCUSOUT, p);
} }
static HRESULT WINAPI HTMLDocument5_put_onactivate(IHTMLDocument5 *iface, VARIANT v) static HRESULT WINAPI HTMLDocument5_put_onactivate(IHTMLDocument5 *iface, VARIANT v)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_get_onactivate(IHTMLDocument5 *iface, VARIANT *p) static HRESULT WINAPI HTMLDocument5_get_onactivate(IHTMLDocument5 *iface, VARIANT *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_put_ondeactivate(IHTMLDocument5 *iface, VARIANT v) static HRESULT WINAPI HTMLDocument5_put_ondeactivate(IHTMLDocument5 *iface, VARIANT v)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_get_ondeactivate(IHTMLDocument5 *iface, VARIANT *p) static HRESULT WINAPI HTMLDocument5_get_ondeactivate(IHTMLDocument5 *iface, VARIANT *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_put_onbeforeactivate(IHTMLDocument5 *iface, VARIANT v) static HRESULT WINAPI HTMLDocument5_put_onbeforeactivate(IHTMLDocument5 *iface, VARIANT v)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_get_onbeforeactivate(IHTMLDocument5 *iface, VARIANT *p) static HRESULT WINAPI HTMLDocument5_get_onbeforeactivate(IHTMLDocument5 *iface, VARIANT *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_put_onbeforedeactivate(IHTMLDocument5 *iface, VARIANT v) static HRESULT WINAPI HTMLDocument5_put_onbeforedeactivate(IHTMLDocument5 *iface, VARIANT v)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_get_onbeforedeactivate(IHTMLDocument5 *iface, VARIANT *p) static HRESULT WINAPI HTMLDocument5_get_onbeforedeactivate(IHTMLDocument5 *iface, VARIANT *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLDocument5_get_compatMode(IHTMLDocument5 *iface, BSTR *p) static HRESULT WINAPI HTMLDocument5_get_compatMode(IHTMLDocument5 *iface, BSTR *p)
{ {
HTMLDocument *This = impl_from_IHTMLDocument5(iface); HTMLDocumentNode *This = impl_from_IHTMLDocument5(iface);
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
*p = SysAllocString(This->doc_node->document_mode <= COMPAT_MODE_IE5 ? L"BackCompat" : L"CSS1Compat"); *p = SysAllocString(This->document_mode <= COMPAT_MODE_IE5 ? L"BackCompat" : L"CSS1Compat");
return *p ? S_OK : E_OUTOFMEMORY; return *p ? S_OK : E_OUTOFMEMORY;
} }
...@@ -3681,7 +3676,7 @@ static HRESULT WINAPI HTMLDocument7_createAttribute(IHTMLDocument7 *iface, BSTR ...@@ -3681,7 +3676,7 @@ static HRESULT WINAPI HTMLDocument7_createAttribute(IHTMLDocument7 *iface, BSTR
TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrAttrName), ppAttribute); TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrAttrName), ppAttribute);
return IHTMLDocument5_createAttribute(&This->IHTMLDocument5_iface, bstrAttrName, ppAttribute); return IHTMLDocument5_createAttribute(&This->doc_node->IHTMLDocument5_iface, bstrAttrName, ppAttribute);
} }
static HRESULT WINAPI HTMLDocument7_getElementsByClassName(IHTMLDocument7 *iface, BSTR v, IHTMLElementCollection **pel) static HRESULT WINAPI HTMLDocument7_getElementsByClassName(IHTMLDocument7 *iface, BSTR v, IHTMLElementCollection **pel)
...@@ -5562,8 +5557,6 @@ BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv) ...@@ -5562,8 +5557,6 @@ BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
*ppv = &This->IDispatchEx_iface; *ppv = &This->IDispatchEx_iface;
else if(IsEqualGUID(&IID_IDispatchEx, riid)) else if(IsEqualGUID(&IID_IDispatchEx, riid))
*ppv = &This->IDispatchEx_iface; *ppv = &This->IDispatchEx_iface;
else if(IsEqualGUID(&IID_IHTMLDocument5, riid))
*ppv = &This->IHTMLDocument5_iface;
else if(IsEqualGUID(&IID_IHTMLDocument6, riid)) else if(IsEqualGUID(&IID_IHTMLDocument6, riid))
*ppv = &This->IHTMLDocument6_iface; *ppv = &This->IHTMLDocument6_iface;
else if(IsEqualGUID(&IID_IHTMLDocument7, riid)) else if(IsEqualGUID(&IID_IHTMLDocument7, riid))
...@@ -5589,7 +5582,6 @@ static const cpc_entry_t HTMLDocumentNode_cpc[] = { ...@@ -5589,7 +5582,6 @@ static const cpc_entry_t HTMLDocumentNode_cpc[] = {
void init_doc(HTMLDocument *doc, IUnknown *outer, IDispatchEx *dispex) void init_doc(HTMLDocument *doc, IUnknown *outer, IDispatchEx *dispex)
{ {
doc->IHTMLDocument5_iface.lpVtbl = &HTMLDocument5Vtbl;
doc->IHTMLDocument6_iface.lpVtbl = &HTMLDocument6Vtbl; doc->IHTMLDocument6_iface.lpVtbl = &HTMLDocument6Vtbl;
doc->IHTMLDocument7_iface.lpVtbl = &HTMLDocument7Vtbl; doc->IHTMLDocument7_iface.lpVtbl = &HTMLDocument7Vtbl;
doc->IDispatchEx_iface.lpVtbl = &DocDispatchExVtbl; doc->IDispatchEx_iface.lpVtbl = &DocDispatchExVtbl;
...@@ -5620,6 +5612,8 @@ static HRESULT HTMLDocumentNode_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) ...@@ -5620,6 +5612,8 @@ static HRESULT HTMLDocumentNode_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
*ppv = &This->IHTMLDocument3_iface; *ppv = &This->IHTMLDocument3_iface;
else if(IsEqualGUID(&IID_IHTMLDocument4, riid)) else if(IsEqualGUID(&IID_IHTMLDocument4, riid))
*ppv = &This->IHTMLDocument4_iface; *ppv = &This->IHTMLDocument4_iface;
else if(IsEqualGUID(&IID_IHTMLDocument5, riid))
*ppv = &This->IHTMLDocument5_iface;
else if(IsEqualGUID(&IID_IDocumentSelector, riid)) else if(IsEqualGUID(&IID_IDocumentSelector, riid))
*ppv = &This->IDocumentSelector_iface; *ppv = &This->IDocumentSelector_iface;
else if(IsEqualGUID(&IID_IDocumentEvent, riid)) else if(IsEqualGUID(&IID_IDocumentEvent, riid))
...@@ -6093,6 +6087,7 @@ static HTMLDocumentNode *alloc_doc_node(HTMLDocumentObj *doc_obj, HTMLInnerWindo ...@@ -6093,6 +6087,7 @@ static HTMLDocumentNode *alloc_doc_node(HTMLDocumentObj *doc_obj, HTMLInnerWindo
doc->IHTMLDocument2_iface.lpVtbl = &HTMLDocumentVtbl; doc->IHTMLDocument2_iface.lpVtbl = &HTMLDocumentVtbl;
doc->IHTMLDocument3_iface.lpVtbl = &HTMLDocument3Vtbl; doc->IHTMLDocument3_iface.lpVtbl = &HTMLDocument3Vtbl;
doc->IHTMLDocument4_iface.lpVtbl = &HTMLDocument4Vtbl; doc->IHTMLDocument4_iface.lpVtbl = &HTMLDocument4Vtbl;
doc->IHTMLDocument5_iface.lpVtbl = &HTMLDocument5Vtbl;
doc->IDocumentSelector_iface.lpVtbl = &DocumentSelectorVtbl; doc->IDocumentSelector_iface.lpVtbl = &DocumentSelectorVtbl;
doc->IDocumentEvent_iface.lpVtbl = &DocumentEventVtbl; doc->IDocumentEvent_iface.lpVtbl = &DocumentEventVtbl;
doc->ISupportErrorInfo_iface.lpVtbl = &SupportErrorInfoVtbl; doc->ISupportErrorInfo_iface.lpVtbl = &SupportErrorInfoVtbl;
......
...@@ -640,7 +640,6 @@ struct ConnectionPoint { ...@@ -640,7 +640,6 @@ struct ConnectionPoint {
}; };
struct HTMLDocument { struct HTMLDocument {
IHTMLDocument5 IHTMLDocument5_iface;
IHTMLDocument6 IHTMLDocument6_iface; IHTMLDocument6 IHTMLDocument6_iface;
IHTMLDocument7 IHTMLDocument7_iface; IHTMLDocument7 IHTMLDocument7_iface;
IDispatchEx IDispatchEx_iface; IDispatchEx IDispatchEx_iface;
...@@ -680,6 +679,7 @@ struct HTMLDocumentObj { ...@@ -680,6 +679,7 @@ struct HTMLDocumentObj {
IHTMLDocument2 IHTMLDocument2_iface; IHTMLDocument2 IHTMLDocument2_iface;
IHTMLDocument3 IHTMLDocument3_iface; IHTMLDocument3 IHTMLDocument3_iface;
IHTMLDocument4 IHTMLDocument4_iface; IHTMLDocument4 IHTMLDocument4_iface;
IHTMLDocument5 IHTMLDocument5_iface;
IDocumentSelector IDocumentSelector_iface; IDocumentSelector IDocumentSelector_iface;
IDocumentEvent IDocumentEvent_iface; IDocumentEvent IDocumentEvent_iface;
ISupportErrorInfo ISupportErrorInfo_iface; ISupportErrorInfo ISupportErrorInfo_iface;
...@@ -902,6 +902,7 @@ struct HTMLDocumentNode { ...@@ -902,6 +902,7 @@ struct HTMLDocumentNode {
IHTMLDocument2 IHTMLDocument2_iface; IHTMLDocument2 IHTMLDocument2_iface;
IHTMLDocument3 IHTMLDocument3_iface; IHTMLDocument3 IHTMLDocument3_iface;
IHTMLDocument4 IHTMLDocument4_iface; IHTMLDocument4 IHTMLDocument4_iface;
IHTMLDocument5 IHTMLDocument5_iface;
IDocumentSelector IDocumentSelector_iface; IDocumentSelector IDocumentSelector_iface;
IDocumentEvent IDocumentEvent_iface; IDocumentEvent IDocumentEvent_iface;
ISupportErrorInfo ISupportErrorInfo_iface; ISupportErrorInfo ISupportErrorInfo_iface;
......
...@@ -2668,6 +2668,59 @@ static const IHTMLDocument4Vtbl DocObjHTMLDocument4Vtbl = { ...@@ -2668,6 +2668,59 @@ static const IHTMLDocument4Vtbl DocObjHTMLDocument4Vtbl = {
}; };
/********************************************************** /**********************************************************
* IHTMLDocument5 implementation
*/
HTMLDOCUMENTOBJ_IDISPATCH_METHODS(HTMLDocument5)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, put_onmousewheel, VARIANT)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_onmousewheel, VARIANT*)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_doctype, IHTMLDOMNode**)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_implementation, IHTMLDOMImplementation**)
HTMLDOCUMENTOBJ_FWD_TO_NODE_2(HTMLDocument5, createAttribute, BSTR,IHTMLDOMAttribute**)
HTMLDOCUMENTOBJ_FWD_TO_NODE_2(HTMLDocument5, createComment, BSTR,IHTMLDOMNode**)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, put_onfocusin, VARIANT)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_onfocusin, VARIANT*)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, put_onfocusout, VARIANT)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_onfocusout, VARIANT*)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, put_onactivate, VARIANT)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_onactivate, VARIANT*)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, put_ondeactivate, VARIANT)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_ondeactivate, VARIANT*)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, put_onbeforeactivate, VARIANT)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_onbeforeactivate, VARIANT*)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, put_onbeforedeactivate, VARIANT)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_onbeforedeactivate, VARIANT*)
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument5, get_compatMode, BSTR*)
static const IHTMLDocument5Vtbl DocObjHTMLDocument5Vtbl = {
DocObjHTMLDocument5_QueryInterface,
DocObjHTMLDocument5_AddRef,
DocObjHTMLDocument5_Release,
DocObjHTMLDocument5_GetTypeInfoCount,
DocObjHTMLDocument5_GetTypeInfo,
DocObjHTMLDocument5_GetIDsOfNames,
DocObjHTMLDocument5_Invoke,
DocObjHTMLDocument5_put_onmousewheel,
DocObjHTMLDocument5_get_onmousewheel,
DocObjHTMLDocument5_get_doctype,
DocObjHTMLDocument5_get_implementation,
DocObjHTMLDocument5_createAttribute,
DocObjHTMLDocument5_createComment,
DocObjHTMLDocument5_put_onfocusin,
DocObjHTMLDocument5_get_onfocusin,
DocObjHTMLDocument5_put_onfocusout,
DocObjHTMLDocument5_get_onfocusout,
DocObjHTMLDocument5_put_onactivate,
DocObjHTMLDocument5_get_onactivate,
DocObjHTMLDocument5_put_ondeactivate,
DocObjHTMLDocument5_get_ondeactivate,
DocObjHTMLDocument5_put_onbeforeactivate,
DocObjHTMLDocument5_get_onbeforeactivate,
DocObjHTMLDocument5_put_onbeforedeactivate,
DocObjHTMLDocument5_get_onbeforedeactivate,
DocObjHTMLDocument5_get_compatMode
};
/**********************************************************
* ISupportErrorInfo implementation * ISupportErrorInfo implementation
*/ */
HTMLDOCUMENTOBJ_IUNKNOWN_METHODS(SupportErrorInfo) HTMLDOCUMENTOBJ_IUNKNOWN_METHODS(SupportErrorInfo)
...@@ -2923,6 +2976,8 @@ static HRESULT WINAPI HTMLDocumentObj_QueryInterface(IUnknown *iface, REFIID rii ...@@ -2923,6 +2976,8 @@ static HRESULT WINAPI HTMLDocumentObj_QueryInterface(IUnknown *iface, REFIID rii
*ppv = &This->IHTMLDocument3_iface; *ppv = &This->IHTMLDocument3_iface;
}else if(IsEqualGUID(&IID_IHTMLDocument4, riid)) { }else if(IsEqualGUID(&IID_IHTMLDocument4, riid)) {
*ppv = &This->IHTMLDocument4_iface; *ppv = &This->IHTMLDocument4_iface;
}else if(IsEqualGUID(&IID_IHTMLDocument5, riid)) {
*ppv = &This->IHTMLDocument5_iface;
}else if(IsEqualGUID(&IID_ICustomDoc, riid)) { }else if(IsEqualGUID(&IID_ICustomDoc, riid)) {
*ppv = &This->ICustomDoc_iface; *ppv = &This->ICustomDoc_iface;
}else if(IsEqualGUID(&IID_IDocumentSelector, riid)) { }else if(IsEqualGUID(&IID_IDocumentSelector, riid)) {
...@@ -3242,6 +3297,7 @@ static HRESULT create_document_object(BOOL is_mhtml, IUnknown *outer, REFIID rii ...@@ -3242,6 +3297,7 @@ static HRESULT create_document_object(BOOL is_mhtml, IUnknown *outer, REFIID rii
doc->IHTMLDocument2_iface.lpVtbl = &DocObjHTMLDocument2Vtbl; doc->IHTMLDocument2_iface.lpVtbl = &DocObjHTMLDocument2Vtbl;
doc->IHTMLDocument3_iface.lpVtbl = &DocObjHTMLDocument3Vtbl; doc->IHTMLDocument3_iface.lpVtbl = &DocObjHTMLDocument3Vtbl;
doc->IHTMLDocument4_iface.lpVtbl = &DocObjHTMLDocument4Vtbl; doc->IHTMLDocument4_iface.lpVtbl = &DocObjHTMLDocument4Vtbl;
doc->IHTMLDocument5_iface.lpVtbl = &DocObjHTMLDocument5Vtbl;
doc->IDocumentSelector_iface.lpVtbl = &DocObjDocumentSelectorVtbl; doc->IDocumentSelector_iface.lpVtbl = &DocObjDocumentSelectorVtbl;
doc->IDocumentEvent_iface.lpVtbl = &DocObjDocumentEventVtbl; doc->IDocumentEvent_iface.lpVtbl = &DocObjDocumentEventVtbl;
doc->ISupportErrorInfo_iface.lpVtbl = &DocObjSupportErrorInfoVtbl; doc->ISupportErrorInfo_iface.lpVtbl = &DocObjSupportErrorInfoVtbl;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment