From f5ee1304ef7586ca5f22721f33f8f329eab8035d Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Mon, 26 Mar 2012 10:09:49 +0200 Subject: [PATCH] amstream: Check purpose id in AddMediaStream. --- dlls/amstream/amstream.c | 3 +++ dlls/amstream/tests/amstream.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/amstream/amstream.c b/dlls/amstream/amstream.c index 54d57fe3256..6fdfb0d038a 100644 --- a/dlls/amstream/amstream.c +++ b/dlls/amstream/amstream.c @@ -326,6 +326,9 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_AddMediaStream(IAMMultiMediaStream FIXME("(%p/%p)->(%p,%s,%x,%p) partial stub!\n", This, iface, pStreamObject, debugstr_guid(PurposeId), dwFlags, ppNewStream); + if (!IsEqualGUID(PurposeId, &MSPID_PrimaryVideo) && !IsEqualGUID(PurposeId, &MSPID_PrimaryAudio)) + return MS_E_PURPOSEID; + hr = mediastream_create((IMultiMediaStream*)iface, PurposeId, This->StreamType, &pStream); if (SUCCEEDED(hr)) { diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c index 97fc7f1020e..69a9de86f94 100644 --- a/dlls/amstream/tests/amstream.c +++ b/dlls/amstream/tests/amstream.c @@ -224,7 +224,7 @@ static void test_media_streams(void) hr = IAMMultiMediaStream_GetMediaStream(pams, &IID_IUnknown, &dummy_stream); ok(hr == MS_E_NOSTREAM, "IAMMultiMediaStream_GetMediaStream returned: %x\n", hr); hr = IAMMultiMediaStream_AddMediaStream(pams, NULL, &IID_IUnknown, 0, NULL); - todo_wine ok(hr == MS_E_PURPOSEID, "IAMMultiMediaStream_AddMediaStream returned: %x\n", hr); + ok(hr == MS_E_PURPOSEID, "IAMMultiMediaStream_AddMediaStream returned: %x\n", hr); if (video_stream) {