gameux: COM cleanup in gamestatistics.c.
Michael Stefaniuc
mstefani at redhat.de
Wed Aug 10 17:11:07 CDT 2011
---
dlls/gameux/gamestatistics.c | 23 +++++++++--------------
1 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/dlls/gameux/gamestatistics.c b/dlls/gameux/gamestatistics.c
index 87df886..2e6e21c 100644
--- a/dlls/gameux/gamestatistics.c
+++ b/dlls/gameux/gamestatistics.c
@@ -651,20 +651,15 @@ static HRESULT GAMEUX_loadGameStatistics(struct GAMEUX_STATS *pStats,
*/
typedef struct _GameStatisticsImpl
{
- const struct IGameStatisticsVtbl *lpVtbl;
+ IGameStatistics IGameStatistics_iface;
LONG ref;
struct GAMEUX_STATS stats;
} GameStatisticsImpl;
static inline GameStatisticsImpl *impl_from_IGameStatistics( IGameStatistics *iface )
{
- return (GameStatisticsImpl *)((char*)iface - FIELD_OFFSET(GameStatisticsImpl, lpVtbl));
+ return CONTAINING_RECORD(iface, GameStatisticsImpl, IGameStatistics_iface);
}
-static inline IGameStatistics *IGameStatistics_from_impl( GameStatisticsImpl* This )
-{
- return (struct IGameStatistics*)&This->lpVtbl;
-}
-
static HRESULT WINAPI GameStatisticsImpl_QueryInterface(
IGameStatistics *iface,
@@ -1003,7 +998,7 @@ static HRESULT create_IGameStatistics(GameStatisticsImpl** ppStats)
if(!(*ppStats))
return E_OUTOFMEMORY;
- (*ppStats)->lpVtbl = &GameStatisticsImplVtbl;
+ (*ppStats)->IGameStatistics_iface.lpVtbl = &GameStatisticsImplVtbl;
(*ppStats)->ref = 1;
TRACE("returning coclass: %p\n", *ppStats);
@@ -1015,13 +1010,13 @@ static HRESULT create_IGameStatistics(GameStatisticsImpl** ppStats)
*/
typedef struct _GameStatisticsMgrImpl
{
- const struct IGameStatisticsMgrVtbl *lpVtbl;
+ IGameStatisticsMgr IGameStatisticsMgr_iface;
LONG ref;
} GameStatisticsMgrImpl;
static inline GameStatisticsMgrImpl *impl_from_IGameStatisticsMgr( IGameStatisticsMgr *iface )
{
- return (GameStatisticsMgrImpl *)((char*)iface - FIELD_OFFSET(GameStatisticsMgrImpl, lpVtbl));
+ return CONTAINING_RECORD(iface, GameStatisticsMgrImpl, IGameStatisticsMgr_iface);
}
@@ -1088,7 +1083,7 @@ static HRESULT STDMETHODCALLTYPE GameStatisticsMgrImpl_GetGameStatistics(
{
HRESULT hr;
WCHAR lpApplicationId[49];
- GameStatisticsImpl *statisticsImpl = NULL;
+ GameStatisticsImpl *statisticsImpl;
IGameStatistics *output_iface;
TRACE("(%p, %s, 0x%x, %p, %p)\n", iface, debugstr_w(GDFBinaryPath), openType, pOpenResult, ppiStats);
@@ -1100,7 +1095,7 @@ static HRESULT STDMETHODCALLTYPE GameStatisticsMgrImpl_GetGameStatistics(
if(SUCCEEDED(hr))
{
- output_iface = IGameStatistics_from_impl(statisticsImpl);
+ output_iface = &statisticsImpl->IGameStatistics_iface;
hr = GAMEUX_buildStatisticsFilePath(lpApplicationId, statisticsImpl->stats.sStatsFile);
}
@@ -1161,10 +1156,10 @@ HRESULT GameStatistics_create(
if( !pGameStatistics )
return E_OUTOFMEMORY;
- pGameStatistics->lpVtbl = &GameStatisticsMgrImplVtbl;
+ pGameStatistics->IGameStatisticsMgr_iface.lpVtbl = &GameStatisticsMgrImplVtbl;
pGameStatistics->ref = 1;
- *ppObj = (IUnknown*)(&pGameStatistics->lpVtbl);
+ *ppObj = (IUnknown*)&pGameStatistics->IGameStatisticsMgr_iface;
TRACE("returning iface %p\n", *ppObj);
return S_OK;
--
1.7.4.4
More information about the wine-patches
mailing list