mshtml: Use an iface instead of a vtbl pointer in HTMLBodyElement.

This commit is contained in:
Michael Stefaniuc 2010-12-06 16:44:18 +01:00 committed by Alexandre Julliard
parent c9195b9f02
commit f419f8e0b7
1 changed files with 51 additions and 52 deletions

View File

@ -35,15 +35,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
typedef struct {
HTMLTextContainer textcont;
const IHTMLBodyElementVtbl *lpHTMLBodyElementVtbl;
IHTMLBodyElement IHTMLBodyElement_iface;
ConnectionPoint cp_propnotif;
nsIDOMHTMLBodyElement *nsbody;
} HTMLBodyElement;
#define HTMLBODY(x) (&(x)->lpHTMLBodyElementVtbl)
static const WCHAR aquaW[] = {'a','q','u','a',0};
static const WCHAR blackW[] = {'b','l','a','c','k',0};
static const WCHAR blueW[] = {'b','l','u','e',0};
@ -195,40 +193,43 @@ static void nscolor_to_variant(const nsAString *nsstr, VARIANT *p)
}
}
#define HTMLBODY_THIS(iface) DEFINE_THIS(HTMLBodyElement, HTMLBodyElement, iface)
static inline HTMLBodyElement *impl_from_IHTMLBodyElement(IHTMLBodyElement *iface)
{
return CONTAINING_RECORD(iface, HTMLBodyElement, IHTMLBodyElement_iface);
}
static HRESULT WINAPI HTMLBodyElement_QueryInterface(IHTMLBodyElement *iface,
REFIID riid, void **ppv)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->textcont.element.node), riid, ppv);
}
static ULONG WINAPI HTMLBodyElement_AddRef(IHTMLBodyElement *iface)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->textcont.element.node));
}
static ULONG WINAPI HTMLBodyElement_Release(IHTMLBodyElement *iface)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IHTMLDOMNode_Release(HTMLDOMNODE(&This->textcont.element.node));
}
static HRESULT WINAPI HTMLBodyElement_GetTypeInfoCount(IHTMLBodyElement *iface, UINT *pctinfo)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->textcont.element.node.dispex), pctinfo);
}
static HRESULT WINAPI HTMLBodyElement_GetTypeInfo(IHTMLBodyElement *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->textcont.element.node.dispex), iTInfo, lcid, ppTInfo);
}
@ -236,7 +237,7 @@ static HRESULT WINAPI HTMLBodyElement_GetIDsOfNames(IHTMLBodyElement *iface, REF
LPOLESTR *rgszNames, UINT cNames,
LCID lcid, DISPID *rgDispId)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->textcont.element.node.dispex), riid, rgszNames, cNames, lcid, rgDispId);
}
@ -244,14 +245,14 @@ static HRESULT WINAPI HTMLBodyElement_Invoke(IHTMLBodyElement *iface, DISPID dis
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
return IDispatchEx_Invoke(DISPATCHEX(&This->textcont.element.node.dispex), dispIdMember, riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI HTMLBodyElement_put_background(IHTMLBodyElement *iface, BSTR v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString nsstr;
nsresult nsres;
@ -268,7 +269,7 @@ static HRESULT WINAPI HTMLBodyElement_put_background(IHTMLBodyElement *iface, BS
static HRESULT WINAPI HTMLBodyElement_get_background(IHTMLBodyElement *iface, BSTR *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString background_str;
nsresult nsres;
@ -294,91 +295,91 @@ static HRESULT WINAPI HTMLBodyElement_get_background(IHTMLBodyElement *iface, BS
static HRESULT WINAPI HTMLBodyElement_put_bgProperties(IHTMLBodyElement *iface, BSTR v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%s)\n", This, debugstr_w(v));
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_bgProperties(IHTMLBodyElement *iface, BSTR *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_leftMargin(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_leftMargin(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_topMargin(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_topMargin(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_rightMargin(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_rightMargin(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_bottomMargin(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_bottomMargin(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_noWrap(IHTMLBodyElement *iface, VARIANT_BOOL v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%x)\n", This, v);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_noWrap(IHTMLBodyElement *iface, VARIANT_BOOL *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_bgColor(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString strColor;
nsresult nsres;
@ -397,7 +398,7 @@ static HRESULT WINAPI HTMLBodyElement_put_bgColor(IHTMLBodyElement *iface, VARIA
static HRESULT WINAPI HTMLBodyElement_get_bgColor(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString strColor;
nsresult nsres;
HRESULT hres;
@ -423,7 +424,7 @@ static HRESULT WINAPI HTMLBodyElement_get_bgColor(IHTMLBodyElement *iface, VARIA
static HRESULT WINAPI HTMLBodyElement_put_text(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString text;
nsresult nsres;
@ -444,7 +445,7 @@ static HRESULT WINAPI HTMLBodyElement_put_text(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_get_text(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString text;
nsresult nsres;
HRESULT hres;
@ -471,7 +472,7 @@ static HRESULT WINAPI HTMLBodyElement_get_text(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_put_link(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString link_str;
nsresult nsres;
@ -490,7 +491,7 @@ static HRESULT WINAPI HTMLBodyElement_put_link(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_get_link(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString link_str;
nsresult nsres;
@ -509,7 +510,7 @@ static HRESULT WINAPI HTMLBodyElement_get_link(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_put_vLink(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString vlink_str;
nsresult nsres;
@ -528,7 +529,7 @@ static HRESULT WINAPI HTMLBodyElement_put_vLink(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_get_vLink(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString vlink_str;
nsresult nsres;
@ -547,7 +548,7 @@ static HRESULT WINAPI HTMLBodyElement_get_vLink(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_put_aLink(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString alink_str;
nsresult nsres;
@ -566,7 +567,7 @@ static HRESULT WINAPI HTMLBodyElement_put_aLink(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_get_aLink(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsAString alink_str;
nsresult nsres;
@ -585,77 +586,77 @@ static HRESULT WINAPI HTMLBodyElement_get_aLink(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_put_onload(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_onload(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_onunload(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_onunload(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_scroll(IHTMLBodyElement *iface, BSTR v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%s)\n", This, debugstr_w(v));
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_scroll(IHTMLBodyElement *iface, BSTR *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_onselect(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_onselect(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_put_onbeforeunload(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_get_onbeforeunload(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLBodyElement_createTextRange(IHTMLBodyElement *iface, IHTMLTxtRange **range)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface);
nsIDOMDocumentRange *nsdocrange;
nsIDOMRange *nsrange = NULL;
nsresult nsres;
@ -692,8 +693,6 @@ static HRESULT WINAPI HTMLBodyElement_createTextRange(IHTMLBodyElement *iface, I
return hres;
}
#undef HTMLBODY_THIS
static const IHTMLBodyElementVtbl HTMLBodyElementVtbl = {
HTMLBodyElement_QueryInterface,
HTMLBodyElement_AddRef,
@ -749,13 +748,13 @@ static HRESULT HTMLBodyElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
if(IsEqualGUID(&IID_IUnknown, riid)) {
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = HTMLBODY(This);
*ppv = &This->IHTMLBodyElement_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = HTMLBODY(This);
*ppv = &This->IHTMLBodyElement_iface;
}else if(IsEqualGUID(&IID_IHTMLBodyElement, riid)) {
TRACE("(%p)->(IID_IHTMLBodyElement %p)\n", This, ppv);
*ppv = HTMLBODY(This);
*ppv = &This->IHTMLBodyElement_iface;
}else if(IsEqualGUID(&IID_IHTMLTextContainer, riid)) {
TRACE("(%p)->(IID_IHTMLTextContainer %p)\n", &This->textcont, ppv);
*ppv = HTMLTEXTCONT(&This->textcont);
@ -821,7 +820,7 @@ HRESULT HTMLBodyElement_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem,
if(!ret)
return E_OUTOFMEMORY;
ret->lpHTMLBodyElementVtbl = &HTMLBodyElementVtbl;
ret->IHTMLBodyElement_iface.lpVtbl = &HTMLBodyElementVtbl;
ret->textcont.element.node.vtbl = &HTMLBodyElementImplVtbl;
nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLBodyElement, (void**)&ret->nsbody);