Commit 9477521f authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

mshtml: Add IHTMLCurrentStyle2/3/4 support.

parent 67665354
......@@ -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;
......
......@@ -363,6 +363,9 @@ static const IID * const cstyle_iids[] = {
&IID_IDispatch,
&IID_IDispatchEx,
&IID_IHTMLCurrentStyle,
&IID_IHTMLCurrentStyle2,
&IID_IHTMLCurrentStyle3,
&IID_IHTMLCurrentStyle4,
NULL
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment