From 9477521fb83047a2f466fba2a12118e4cc70e2b2 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 23 Sep 2011 21:10:51 +1000 Subject: [PATCH] mshtml: Add IHTMLCurrentStyle2/3/4 support. --- dlls/mshtml/htmlcurstyle.c | 425 ++++++++++++++++++++++++++++++++++++- dlls/mshtml/tests/dom.c | 3 + 2 files changed, 426 insertions(+), 2 deletions(-) diff --git a/dlls/mshtml/htmlcurstyle.c b/dlls/mshtml/htmlcurstyle.c index 8bd1f16b6f7..c17b3ba4376 100644 --- a/dlls/mshtml/htmlcurstyle.c +++ b/dlls/mshtml/htmlcurstyle.c @@ -34,7 +34,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); struct HTMLCurrentStyle { DispatchEx dispex; - IHTMLCurrentStyle IHTMLCurrentStyle_iface; + IHTMLCurrentStyle IHTMLCurrentStyle_iface; + IHTMLCurrentStyle2 IHTMLCurrentStyle2_iface; + IHTMLCurrentStyle3 IHTMLCurrentStyle3_iface; + IHTMLCurrentStyle4 IHTMLCurrentStyle4_iface; LONG ref; @@ -46,6 +49,21 @@ static inline HTMLCurrentStyle *impl_from_IHTMLCurrentStyle(IHTMLCurrentStyle *i return CONTAINING_RECORD(iface, HTMLCurrentStyle, IHTMLCurrentStyle_iface); } +static inline HTMLCurrentStyle *impl_from_IHTMLCurrentStyle2(IHTMLCurrentStyle2 *iface) +{ + return CONTAINING_RECORD(iface, HTMLCurrentStyle, IHTMLCurrentStyle2_iface); +} + +static inline HTMLCurrentStyle *impl_from_IHTMLCurrentStyle3(IHTMLCurrentStyle3 *iface) +{ + return CONTAINING_RECORD(iface, HTMLCurrentStyle, IHTMLCurrentStyle3_iface); +} + +static inline HTMLCurrentStyle *impl_from_IHTMLCurrentStyle4(IHTMLCurrentStyle4 *iface) +{ + return CONTAINING_RECORD(iface, HTMLCurrentStyle, IHTMLCurrentStyle4_iface); +} + static HRESULT WINAPI HTMLCurrentStyle_QueryInterface(IHTMLCurrentStyle *iface, REFIID riid, void **ppv) { HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle(iface); @@ -58,6 +76,15 @@ static HRESULT WINAPI HTMLCurrentStyle_QueryInterface(IHTMLCurrentStyle *iface, }else if(IsEqualGUID(&IID_IHTMLCurrentStyle, riid)) { TRACE("(%p)->(IID_IHTMLCurrentStyle %p)\n", This, ppv); *ppv = &This->IHTMLCurrentStyle_iface; + }else if(IsEqualGUID(&IID_IHTMLCurrentStyle2, riid)) { + TRACE("(%p)->(IID_IHTMLCurrentStyle2 %p)\n", This, ppv); + *ppv = &This->IHTMLCurrentStyle2_iface; + }else if(IsEqualGUID(&IID_IHTMLCurrentStyle3, riid)) { + TRACE("(%p)->(IID_IHTMLCurrentStyle3 %p)\n", This, ppv); + *ppv = &This->IHTMLCurrentStyle3_iface; + }else if(IsEqualGUID(&IID_IHTMLCurrentStyle4, riid)) { + TRACE("(%p)->(IID_IHTMLCurrentStyle4 %p)\n", This, ppv); + *ppv = &This->IHTMLCurrentStyle4_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; } @@ -875,6 +902,397 @@ static const IHTMLCurrentStyleVtbl HTMLCurrentStyleVtbl = { HTMLCurrentStyle_get_textTransform }; +/* IHTMLCurrentStyle2 */ +static HRESULT WINAPI HTMLCurrentStyle2_QueryInterface(IHTMLCurrentStyle2 *iface, REFIID riid, void **ppv) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + + return IHTMLCurrentStyle_QueryInterface(&This->IHTMLCurrentStyle_iface, riid, ppv); +} + +static ULONG WINAPI HTMLCurrentStyle2_AddRef(IHTMLCurrentStyle2 *iface) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + + return IHTMLCurrentStyle_AddRef(&This->IHTMLCurrentStyle_iface); +} + +static ULONG WINAPI HTMLCurrentStyle2_Release(IHTMLCurrentStyle2 *iface) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + return IHTMLCurrentStyle_Release(&This->IHTMLCurrentStyle_iface); +} + +static HRESULT WINAPI HTMLCurrentStyle2_GetTypeInfoCount(IHTMLCurrentStyle2 *iface, UINT *pctinfo) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo); +} + +static HRESULT WINAPI HTMLCurrentStyle2_GetTypeInfo(IHTMLCurrentStyle2 *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); +} + +static HRESULT WINAPI HTMLCurrentStyle2_GetIDsOfNames(IHTMLCurrentStyle2 *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, + lcid, rgDispId); +} + +static HRESULT WINAPI HTMLCurrentStyle2_Invoke(IHTMLCurrentStyle2 *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_layoutFlow(IHTMLCurrentStyle2 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_wordWrap(IHTMLCurrentStyle2 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_textUnderlinePosition(IHTMLCurrentStyle2 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_hasLayout(IHTMLCurrentStyle2 *iface, VARIANT_BOOL *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbarBaseColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbarFaceColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbar3dLightColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbarShadowColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbarHighlightColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbarDarkShadowColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbarArrowColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_scrollbarTrackColor(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_writingMode(IHTMLCurrentStyle2 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_zoom(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_filter(IHTMLCurrentStyle2 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_textAlignLast(IHTMLCurrentStyle2 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_textKashidaSpace(IHTMLCurrentStyle2 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle2_get_isBlock(IHTMLCurrentStyle2 *iface, VARIANT_BOOL *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle2(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static const IHTMLCurrentStyle2Vtbl HTMLCurrentStyle2Vtbl = { + HTMLCurrentStyle2_QueryInterface, + HTMLCurrentStyle2_AddRef, + HTMLCurrentStyle2_Release, + HTMLCurrentStyle2_GetTypeInfoCount, + HTMLCurrentStyle2_GetTypeInfo, + HTMLCurrentStyle2_GetIDsOfNames, + HTMLCurrentStyle2_Invoke, + HTMLCurrentStyle2_get_layoutFlow, + HTMLCurrentStyle2_get_wordWrap, + HTMLCurrentStyle2_get_textUnderlinePosition, + HTMLCurrentStyle2_get_hasLayout, + HTMLCurrentStyle2_get_scrollbarBaseColor, + HTMLCurrentStyle2_get_scrollbarFaceColor, + HTMLCurrentStyle2_get_scrollbar3dLightColor, + HTMLCurrentStyle2_get_scrollbarShadowColor, + HTMLCurrentStyle2_get_scrollbarHighlightColor, + HTMLCurrentStyle2_get_scrollbarDarkShadowColor, + HTMLCurrentStyle2_get_scrollbarArrowColor, + HTMLCurrentStyle2_get_scrollbarTrackColor, + HTMLCurrentStyle2_get_writingMode, + HTMLCurrentStyle2_get_zoom, + HTMLCurrentStyle2_get_filter, + HTMLCurrentStyle2_get_textAlignLast, + HTMLCurrentStyle2_get_textKashidaSpace, + HTMLCurrentStyle2_get_isBlock +}; + +/* IHTMLCurrentStyle3 */ +static HRESULT WINAPI HTMLCurrentStyle3_QueryInterface(IHTMLCurrentStyle3 *iface, REFIID riid, void **ppv) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + + return IHTMLCurrentStyle_QueryInterface(&This->IHTMLCurrentStyle_iface, riid, ppv); +} + +static ULONG WINAPI HTMLCurrentStyle3_AddRef(IHTMLCurrentStyle3 *iface) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + + return IHTMLCurrentStyle_AddRef(&This->IHTMLCurrentStyle_iface); +} + +static ULONG WINAPI HTMLCurrentStyle3_Release(IHTMLCurrentStyle3 *iface) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + return IHTMLCurrentStyle_Release(&This->IHTMLCurrentStyle_iface); +} + +static HRESULT WINAPI HTMLCurrentStyle3_GetTypeInfoCount(IHTMLCurrentStyle3 *iface, UINT *pctinfo) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo); +} + +static HRESULT WINAPI HTMLCurrentStyle3_GetTypeInfo(IHTMLCurrentStyle3 *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); +} + +static HRESULT WINAPI HTMLCurrentStyle3_GetIDsOfNames(IHTMLCurrentStyle3 *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, + lcid, rgDispId); +} + +static HRESULT WINAPI HTMLCurrentStyle3_Invoke(IHTMLCurrentStyle3 *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI HTMLCurrentStyle3_get_textOverflow(IHTMLCurrentStyle3 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle3_get_minHeight(IHTMLCurrentStyle3 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle3_get_wordSpacing(IHTMLCurrentStyle3 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle3_get_whiteSpace(IHTMLCurrentStyle3 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static const IHTMLCurrentStyle3Vtbl HTMLCurrentStyle3Vtbl = { + HTMLCurrentStyle3_QueryInterface, + HTMLCurrentStyle3_AddRef, + HTMLCurrentStyle3_Release, + HTMLCurrentStyle3_GetTypeInfoCount, + HTMLCurrentStyle3_GetTypeInfo, + HTMLCurrentStyle3_GetIDsOfNames, + HTMLCurrentStyle3_Invoke, + HTMLCurrentStyle3_get_textOverflow, + HTMLCurrentStyle3_get_minHeight, + HTMLCurrentStyle3_get_wordSpacing, + HTMLCurrentStyle3_get_whiteSpace +}; + +/* IHTMLCurrentStyle4 */ +static HRESULT WINAPI HTMLCurrentStyle4_QueryInterface(IHTMLCurrentStyle4 *iface, REFIID riid, void **ppv) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + + return IHTMLCurrentStyle_QueryInterface(&This->IHTMLCurrentStyle_iface, riid, ppv); +} + +static ULONG WINAPI HTMLCurrentStyle4_AddRef(IHTMLCurrentStyle4 *iface) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + + return IHTMLCurrentStyle_AddRef(&This->IHTMLCurrentStyle_iface); +} + +static ULONG WINAPI HTMLCurrentStyle4_Release(IHTMLCurrentStyle4 *iface) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + return IHTMLCurrentStyle_Release(&This->IHTMLCurrentStyle_iface); +} + +static HRESULT WINAPI HTMLCurrentStyle4_GetTypeInfoCount(IHTMLCurrentStyle4 *iface, UINT *pctinfo) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo); +} + +static HRESULT WINAPI HTMLCurrentStyle4_GetTypeInfo(IHTMLCurrentStyle4 *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); +} + +static HRESULT WINAPI HTMLCurrentStyle4_GetIDsOfNames(IHTMLCurrentStyle4 *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, + lcid, rgDispId); +} + +static HRESULT WINAPI HTMLCurrentStyle4_Invoke(IHTMLCurrentStyle4 *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI HTMLCurrentStyle4_msInterpolationMode(IHTMLCurrentStyle4 *iface, BSTR *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle4_get_maxHeight(IHTMLCurrentStyle4 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle4_get_minWidth(IHTMLCurrentStyle4 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLCurrentStyle4_get_maxWidth(IHTMLCurrentStyle4 *iface, VARIANT *p) +{ + HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle4(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static const IHTMLCurrentStyle4Vtbl HTMLCurrentStyle4Vtbl = { + HTMLCurrentStyle4_QueryInterface, + HTMLCurrentStyle4_AddRef, + HTMLCurrentStyle4_Release, + HTMLCurrentStyle4_GetTypeInfoCount, + HTMLCurrentStyle4_GetTypeInfo, + HTMLCurrentStyle4_GetIDsOfNames, + HTMLCurrentStyle4_Invoke, + HTMLCurrentStyle4_msInterpolationMode, + HTMLCurrentStyle4_get_maxHeight, + HTMLCurrentStyle4_get_minWidth, + HTMLCurrentStyle4_get_maxWidth +}; + static const tid_t HTMLCurrentStyle_iface_tids[] = { IHTMLCurrentStyle_tid, IHTMLCurrentStyle2_tid, @@ -922,7 +1340,10 @@ HRESULT HTMLCurrentStyle_Create(HTMLElement *elem, IHTMLCurrentStyle **p) return E_OUTOFMEMORY; } - ret->IHTMLCurrentStyle_iface.lpVtbl = &HTMLCurrentStyleVtbl; + ret->IHTMLCurrentStyle_iface.lpVtbl = &HTMLCurrentStyleVtbl; + ret->IHTMLCurrentStyle2_iface.lpVtbl = &HTMLCurrentStyle2Vtbl; + ret->IHTMLCurrentStyle3_iface.lpVtbl = &HTMLCurrentStyle3Vtbl; + ret->IHTMLCurrentStyle4_iface.lpVtbl = &HTMLCurrentStyle4Vtbl; ret->ref = 1; ret->nsstyle = nsstyle; diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 45b3a801a27..f585c457dc6 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -363,6 +363,9 @@ static const IID * const cstyle_iids[] = { &IID_IDispatch, &IID_IDispatchEx, &IID_IHTMLCurrentStyle, + &IID_IHTMLCurrentStyle2, + &IID_IHTMLCurrentStyle3, + &IID_IHTMLCurrentStyle4, NULL };