diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index bb5d968994e..ef3085e3fab 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -1626,6 +1626,9 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv) }else if(IsEqualGUID(&IID_IHTMLDocument5, riid)) { TRACE("(%p)->(IID_IHTMLDocument5, %p)\n", This, ppv); *ppv = HTMLDOC5(This); + }else if(IsEqualGUID(&IID_IHTMLDocument6, riid)) { + TRACE("(%p)->(IID_IHTMLDocument6, %p)\n", This, ppv); + *ppv = HTMLDOC6(This); }else if(IsEqualGUID(&IID_IPersist, riid)) { TRACE("(%p)->(IID_IPersist, %p)\n", This, ppv); *ppv = PERSIST(This); diff --git a/dlls/mshtml/htmldoc5.c b/dlls/mshtml/htmldoc5.c index 59b223b55ef..4c8d173c796 100644 --- a/dlls/mshtml/htmldoc5.c +++ b/dlls/mshtml/htmldoc5.c @@ -299,7 +299,141 @@ static const IHTMLDocument5Vtbl HTMLDocument5Vtbl = { HTMLDocument5_get_compatMode }; +#define HTMLDOC6_THIS(iface) DEFINE_THIS(HTMLDocument, HTMLDocument6, iface) + +static HRESULT WINAPI HTMLDocument6_QueryInterface(IHTMLDocument6 *iface, + REFIID riid, void **ppv) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppv); +} + +static ULONG WINAPI HTMLDocument6_AddRef(IHTMLDocument6 *iface) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + return IHTMLDocument2_AddRef(HTMLDOC(This)); +} + +static ULONG WINAPI HTMLDocument6_Release(IHTMLDocument6 *iface) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + return IHTMLDocument2_Release(HTMLDOC(This)); +} + +static HRESULT WINAPI HTMLDocument6_GetTypeInfoCount(IHTMLDocument6 *iface, UINT *pctinfo) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + return IDispatchEx_GetTypeInfoCount(DISPATCHEX(This), pctinfo); +} + +static HRESULT WINAPI HTMLDocument6_GetTypeInfo(IHTMLDocument6 *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + return IDispatchEx_GetTypeInfo(DISPATCHEX(This), iTInfo, lcid, ppTInfo); +} + +static HRESULT WINAPI HTMLDocument6_GetIDsOfNames(IHTMLDocument6 *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + return IDispatchEx_GetIDsOfNames(DISPATCHEX(This), riid, rgszNames, cNames, lcid, rgDispId); +} + +static HRESULT WINAPI HTMLDocument6_Invoke(IHTMLDocument6 *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + return IDispatchEx_Invoke(DISPATCHEX(This), dispIdMember, riid, lcid, wFlags, pDispParams, + pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI HTMLDocument6_get_compatible(IHTMLDocument6 *iface, + IHTMLDocumentCompatibleInfoCollection **p) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument6_get_documentMode(IHTMLDocument6 *iface, + VARIANT *p) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument6_get_onstorage(IHTMLDocument6 *iface, + VARIANT *p) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument6_put_onstorage(IHTMLDocument6 *iface, + VARIANT p) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument6_get_onstoragecommit(IHTMLDocument6 *iface, + VARIANT *p) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument6_put_onstoragecommit(IHTMLDocument6 *iface, + VARIANT p) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument6_getElementById(IHTMLDocument6 *iface, + BSTR bstrId, IHTMLElement2 **p) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_w(bstrId), p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument6_updateSettings(IHTMLDocument6 *iface) +{ + HTMLDocument *This = HTMLDOC6_THIS(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +#undef HTMLDOC6_THIS + +static const IHTMLDocument6Vtbl HTMLDocument6Vtbl = { + HTMLDocument6_QueryInterface, + HTMLDocument6_AddRef, + HTMLDocument6_Release, + HTMLDocument6_GetTypeInfoCount, + HTMLDocument6_GetTypeInfo, + HTMLDocument6_GetIDsOfNames, + HTMLDocument6_Invoke, + HTMLDocument6_get_compatible, + HTMLDocument6_get_documentMode, + HTMLDocument6_put_onstorage, + HTMLDocument6_get_onstorage, + HTMLDocument6_put_onstoragecommit, + HTMLDocument6_get_onstoragecommit, + HTMLDocument6_getElementById, + HTMLDocument6_updateSettings +}; + void HTMLDocument_HTMLDocument5_Init(HTMLDocument *This) { This->lpHTMLDocument5Vtbl = &HTMLDocument5Vtbl; + This->lpHTMLDocument6Vtbl = &HTMLDocument6Vtbl; } diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 51074eddf0d..c92bb25fbf7 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -253,6 +253,7 @@ struct HTMLDocument { const IHTMLDocument3Vtbl *lpHTMLDocument3Vtbl; const IHTMLDocument4Vtbl *lpHTMLDocument4Vtbl; const IHTMLDocument5Vtbl *lpHTMLDocument5Vtbl; + const IHTMLDocument6Vtbl *lpHTMLDocument6Vtbl; const IPersistMonikerVtbl *lpPersistMonikerVtbl; const IPersistFileVtbl *lpPersistFileVtbl; const IPersistHistoryVtbl *lpPersistHistoryVtbl; @@ -488,6 +489,7 @@ struct HTMLDocumentNode { #define HTMLDOC3(x) ((IHTMLDocument3*) &(x)->lpHTMLDocument3Vtbl) #define HTMLDOC4(x) ((IHTMLDocument4*) &(x)->lpHTMLDocument4Vtbl) #define HTMLDOC5(x) ((IHTMLDocument5*) &(x)->lpHTMLDocument5Vtbl) +#define HTMLDOC6(x) ((IHTMLDocument6*) &(x)->lpHTMLDocument6Vtbl) #define PERSIST(x) ((IPersist*) &(x)->lpPersistFileVtbl) #define PERSISTMON(x) ((IPersistMoniker*) &(x)->lpPersistMonikerVtbl) #define PERSISTFILE(x) ((IPersistFile*) &(x)->lpPersistFileVtbl)