Module: wine Branch: master Commit: 91ba1a2561a0e7ef275538407e9ab862667a8517 URL: http://source.winehq.org/git/wine.git/?a=commit;h=91ba1a2561a0e7ef275538407e...
Author: Michael Stefaniuc mstefani@redhat.de Date: Tue Jul 19 09:50:58 2016 +0200
dmsynth: The DMSynth{,Sink} COM objects don't support aggregation.
Signed-off-by: Michael Stefaniuc mstefani@redhat.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dmsynth/dmsynth_main.c | 7 +++++-- dlls/dmsynth/dmsynth_private.h | 4 ++-- dlls/dmsynth/synth.c | 4 ++-- dlls/dmsynth/synthsink.c | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/dlls/dmsynth/dmsynth_main.c b/dlls/dmsynth/dmsynth_main.c index a95a613..1fb5157 100644 --- a/dlls/dmsynth/dmsynth_main.c +++ b/dlls/dmsynth/dmsynth_main.c @@ -32,7 +32,7 @@ LONG DMSYNTH_refCount = 0;
typedef struct { IClassFactory IClassFactory_iface; - HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ppv, IUnknown *pUnkOuter); + HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ppv); } IClassFactoryImpl;
/****************************************************************** @@ -84,7 +84,10 @@ 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) + return CLASS_E_NOAGGREGATION; + + return This->fnCreateInstance(riid, ppv); }
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock) diff --git a/dlls/dmsynth/dmsynth_private.h b/dlls/dmsynth/dmsynth_private.h index f056581..ed86ce0 100644 --- a/dlls/dmsynth/dmsynth_private.h +++ b/dlls/dmsynth/dmsynth_private.h @@ -50,8 +50,8 @@ typedef struct IDirectMusicSynthSinkImpl IDirectMusicSynthSinkImpl; /***************************************************************************** * ClassFactory */ -extern HRESULT WINAPI DMUSIC_CreateDirectMusicSynthImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN; -extern HRESULT WINAPI DMUSIC_CreateDirectMusicSynthSinkImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN; +extern HRESULT WINAPI DMUSIC_CreateDirectMusicSynthImpl(REFIID riid, void **ppobj) DECLSPEC_HIDDEN; +extern HRESULT WINAPI DMUSIC_CreateDirectMusicSynthSinkImpl(REFIID riid, void **ppobj) DECLSPEC_HIDDEN;
/***************************************************************************** * IDirectMusicSynth8Impl implementation structure diff --git a/dlls/dmsynth/synth.c b/dlls/dmsynth/synth.c index c5720ec..fceeebd 100644 --- a/dlls/dmsynth/synth.c +++ b/dlls/dmsynth/synth.c @@ -575,14 +575,14 @@ static const IKsControlVtbl DMSynthImpl_IKsControl_Vtbl = { };
/* for ClassFactory */ -HRESULT WINAPI DMUSIC_CreateDirectMusicSynthImpl(REFIID riid, void **ppobj, IUnknown *outer) +HRESULT WINAPI DMUSIC_CreateDirectMusicSynthImpl(REFIID riid, void **ppobj) { static const WCHAR descrW[] = {'M','i','c','r','o','s','o','f','t',' ', 'S','y','n','t','h','e','s','i','z','e','r',0}; IDirectMusicSynth8Impl *obj; HRESULT hr;
- TRACE("(%s, %p, %p)\n", debugstr_guid(riid), ppobj, outer); + TRACE("(%s, %p)\n", debugstr_guid(riid), ppobj);
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*obj)); if (NULL == obj) { diff --git a/dlls/dmsynth/synthsink.c b/dlls/dmsynth/synthsink.c index 18ef50f..4720e59 100644 --- a/dlls/dmsynth/synthsink.c +++ b/dlls/dmsynth/synthsink.c @@ -267,12 +267,12 @@ static const IKsControlVtbl DMSynthSinkImpl_IKsControl_Vtbl = { };
/* for ClassFactory */ -HRESULT WINAPI DMUSIC_CreateDirectMusicSynthSinkImpl(LPCGUID riid, LPVOID* ret_iface, LPUNKNOWN unkouter) +HRESULT WINAPI DMUSIC_CreateDirectMusicSynthSinkImpl(REFIID riid, void **ret_iface) { IDirectMusicSynthSinkImpl *obj; HRESULT hr;
- TRACE("(%p,%p,%p)\n", riid, ret_iface, unkouter); + TRACE("(%s, %p)\n", debugstr_guid(riid), ret_iface);
*ret_iface = NULL;