Module: wine Branch: master Commit: 05d1872575765be02a3304f10cad103c9ce5e84c URL: http://source.winehq.org/git/wine.git/?a=commit;h=05d1872575765be02a3304f10c...
Author: Michael Stefaniuc mstefani@redhat.de Date: Thu Jan 30 00:46:19 2014 +0100
dmband: None of the COM classes support aggregation.
---
dlls/dmband/band.c | 3 ++- dlls/dmband/bandtrack.c | 3 ++- dlls/dmband/dmband_main.c | 13 +++++++++---- dlls/dmband/dmband_private.h | 5 ++--- 4 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/dlls/dmband/band.c b/dlls/dmband/band.c index e67bc8e..e72a042 100644 --- a/dlls/dmband/band.c +++ b/dlls/dmband/band.c @@ -687,7 +687,8 @@ static const IPersistStreamVtbl DirectMusicBand_PersistStream_Vtbl = { };
/* for ClassFactory */ -HRESULT WINAPI DMUSIC_CreateDirectMusicBandImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) { +HRESULT WINAPI create_dmband(REFIID lpcGUID, void **ppobj) +{ IDirectMusicBandImpl* obj; obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicBandImpl)); diff --git a/dlls/dmband/bandtrack.c b/dlls/dmband/bandtrack.c index 878ccc0..8be6b29 100644 --- a/dlls/dmband/bandtrack.c +++ b/dlls/dmband/bandtrack.c @@ -606,7 +606,8 @@ static const IPersistStreamVtbl DirectMusicBandTrack_PerststStream_Vtbl = { };
/* for ClassFactory */ -HRESULT WINAPI DMUSIC_CreateDirectMusicBandTrack (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) { +HRESULT WINAPI create_dmbandtrack(REFIID lpcGUID, void **ppobj) +{ IDirectMusicBandTrack* track; track = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicBandTrack)); diff --git a/dlls/dmband/dmband_main.c b/dlls/dmband/dmband_main.c index 414f5e4..f72b415 100644 --- a/dlls/dmband/dmband_main.c +++ b/dlls/dmband/dmband_main.c @@ -27,7 +27,7 @@ LONG DMBAND_refCount = 0;
typedef struct { IClassFactory IClassFactory_iface; - HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ppv, IUnknown *pUnkOuter); + HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ret_iface); } IClassFactoryImpl;
/****************************************************************** @@ -79,7 +79,12 @@ static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown
TRACE ("(%p, %s, %p)\n", pUnkOuter, debugstr_dmguid(riid), ppv);
- return This->fnCreateInstance(riid, ppv, pUnkOuter); + if (pUnkOuter) { + *ppv = NULL; + return CLASS_E_NOAGGREGATION; + } + + return This->fnCreateInstance(riid, ppv); }
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock) @@ -102,8 +107,8 @@ static const IClassFactoryVtbl classfactory_vtbl = { ClassFactory_LockServer };
-static IClassFactoryImpl Band_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicBandImpl}; -static IClassFactoryImpl BandTrack_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicBandTrack}; +static IClassFactoryImpl Band_CF = {{&classfactory_vtbl}, create_dmband}; +static IClassFactoryImpl BandTrack_CF = {{&classfactory_vtbl}, create_dmbandtrack};
/****************************************************************** * DllMain diff --git a/dlls/dmband/dmband_private.h b/dlls/dmband/dmband_private.h index aa775df..0f5f939 100644 --- a/dlls/dmband/dmband_private.h +++ b/dlls/dmband/dmband_private.h @@ -52,9 +52,8 @@ typedef struct IDirectMusicBandTrack IDirectMusicBandTrack; /***************************************************************************** * ClassFactory */ -extern HRESULT WINAPI DMUSIC_CreateDirectMusicBandImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN; - -extern HRESULT WINAPI DMUSIC_CreateDirectMusicBandTrack (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN; +extern HRESULT WINAPI create_dmband(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN; +extern HRESULT WINAPI create_dmbandtrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
/*****************************************************************************