From 9ba65105d54224cd9551819189a6946e7ccd014f Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 26 Sep 2007 20:43:52 +0200 Subject: [PATCH] mshtml: Added IHTMLDocument5 interface stub implementation. --- dlls/mshtml/Makefile.in | 1 + dlls/mshtml/htmldoc.c | 4 + dlls/mshtml/htmldoc5.c | 261 +++++++++++++++++++++++++++++++++++ dlls/mshtml/mshtml_private.h | 3 + 4 files changed, 269 insertions(+) create mode 100644 dlls/mshtml/htmldoc5.c diff --git a/dlls/mshtml/Makefile.in b/dlls/mshtml/Makefile.in index 3560dfe548c..cbfa1769cf4 100644 --- a/dlls/mshtml/Makefile.in +++ b/dlls/mshtml/Makefile.in @@ -16,6 +16,7 @@ C_SRCS = \ htmlbody.c \ htmldoc.c \ htmldoc3.c \ + htmldoc5.c \ htmlelem.c \ htmlelem2.c \ htmlinput.c \ diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index 5ef1e137189..32307e4e0a8 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -56,6 +56,9 @@ static HRESULT WINAPI HTMLDocument_QueryInterface(IHTMLDocument2 *iface, REFIID }else if(IsEqualGUID(&IID_IHTMLDocument3, riid)) { TRACE("(%p)->(IID_IHTMLDocument3, %p)\n", This, ppvObject); *ppvObject = HTMLDOC3(This); + }else if(IsEqualGUID(&IID_IHTMLDocument5, riid)) { + TRACE("(%p)->(IID_IHTMLDocument5, %p)\n", This, ppvObject); + *ppvObject = HTMLDOC5(This); }else if(IsEqualGUID(&IID_IPersist, riid)) { TRACE("(%p)->(IID_IPersist, %p)\n", This, ppvObject); *ppvObject = PERSIST(This); @@ -1174,6 +1177,7 @@ HRESULT HTMLDocument_Create(IUnknown *pUnkOuter, REFIID riid, void** ppvObject) LOCK_MODULE(); HTMLDocument_HTMLDocument3_Init(ret); + HTMLDocument_HTMLDocument5_Init(ret); HTMLDocument_Persist_Init(ret); HTMLDocument_OleCmd_Init(ret); HTMLDocument_OleObj_Init(ret); diff --git a/dlls/mshtml/htmldoc5.c b/dlls/mshtml/htmldoc5.c new file mode 100644 index 00000000000..a91118ece52 --- /dev/null +++ b/dlls/mshtml/htmldoc5.c @@ -0,0 +1,261 @@ +/* + * Copyright 2007 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" + +#include +#include + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" + +#include "wine/debug.h" + +#include "mshtml_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(mshtml); + +#define HTMLDOC5_THIS(iface) DEFINE_THIS(HTMLDocument, HTMLDocument5, iface) + +static HRESULT WINAPI HTMLDocument5_QueryInterface(IHTMLDocument5 *iface, + REFIID riid, void **ppv) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppv); +} + +static ULONG WINAPI HTMLDocument5_AddRef(IHTMLDocument5 *iface) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + return IHTMLDocument2_AddRef(HTMLDOC(This)); +} + +static ULONG WINAPI HTMLDocument5_Release(IHTMLDocument5 *iface) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + return IHTMLDocument2_Release(HTMLDOC(This)); +} + +static HRESULT WINAPI HTMLDocument5_GetTypeInfoCount(IHTMLDocument5 *iface, UINT *pctinfo) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, pctinfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_GetTypeInfo(IHTMLDocument5 *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_GetIDsOfNames(IHTMLDocument5 *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, + lcid, rgDispId); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_Invoke(IHTMLDocument5 *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_put_onmousewheel(IHTMLDocument5 *iface, VARIANT v) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_onmousewheel(IHTMLDocument5 *iface, VARIANT *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMNode **p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_implementation(IHTMLDocument5 *iface, IHTMLDOMImplementation **p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_createAttribute(IHTMLDocument5 *iface, BSTR bstrattrName, + IHTMLDOMAttribute **ppattribute) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_w(bstrattrName), ppattribute); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bstrdata, + IHTMLDOMNode **ppRetNode) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_w(bstrdata), ppRetNode); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_put_onfocusin(IHTMLDocument5 *iface, VARIANT v) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_onfocusin(IHTMLDocument5 *iface, VARIANT *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_put_onfocusout(IHTMLDocument5 *iface, VARIANT v) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_onfocusout(IHTMLDocument5 *iface, VARIANT *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_put_onactivate(IHTMLDocument5 *iface, VARIANT v) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_onactivate(IHTMLDocument5 *iface, VARIANT *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_put_ondeactivate(IHTMLDocument5 *iface, VARIANT v) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_ondeactivate(IHTMLDocument5 *iface, VARIANT *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_put_onbeforeactivate(IHTMLDocument5 *iface, VARIANT v) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_onbeforeactivate(IHTMLDocument5 *iface, VARIANT *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_put_onbeforedeactivate(IHTMLDocument5 *iface, VARIANT v) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(v)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_onbeforedeactivate(IHTMLDocument5 *iface, VARIANT *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDocument5_get_compatMode(IHTMLDocument5 *iface, BSTR *p) +{ + HTMLDocument *This = HTMLDOC5_THIS(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +#undef HTMLDOC5_THIS + +static const IHTMLDocument5Vtbl HTMLDocument5Vtbl = { + HTMLDocument5_QueryInterface, + HTMLDocument5_AddRef, + HTMLDocument5_Release, + HTMLDocument5_GetTypeInfoCount, + HTMLDocument5_GetTypeInfo, + HTMLDocument5_GetIDsOfNames, + HTMLDocument5_Invoke, + HTMLDocument5_put_onmousewheel, + HTMLDocument5_get_onmousewheel, + HTMLDocument5_get_doctype, + HTMLDocument5_get_implementation, + HTMLDocument5_createAttribute, + HTMLDocument5_createComment, + HTMLDocument5_put_onfocusin, + HTMLDocument5_get_onfocusin, + HTMLDocument5_put_onfocusout, + HTMLDocument5_get_onfocusout, + HTMLDocument5_put_onactivate, + HTMLDocument5_get_onactivate, + HTMLDocument5_put_ondeactivate, + HTMLDocument5_get_ondeactivate, + HTMLDocument5_put_onbeforeactivate, + HTMLDocument5_get_onbeforeactivate, + HTMLDocument5_put_onbeforedeactivate, + HTMLDocument5_get_onbeforedeactivate, + HTMLDocument5_get_compatMode +}; + +void HTMLDocument_HTMLDocument5_Init(HTMLDocument *This) +{ + This->lpHTMLDocument5Vtbl = &HTMLDocument5Vtbl; +} diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index b07476fc7e7..69fc70d56cd 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -97,6 +97,7 @@ struct ConnectionPoint { struct HTMLDocument { const IHTMLDocument2Vtbl *lpHTMLDocument2Vtbl; const IHTMLDocument3Vtbl *lpHTMLDocument3Vtbl; + const IHTMLDocument5Vtbl *lpHTMLDocument5Vtbl; const IPersistMonikerVtbl *lpPersistMonikerVtbl; const IPersistFileVtbl *lpPersistFileVtbl; const IMonikerPropVtbl *lpMonikerPropVtbl; @@ -288,6 +289,7 @@ typedef struct { #define HTMLDOC(x) ((IHTMLDocument2*) &(x)->lpHTMLDocument2Vtbl) #define HTMLDOC3(x) ((IHTMLDocument3*) &(x)->lpHTMLDocument3Vtbl) +#define HTMLDOC5(x) ((IHTMLDocument5*) &(x)->lpHTMLDocument5Vtbl) #define PERSIST(x) ((IPersist*) &(x)->lpPersistFileVtbl) #define PERSISTMON(x) ((IPersistMoniker*) &(x)->lpPersistMonikerVtbl) #define PERSISTFILE(x) ((IPersistFile*) &(x)->lpPersistFileVtbl) @@ -343,6 +345,7 @@ HTMLWindow *nswindow_to_window(const nsIDOMWindow*); void setup_nswindow(HTMLWindow*); void HTMLDocument_HTMLDocument3_Init(HTMLDocument*); +void HTMLDocument_HTMLDocument5_Init(HTMLDocument*); void HTMLDocument_Persist_Init(HTMLDocument*); void HTMLDocument_OleCmd_Init(HTMLDocument*); void HTMLDocument_OleObj_Init(HTMLDocument*);