Module: wine Branch: master Commit: 0eff947c091de89621dd7d48ae1c6adb18853b71 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0eff947c091de89621dd7d48ae...
Author: Michael Stefaniuc mstefani@redhat.de Date: Wed Jan 5 00:43:29 2011 +0100
mshtml: Use ifaces instead of vtbl pointers in ProtocolFactory.
---
dlls/mshtml/protocol.c | 52 ++++++++++++++++++++++++------------------------ 1 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/dlls/mshtml/protocol.c b/dlls/mshtml/protocol.c index 1485881..b3aee2b 100644 --- a/dlls/mshtml/protocol.c +++ b/dlls/mshtml/protocol.c @@ -39,31 +39,32 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); * common ProtocolFactory implementation */
-#define CLASSFACTORY(x) (&(x)->lpClassFactoryVtbl) #define PROTOCOL(x) ((IInternetProtocol*) &(x)->lpInternetProtocolVtbl) -#define PROTOCOLINFO(x) ((IInternetProtocolInfo*) &(x)->lpInternetProtocolInfoVtbl)
typedef struct { - const IInternetProtocolInfoVtbl *lpInternetProtocolInfoVtbl; - const IClassFactoryVtbl *lpClassFactoryVtbl; + IInternetProtocolInfo IInternetProtocolInfo_iface; + IClassFactory IClassFactory_iface; } ProtocolFactory;
-#define PROTOCOLINFO_THIS(iface) DEFINE_THIS(ProtocolFactory, InternetProtocolInfo, iface) +static inline ProtocolFactory *impl_from_IInternetProtocolInfo(IInternetProtocolInfo *iface) +{ + return CONTAINING_RECORD(iface, ProtocolFactory, IInternetProtocolInfo_iface); +}
static HRESULT WINAPI InternetProtocolInfo_QueryInterface(IInternetProtocolInfo *iface, REFIID riid, void **ppv) { - ProtocolFactory *This = PROTOCOLINFO_THIS(iface); + ProtocolFactory *This = impl_from_IInternetProtocolInfo(iface);
*ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); - *ppv = PROTOCOLINFO(This); + *ppv = &This->IInternetProtocolInfo_iface; }else if(IsEqualGUID(&IID_IInternetProtocolInfo, riid)) { TRACE("(%p)->(IID_IInternetProtocolInfo %p)\n", This, ppv); - *ppv = PROTOCOLINFO(This); + *ppv = &This->IInternetProtocolInfo_iface; }else if(IsEqualGUID(&IID_IClassFactory, riid)) { TRACE("(%p)->(IID_IClassFactory %p)\n", This, ppv); - *ppv = CLASSFACTORY(This); + *ppv = &This->IClassFactory_iface; }
if(!*ppv) { @@ -105,26 +106,27 @@ static HRESULT WINAPI InternetProtocolInfo_CompareUrl(IInternetProtocolInfo *ifa return E_NOTIMPL; }
-#undef PROTOCOLINFO_THIS - -#define CLASSFACTORY_THIS(iface) DEFINE_THIS(ProtocolFactory, ClassFactory, iface) +static inline ProtocolFactory *impl_from_IClassFactory(IClassFactory *iface) +{ + return CONTAINING_RECORD(iface, ProtocolFactory, IClassFactory_iface); +}
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv) { - ProtocolFactory *This = CLASSFACTORY_THIS(iface); - return IInternetProtocolInfo_QueryInterface(PROTOCOLINFO(This), riid, ppv); + ProtocolFactory *This = impl_from_IClassFactory(iface); + return IInternetProtocolInfo_QueryInterface(&This->IInternetProtocolInfo_iface, riid, ppv); }
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface) { - ProtocolFactory *This = CLASSFACTORY_THIS(iface); - return IInternetProtocolInfo_AddRef(PROTOCOLINFO(This)); + ProtocolFactory *This = impl_from_IClassFactory(iface); + return IInternetProtocolInfo_AddRef(&This->IInternetProtocolInfo_iface); }
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) { - ProtocolFactory *This = CLASSFACTORY_THIS(iface); - return IInternetProtocolInfo_Release(PROTOCOLINFO(This)); + ProtocolFactory *This = impl_from_IClassFactory(iface); + return IInternetProtocolInfo_Release(&This->IInternetProtocolInfo_iface); }
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock) @@ -133,8 +135,6 @@ static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock) return S_OK; }
-#undef CLASSFACTORY_THIS - /******************************************************************** * AboutProtocol implementation */ @@ -497,8 +497,8 @@ static const IClassFactoryVtbl AboutProtocolFactoryVtbl = { };
static ProtocolFactory AboutProtocolFactory = { - &AboutProtocolInfoVtbl, - &AboutProtocolFactoryVtbl + { &AboutProtocolInfoVtbl }, + { &AboutProtocolFactoryVtbl } };
/******************************************************************** @@ -934,8 +934,8 @@ static const IClassFactoryVtbl ResProtocolFactoryVtbl = { };
static ProtocolFactory ResProtocolFactory = { - &ResProtocolInfoVtbl, - &ResProtocolFactoryVtbl + { &ResProtocolInfoVtbl }, + { &ResProtocolFactoryVtbl } };
/******************************************************************** @@ -1017,8 +1017,8 @@ static const IClassFactoryVtbl JSProtocolFactoryVtbl = { };
static ProtocolFactory JSProtocolFactory = { - &JSProtocolInfoVtbl, - &JSProtocolFactoryVtbl + { &JSProtocolInfoVtbl }, + { &JSProtocolFactoryVtbl } };
HRESULT ProtocolFactory_Create(REFCLSID rclsid, REFIID riid, void **ppv)