From afbf28940cffa94d18fda89f3212715a8a1d2874 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Thu, 29 Mar 2012 08:54:15 +0200 Subject: [PATCH] dmime: Check return code of CoCreateInstance in Init method. --- dlls/dmime/performance.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index 91df2838d51..d847d8eba67 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) {