Austin Lund : dmime: Ensure IDirectMusicPort is initialised when calling IDirectMusicPerformance ::PChannelInfo.

Alexandre Julliard julliard at winehq.org
Mon Aug 16 12:25:06 CDT 2010


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

Author: Austin Lund <austin.lund at gmail.com>
Date:   Sat Aug  7 15:01:14 2010 +1000

dmime: Ensure IDirectMusicPort is initialised when calling IDirectMusicPerformance::PChannelInfo.

---

 dlls/dmime/performance.c       |    9 +++++++++
 dlls/dmime/tests/performance.c |    2 +-
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 850d834..91df283 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -588,7 +588,16 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannel (LPDIRECTMUSIC
 
 static HRESULT WINAPI IDirectMusicPerformance8Impl_PChannelInfo (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwPChannel, IDirectMusicPort** ppPort, DWORD* pdwGroup, DWORD* pdwMChannel) {
 	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
+	DMUS_PORTPARAMS8 dmusportparams;
+	GUID def;
+
 	FIXME("(%p, %d, %p, %p, %p): stub\n", This, dwPChannel, ppPort, pdwGroup, pdwMChannel);
+
+	dmusportparams.dwSize = sizeof(DMUS_PORTPARAMS8);
+	dmusportparams.dwValidParams = 0;
+	IDirectMusic8_GetDefaultPort(This->pDirectMusic, &def);
+	IDirectMusic8_CreatePort(This->pDirectMusic, &def, &dmusportparams, ppPort, NULL);
+
 	return S_OK;
 }
 
diff --git a/dlls/dmime/tests/performance.c b/dlls/dmime/tests/performance.c
index a681b6a..f184314 100644
--- a/dlls/dmime/tests/performance.c
+++ b/dlls/dmime/tests/performance.c
@@ -45,7 +45,7 @@ static void test_PChannelInfo(void)
     pDirectMusicPort = NULL;
     hr = IDirectMusicPerformance8_PChannelInfo(idmusicperformance, 0, &pDirectMusicPort, NULL, NULL);
     ok(hr == S_OK, "Failed to call PChannelInfo (%x)\n", hr);
-    todo_wine ok(pDirectMusicPort != NULL, "IDirectMusicPort not set\n");
+    ok(pDirectMusicPort != NULL, "IDirectMusicPort not set\n");
     if (hr == S_OK && pDirectMusicPort != NULL)
         IDirectMusicPort_Release(pDirectMusicPort);
 }




More information about the wine-cvs mailing list