mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-07 21:06:49 +00:00
mshtml: Introduce DISPEX_IDISPATCH_IMPL.
And use it for HTMLRect object implementation.
This commit is contained in:
parent
7b15890fe8
commit
27fea2eefc
|
@ -537,57 +537,7 @@ static inline HTMLRect *impl_from_IHTMLRect(IHTMLRect *iface)
|
|||
return CONTAINING_RECORD(iface, HTMLRect, IHTMLRect_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect_QueryInterface(IHTMLRect *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect(iface);
|
||||
return IDispatchEx_QueryInterface(&This->dispex.IDispatchEx_iface, riid, ppv);
|
||||
}
|
||||
|
||||
static ULONG WINAPI HTMLRect_AddRef(IHTMLRect *iface)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect(iface);
|
||||
return IDispatchEx_AddRef(&This->dispex.IDispatchEx_iface);
|
||||
}
|
||||
|
||||
static ULONG WINAPI HTMLRect_Release(IHTMLRect *iface)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect(iface);
|
||||
return IDispatchEx_Release(&This->dispex.IDispatchEx_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect_GetTypeInfoCount(IHTMLRect *iface, UINT *pctinfo)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pctinfo);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect_GetTypeInfo(IHTMLRect *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect(iface);
|
||||
|
||||
return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect_GetIDsOfNames(IHTMLRect *iface, REFIID riid,
|
||||
LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect(iface);
|
||||
|
||||
return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
|
||||
lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect_Invoke(IHTMLRect *iface, DISPID dispIdMember,
|
||||
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
|
||||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect(iface);
|
||||
|
||||
return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
|
||||
pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
DISPEX_IDISPATCH_IMPL(HTMLRect, IHTMLRect, impl_from_IHTMLRect(iface)->dispex)
|
||||
|
||||
static HRESULT WINAPI HTMLRect_put_left(IHTMLRect *iface, LONG v)
|
||||
{
|
||||
|
@ -694,53 +644,7 @@ static inline HTMLRect *impl_from_IHTMLRect2(IHTMLRect2 *iface)
|
|||
return CONTAINING_RECORD(iface, HTMLRect, IHTMLRect2_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect2_QueryInterface(IHTMLRect2 *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect2(iface);
|
||||
return IHTMLRect_QueryInterface(&This->IHTMLRect_iface, riid, ppv);
|
||||
}
|
||||
|
||||
static ULONG WINAPI HTMLRect2_AddRef(IHTMLRect2 *iface)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect2(iface);
|
||||
return IHTMLRect_AddRef(&This->IHTMLRect_iface);
|
||||
}
|
||||
|
||||
static ULONG WINAPI HTMLRect2_Release(IHTMLRect2 *iface)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect2(iface);
|
||||
return IHTMLRect_Release(&This->IHTMLRect_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect2_GetTypeInfoCount(IHTMLRect2 *iface, UINT *pctinfo)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect2(iface);
|
||||
return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect2_GetTypeInfo(IHTMLRect2 *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect2(iface);
|
||||
return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect2_GetIDsOfNames(IHTMLRect2 *iface, REFIID riid,
|
||||
LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect2(iface);
|
||||
return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
|
||||
lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLRect2_Invoke(IHTMLRect2 *iface, DISPID dispIdMember,
|
||||
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
|
||||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
HTMLRect *This = impl_from_IHTMLRect2(iface);
|
||||
return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
|
||||
pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
DISPEX_IDISPATCH_IMPL(HTMLRect2, IHTMLRect2, impl_from_IHTMLRect2(iface)->dispex)
|
||||
|
||||
static HRESULT WINAPI HTMLRect2_get_width(IHTMLRect2 *iface, FLOAT *p)
|
||||
{
|
||||
|
|
|
@ -412,6 +412,41 @@ struct DispatchEx {
|
|||
dispex_dynamic_data_t *dynamic_data;
|
||||
};
|
||||
|
||||
#define DISPEX_IDISPATCH_IMPL(prefix, iface_name, dispex) \
|
||||
static HRESULT WINAPI prefix##_QueryInterface(iface_name *iface, REFIID riid, void **ppv) \
|
||||
{ \
|
||||
return IDispatchEx_QueryInterface(&(dispex).IDispatchEx_iface, riid, ppv); \
|
||||
} \
|
||||
static ULONG WINAPI prefix##_AddRef(iface_name *iface) \
|
||||
{ \
|
||||
return IDispatchEx_AddRef(&(dispex).IDispatchEx_iface); \
|
||||
} \
|
||||
static ULONG WINAPI prefix##_Release(iface_name *iface) \
|
||||
{ \
|
||||
return IDispatchEx_Release(&(dispex).IDispatchEx_iface); \
|
||||
} \
|
||||
static HRESULT WINAPI prefix##_GetTypeInfoCount(iface_name *iface, UINT *count) \
|
||||
{ \
|
||||
return IDispatchEx_GetTypeInfoCount(&(dispex).IDispatchEx_iface, count); \
|
||||
} \
|
||||
static HRESULT WINAPI prefix##_GetTypeInfo(iface_name *iface, \
|
||||
UINT index, LCID lcid, ITypeInfo **ret) \
|
||||
{ \
|
||||
return IDispatchEx_GetTypeInfo(&(dispex).IDispatchEx_iface, index, lcid, ret); \
|
||||
} \
|
||||
static HRESULT WINAPI prefix##_GetIDsOfNames(iface_name *iface, REFIID riid, \
|
||||
LPOLESTR *names, UINT count, LCID lcid, DISPID *dispid) \
|
||||
{ \
|
||||
return IDispatchEx_GetIDsOfNames(&(dispex).IDispatchEx_iface, \
|
||||
riid, names, count, lcid, dispid); \
|
||||
} \
|
||||
static HRESULT WINAPI prefix##_Invoke(iface_name *iface, DISPID dispid, REFIID riid, \
|
||||
LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, UINT *err) \
|
||||
{ \
|
||||
return IDispatchEx_Invoke(&(dispex).IDispatchEx_iface, dispid, \
|
||||
riid, lcid, flags, params, res, ei, err); \
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
void *vtbl;
|
||||
int ref_flags;
|
||||
|
|
Loading…
Reference in a new issue