Jacek Caban : mshtml: Added IHTMLIFrameElement3 stub implementation.
Alexandre Julliard
julliard at winehq.org
Mon Sep 3 13:19:15 CDT 2012
Module: wine
Branch: master
Commit: fcc3a77ae5e8be2fa6d540cdde5569a9d384635d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fcc3a77ae5e8be2fa6d540cdde5569a9d384635d
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Sep 3 13:16:57 2012 +0200
mshtml: Added IHTMLIFrameElement3 stub implementation.
---
dlls/mshtml/htmliframe.c | 131 ++++++++++++++++++++++++++++++++++++++++++
dlls/mshtml/mshtml_private.h | 1 +
2 files changed, 132 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/htmliframe.c b/dlls/mshtml/htmliframe.c
index dccc7d0..faeb8f3 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 8b5f841..f23dc10 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) \
More information about the wine-cvs
mailing list