diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index e9cb94b55e2..b2fa53cfb38 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -98,15 +98,15 @@ static const tag_desc_t *get_tag_desc(const WCHAR *tag_name)
typedef struct
{
DispatchEx dispex;
- const IHTMLFiltersCollectionVtbl *lpHTMLFiltersCollectionVtbl;
+ IHTMLFiltersCollection IHTMLFiltersCollection_iface;
LONG ref;
} HTMLFiltersCollection;
-#define HTMLFILTERSCOLLECTION(x) ((IHTMLFiltersCollection*) &(x)->lpHTMLFiltersCollectionVtbl)
-
-#define HTMLFILTERSCOLLECTION_THIS(iface) \
- DEFINE_THIS(HTMLFiltersCollection, HTMLFiltersCollection, iface)
+static inline HTMLFiltersCollection *impl_from_IHTMLFiltersCollection(IHTMLFiltersCollection *iface)
+{
+ return CONTAINING_RECORD(iface, HTMLFiltersCollection, IHTMLFiltersCollection_iface);
+}
IHTMLFiltersCollection *HTMLFiltersCollection_Create(void);
@@ -1781,16 +1781,16 @@ HRESULT HTMLElement_Create(HTMLDocumentNode *doc, nsIDOMNode *nsnode, BOOL use_g
/* interface IHTMLFiltersCollection */
static HRESULT WINAPI HTMLFiltersCollection_QueryInterface(IHTMLFiltersCollection *iface, REFIID riid, void **ppv)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppv );
if(IsEqualGUID(&IID_IUnknown, riid)) {
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
- *ppv = HTMLFILTERSCOLLECTION(This);
+ *ppv = &This->IHTMLFiltersCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLFiltersCollection, riid)) {
TRACE("(%p)->(IID_IHTMLFiltersCollection %p)\n", This, ppv);
- *ppv = HTMLFILTERSCOLLECTION(This);
+ *ppv = &This->IHTMLFiltersCollection_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
}
@@ -1806,7 +1806,7 @@ static HRESULT WINAPI HTMLFiltersCollection_QueryInterface(IHTMLFiltersCollectio
static ULONG WINAPI HTMLFiltersCollection_AddRef(IHTMLFiltersCollection *iface)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
LONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref);
@@ -1816,7 +1816,7 @@ static ULONG WINAPI HTMLFiltersCollection_AddRef(IHTMLFiltersCollection *iface)
static ULONG WINAPI HTMLFiltersCollection_Release(IHTMLFiltersCollection *iface)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
LONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref);
@@ -1831,14 +1831,14 @@ static ULONG WINAPI HTMLFiltersCollection_Release(IHTMLFiltersCollection *iface)
static HRESULT WINAPI HTMLFiltersCollection_GetTypeInfoCount(IHTMLFiltersCollection *iface, UINT *pctinfo)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->dispex), pctinfo);
}
static HRESULT WINAPI HTMLFiltersCollection_GetTypeInfo(IHTMLFiltersCollection *iface,
UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo);
}
@@ -1846,7 +1846,7 @@ static HRESULT WINAPI HTMLFiltersCollection_GetIDsOfNames(IHTMLFiltersCollection
REFIID riid, LPOLESTR *rgszNames, UINT cNames,
LCID lcid, DISPID *rgDispId)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId);
}
@@ -1854,14 +1854,14 @@ static HRESULT WINAPI HTMLFiltersCollection_Invoke(IHTMLFiltersCollection *iface
LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI HTMLFiltersCollection_get_length(IHTMLFiltersCollection *iface, LONG *p)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
if(!p)
return E_POINTER;
@@ -1874,14 +1874,14 @@ static HRESULT WINAPI HTMLFiltersCollection_get_length(IHTMLFiltersCollection *i
static HRESULT WINAPI HTMLFiltersCollection_get__newEnum(IHTMLFiltersCollection *iface, IUnknown **p)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLFiltersCollection_item(IHTMLFiltersCollection *iface, VARIANT *pvarIndex, VARIANT *pvarResult)
{
- HTMLFiltersCollection *This = HTMLFILTERSCOLLECTION_THIS(iface);
+ HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
FIXME("(%p)->(%p, %p)\n", This, pvarIndex, pvarResult);
return E_NOTIMPL;
}
@@ -1948,10 +1948,11 @@ IHTMLFiltersCollection *HTMLFiltersCollection_Create()
{
HTMLFiltersCollection *ret = heap_alloc(sizeof(HTMLFiltersCollection));
- ret->lpHTMLFiltersCollectionVtbl = &HTMLFiltersCollectionVtbl;
+ ret->IHTMLFiltersCollection_iface.lpVtbl = &HTMLFiltersCollectionVtbl;
ret->ref = 1;
- init_dispex(&ret->dispex, (IUnknown*)HTMLFILTERSCOLLECTION(ret), &HTMLFiltersCollection_dispex);
+ init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLFiltersCollection_iface,
+ &HTMLFiltersCollection_dispex);
- return HTMLFILTERSCOLLECTION(ret);
+ return &ret->IHTMLFiltersCollection_iface;
}