From fcc3a77ae5e8be2fa6d540cdde5569a9d384635d Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 3 Sep 2012 13:16:57 +0200 Subject: [PATCH] mshtml: Added IHTMLIFrameElement3 stub implementation. --- dlls/mshtml/htmliframe.c | 131 +++++++++++++++++++++++++++++++++++ dlls/mshtml/mshtml_private.h | 1 + 2 files changed, 132 insertions(+) diff --git a/dlls/mshtml/htmliframe.c b/dlls/mshtml/htmliframe.c index dccc7d0e80..faeb8f34dc 100644 --- a/dlls/mshtml/htmliframe.c +++ b/dlls/mshtml/htmliframe.c @@ -35,6 +35,7 @@ typedef struct { HTMLFrameBase framebase; IHTMLIFrameElement IHTMLIFrameElement_iface; IHTMLIFrameElement2 IHTMLIFrameElement2_iface; + IHTMLIFrameElement3 IHTMLIFrameElement3_iface; } HTMLIFrame; static inline HTMLIFrame *impl_from_IHTMLIFrameElement(IHTMLIFrameElement *iface) @@ -255,6 +256,131 @@ static const IHTMLIFrameElement2Vtbl HTMLIFrameElement2Vtbl = { HTMLIFrameElement2_get_width }; +static inline HTMLIFrame *impl_from_IHTMLIFrameElement3(IHTMLIFrameElement3 *iface) +{ + return CONTAINING_RECORD(iface, HTMLIFrame, IHTMLIFrameElement3_iface); +} + +static HRESULT WINAPI HTMLIFrameElement3_QueryInterface(IHTMLIFrameElement3 *iface, + REFIID riid, void **ppv) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + + return IHTMLDOMNode_QueryInterface(&This->framebase.element.node.IHTMLDOMNode_iface, riid, ppv); +} + +static ULONG WINAPI HTMLIFrameElement3_AddRef(IHTMLIFrameElement3 *iface) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + + return IHTMLDOMNode_AddRef(&This->framebase.element.node.IHTMLDOMNode_iface); +} + +static ULONG WINAPI HTMLIFrameElement3_Release(IHTMLIFrameElement3 *iface) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + + return IHTMLDOMNode_Release(&This->framebase.element.node.IHTMLDOMNode_iface); +} + +static HRESULT WINAPI HTMLIFrameElement3_GetTypeInfoCount(IHTMLIFrameElement3 *iface, UINT *pctinfo) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + return IDispatchEx_GetTypeInfoCount(&This->framebase.element.node.dispex.IDispatchEx_iface, + pctinfo); +} + +static HRESULT WINAPI HTMLIFrameElement3_GetTypeInfo(IHTMLIFrameElement3 *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + return IDispatchEx_GetTypeInfo(&This->framebase.element.node.dispex.IDispatchEx_iface, iTInfo, + lcid, ppTInfo); +} + +static HRESULT WINAPI HTMLIFrameElement3_GetIDsOfNames(IHTMLIFrameElement3 *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + return IDispatchEx_GetIDsOfNames(&This->framebase.element.node.dispex.IDispatchEx_iface, riid, + rgszNames, cNames, lcid, rgDispId); +} + +static HRESULT WINAPI HTMLIFrameElement3_Invoke(IHTMLIFrameElement3 *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + return IDispatchEx_Invoke(&This->framebase.element.node.dispex.IDispatchEx_iface, dispIdMember, + riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI HTMLIFrameElement3_get_contentDocument(IHTMLIFrameElement3 *iface, IDispatch **p) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLIFrameElement3_put_src(IHTMLIFrameElement3 *iface, BSTR v) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(v)); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLIFrameElement3_get_src(IHTMLIFrameElement3 *iface, BSTR *p) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLIFrameElement3_put_longDesc(IHTMLIFrameElement3 *iface, BSTR v) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(v)); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLIFrameElement3_get_longDesc(IHTMLIFrameElement3 *iface, BSTR *p) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLIFrameElement3_put_frameBorder(IHTMLIFrameElement3 *iface, BSTR v) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(v)); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLIFrameElement3_get_frameBorder(IHTMLIFrameElement3 *iface, BSTR *p) +{ + HTMLIFrame *This = impl_from_IHTMLIFrameElement3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static const IHTMLIFrameElement3Vtbl HTMLIFrameElement3Vtbl = { + HTMLIFrameElement3_QueryInterface, + HTMLIFrameElement3_AddRef, + HTMLIFrameElement3_Release, + HTMLIFrameElement3_GetTypeInfoCount, + HTMLIFrameElement3_GetTypeInfo, + HTMLIFrameElement3_GetIDsOfNames, + HTMLIFrameElement3_Invoke, + HTMLIFrameElement3_get_contentDocument, + HTMLIFrameElement3_put_src, + HTMLIFrameElement3_get_src, + HTMLIFrameElement3_put_longDesc, + HTMLIFrameElement3_get_longDesc, + HTMLIFrameElement3_put_frameBorder, + HTMLIFrameElement3_get_frameBorder +}; + static inline HTMLIFrame *impl_from_HTMLDOMNode(HTMLDOMNode *iface) { return CONTAINING_RECORD(iface, HTMLIFrame, framebase.element.node); @@ -270,6 +396,9 @@ static HRESULT HTMLIFrame_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) }else if(IsEqualGUID(&IID_IHTMLIFrameElement2, riid)) { TRACE("(%p)->(IID_IHTMLIFrameElement2 %p)\n", This, ppv); *ppv = &This->IHTMLIFrameElement2_iface; + }else if(IsEqualGUID(&IID_IHTMLIFrameElement3, riid)) { + TRACE("(%p)->(IID_IHTMLIFrameElement3 %p)\n", This, ppv); + *ppv = &This->IHTMLIFrameElement3_iface; }else { return HTMLFrameBase_QI(&This->framebase, riid, ppv); } @@ -372,6 +501,7 @@ static const tid_t HTMLIFrame_iface_tids[] = { IHTMLFrameBase2_tid, IHTMLIFrameElement_tid, IHTMLIFrameElement2_tid, + IHTMLIFrameElement3_tid, 0 }; @@ -392,6 +522,7 @@ HRESULT HTMLIFrame_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, HTML ret->IHTMLIFrameElement_iface.lpVtbl = &HTMLIFrameElementVtbl; ret->IHTMLIFrameElement2_iface.lpVtbl = &HTMLIFrameElement2Vtbl; + ret->IHTMLIFrameElement3_iface.lpVtbl = &HTMLIFrameElement3Vtbl; ret->framebase.element.node.vtbl = &HTMLIFrameImplVtbl; HTMLFrameBase_Init(&ret->framebase, doc, nselem, &HTMLIFrame_dispex); diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 8b5f8416ef..f23dc10aa7 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -147,6 +147,7 @@ typedef struct event_target_t event_target_t; XIID(IHTMLHeadElement) \ XIID(IHTMLIFrameElement) \ XIID(IHTMLIFrameElement2) \ + XIID(IHTMLIFrameElement3) \ XIID(IHTMLImageElementFactory) \ XIID(IHTMLImgElement) \ XIID(IHTMLInputElement) \