Michael Stefaniuc : dmsynth: The DMSynth{, Sink} COM objects don' t support aggregation.

Alexandre Julliard julliard at winehq.org
Tue Jul 19 10:34:22 CDT 2016


Module: wine
Branch: master
Commit: 91ba1a2561a0e7ef275538407e9ab862667a8517
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=91ba1a2561a0e7ef275538407e9ab862667a8517

Author: Michael Stefaniuc <mstefani at 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 at redhat.de>
Signed-off-by: Alexandre Julliard <julliard at 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;
 




More information about the wine-cvs mailing list