Michael Stefaniuc : dplayx: Remove the duplicated IDirectPlayXImpl structs.
Alexandre Julliard
julliard at winehq.org
Fri Mar 29 12:17:58 CDT 2013
Module: wine
Branch: master
Commit: 82b51258eae9ab4dc1e6e2e2d5b7c61980d12037
URL: http://source.winehq.org/git/wine.git/?a=commit;h=82b51258eae9ab4dc1e6e2e2d5b7c61980d12037
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Fri Mar 29 16:39:26 2013 +0100
dplayx: Remove the duplicated IDirectPlayXImpl structs.
---
dlls/dplayx/dplay.c | 29 +++++------------------------
dlls/dplayx/dplay_global.h | 44 +++++++++++++-------------------------------
2 files changed, 18 insertions(+), 55 deletions(-)
diff --git a/dlls/dplayx/dplay.c b/dlls/dplayx/dplay.c
index 0ddde38..c7ab380 100644
--- a/dlls/dplayx/dplay.c
+++ b/dlls/dplayx/dplay.c
@@ -396,46 +396,26 @@ static BOOL DP_DestroyDirectPlay2( LPVOID lpDP )
HRESULT DP_CreateInterface
( REFIID riid, LPVOID* ppvObj )
{
- TRACE( " for %s\n", debugstr_guid( riid ) );
+ IDirectPlayImpl *This;
- *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
- sizeof( IDirectPlay2Impl ) );
+ TRACE( " for %s\n", debugstr_guid( riid ) );
- if( *ppvObj == NULL )
- {
+ This = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof( IDirectPlayImpl ) );
+ if( !This )
return DPERR_OUTOFMEMORY;
- }
if( IsEqualGUID( &IID_IDirectPlay2, riid ) )
- {
- IDirectPlay2Impl *This = *ppvObj;
This->lpVtbl = &directPlay2WVT;
- }
else if( IsEqualGUID( &IID_IUnknown, riid ) || IsEqualGUID( &IID_IDirectPlay2A, riid ) )
- {
- IDirectPlay2AImpl *This = *ppvObj;
This->lpVtbl = &directPlay2AVT;
- }
else if( IsEqualGUID( &IID_IDirectPlay3, riid ) )
- {
- IDirectPlay3Impl *This = *ppvObj;
This->lpVtbl = &directPlay3WVT;
- }
else if( IsEqualGUID( &IID_IDirectPlay3A, riid ) )
- {
- IDirectPlay3AImpl *This = *ppvObj;
This->lpVtbl = &directPlay3AVT;
- }
else if( IsEqualGUID( &IID_IDirectPlay4, riid ) )
- {
- IDirectPlay4Impl *This = *ppvObj;
This->lpVtbl = &directPlay4WVT;
- }
else if( IsEqualGUID( &IID_IDirectPlay4A, riid ) )
- {
- IDirectPlay4AImpl *This = *ppvObj;
This->lpVtbl = &directPlay4AVT;
- }
else
{
/* Unsupported interface */
@@ -446,6 +426,7 @@ HRESULT DP_CreateInterface
}
/* Initialize it */
+ *ppvObj = This;
if ( DP_CreateIUnknown( *ppvObj ) && DP_CreateDirectPlay2( *ppvObj ) )
{
IDirectPlayX_AddRef( (LPDIRECTPLAY2A)*ppvObj );
diff --git a/dlls/dplayx/dplay_global.h b/dlls/dplayx/dplay_global.h
index 7578e04..94b8f9a 100644
--- a/dlls/dplayx/dplay_global.h
+++ b/dlls/dplayx/dplay_global.h
@@ -31,16 +31,6 @@ extern HRESULT DPL_EnumAddress( LPDPENUMADDRESSCALLBACK lpEnumAddressCallback,
LPCVOID lpAddress, DWORD dwAddressSize,
LPVOID lpContext ) DECLSPEC_HIDDEN;
-/*****************************************************************************
- * Predeclare the interface implementation structures
- */
-typedef struct IDirectPlay2Impl IDirectPlay2AImpl;
-typedef struct IDirectPlay2Impl IDirectPlay2Impl;
-typedef struct IDirectPlay3Impl IDirectPlay3AImpl;
-typedef struct IDirectPlay3Impl IDirectPlay3Impl;
-typedef struct IDirectPlay4Impl IDirectPlay4AImpl;
-typedef struct IDirectPlay4Impl IDirectPlay4Impl;
-
typedef struct tagDirectPlayIUnknownData
{
LONG ulObjRef;
@@ -196,28 +186,20 @@ typedef struct tagDirectPlay2Data
DPQ_HEAD( tagDP_MSG_REPLY_STRUCT_LIST ) repliesExpected;
} DirectPlay2Data;
-#define DP_IMPL_FIELDS \
- LONG ulInterfaceRef; \
- DirectPlayIUnknownData* unk; \
- DirectPlay2Data* dp2;
-
-struct IDirectPlay2Impl
-{
- const IDirectPlay2Vtbl *lpVtbl;
- DP_IMPL_FIELDS
-};
-
-struct IDirectPlay3Impl
+typedef struct IDirectPlayImpl
{
- const IDirectPlay3Vtbl *lpVtbl;
- DP_IMPL_FIELDS
-};
-
-struct IDirectPlay4Impl
-{
- const IDirectPlay4Vtbl *lpVtbl;
- DP_IMPL_FIELDS
-};
+ const void *lpVtbl;
+ LONG ulInterfaceRef;
+ DirectPlayIUnknownData *unk;
+ DirectPlay2Data *dp2;
+} IDirectPlayImpl;
+
+typedef struct IDirectPlayImpl IDirectPlay2Impl;
+typedef struct IDirectPlayImpl IDirectPlay2AImpl;
+typedef struct IDirectPlayImpl IDirectPlay3Impl;
+typedef struct IDirectPlayImpl IDirectPlay3AImpl;
+typedef struct IDirectPlayImpl IDirectPlay4Impl;
+typedef struct IDirectPlayImpl IDirectPlay4AImpl;
HRESULT DP_HandleMessage( IDirectPlay2Impl* This, LPCVOID lpMessageBody,
DWORD dwMessageBodySize, LPCVOID lpMessageHeader,
More information about the wine-cvs
mailing list