From 6682d86e156fb9b222c781ab92031890b2cb50d8 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 11 Nov 2010 20:10:33 +0100 Subject: [PATCH] oleaut32: Get rid of the ICOM_THIS_MULTI macro. --- dlls/oleaut32/tmarshal.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c index bfe17c82524..9f0145dd108 100644 --- a/dlls/oleaut32/tmarshal.c +++ b/dlls/oleaut32/tmarshal.c @@ -54,8 +54,6 @@ static const WCHAR IDispatchW[] = { 'I','D','i','s','p','a','t','c','h',0}; WINE_DEFAULT_DEBUG_CHANNEL(ole); WINE_DECLARE_DEBUG_CHANNEL(olerelay); -#define ICOM_THIS_MULTI(impl,field,iface) impl* const This=(impl*)((char*)(iface) - offsetof(impl,field)) - static HRESULT TMarshalDispatchChannel_Create( IRpcChannelBuffer *pDelegateChannel, REFIID tmarshal_riid, IRpcChannelBuffer **ppChannel); @@ -405,6 +403,11 @@ typedef struct _TMProxyImpl { IRpcProxyBuffer *dispatch_proxy; } TMProxyImpl; +static inline TMProxyImpl *impl_from_IRpcProxyBuffer( IRpcProxyBuffer *iface ) +{ + return (TMProxyImpl *)((char*)iface - FIELD_OFFSET(TMProxyImpl, lpvtbl2)); +} + static HRESULT WINAPI TMProxyImpl_QueryInterface(LPRPCPROXYBUFFER iface, REFIID riid, LPVOID *ppv) { @@ -421,7 +424,7 @@ TMProxyImpl_QueryInterface(LPRPCPROXYBUFFER iface, REFIID riid, LPVOID *ppv) static ULONG WINAPI TMProxyImpl_AddRef(LPRPCPROXYBUFFER iface) { - ICOM_THIS_MULTI(TMProxyImpl,lpvtbl2,iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface ); ULONG refCount = InterlockedIncrement(&This->ref); TRACE("(%p)->(ref before=%u)\n",This, refCount - 1); @@ -432,7 +435,7 @@ TMProxyImpl_AddRef(LPRPCPROXYBUFFER iface) static ULONG WINAPI TMProxyImpl_Release(LPRPCPROXYBUFFER iface) { - ICOM_THIS_MULTI(TMProxyImpl,lpvtbl2,iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface ); ULONG refCount = InterlockedDecrement(&This->ref); TRACE("(%p)->(ref before=%u)\n",This, refCount + 1); @@ -455,7 +458,7 @@ static HRESULT WINAPI TMProxyImpl_Connect( LPRPCPROXYBUFFER iface,IRpcChannelBuffer* pRpcChannelBuffer) { - ICOM_THIS_MULTI(TMProxyImpl, lpvtbl2, iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface ); TRACE("(%p)\n", pRpcChannelBuffer); @@ -483,7 +486,7 @@ TMProxyImpl_Connect( static void WINAPI TMProxyImpl_Disconnect(LPRPCPROXYBUFFER iface) { - ICOM_THIS_MULTI(TMProxyImpl, lpvtbl2, iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface ); TRACE("()\n");