[PATCH] dmime: Check return code of CoCreateInstance in Init method.

Christian Costa titan.costa at gmail.com
Thu Mar 29 01:54:15 CDT 2012


---
 dlls/dmime/performance.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 91df283..d847d8e 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -238,15 +238,18 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_Init (LPDIRECTMUSICPERFORMANC
 	  This->pDirectMusic = (IDirectMusic8*) *ppDirectMusic;
 	  IDirectMusic8_AddRef(This->pDirectMusic);
 	} else {
-	  /* app allows the performance to initialise itself and needs a pointer to object*/
-          CoCreateInstance (&CLSID_DirectMusic, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectMusic8, (void**)&This->pDirectMusic);
-	  if (ppDirectMusic) {
-	    *ppDirectMusic = (LPDIRECTMUSIC) This->pDirectMusic;
-	    IDirectMusic8_AddRef((LPDIRECTMUSIC8) *ppDirectMusic);
-	  }
-	}
-	
-	return S_OK;
+        HRESULT hr;
+        /* App enables the performance to initialize itself and needs a pointer to object */
+        hr = CoCreateInstance(&CLSID_DirectMusic, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectMusic8, (void**)&This->pDirectMusic);
+        if (FAILED(hr))
+            return hr;
+        if (ppDirectMusic) {
+            *ppDirectMusic = (LPDIRECTMUSIC)This->pDirectMusic;
+            IDirectMusic8_AddRef((LPDIRECTMUSIC8)*ppDirectMusic);
+        }
+    }
+
+    return S_OK;
 }
 
 static HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegment (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegment* pSegment, DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState** ppSegmentState) {




More information about the wine-patches mailing list