From 49762b1679c498ccd46ad79e941ab44623295fc2 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Tue, 1 May 2012 10:21:20 +0200 Subject: [PATCH] amstream: Add checks to GetFormat. --- dlls/amstream/mediastream.c | 15 +++++++++------ dlls/amstream/tests/amstream.c | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c index 2aeaaa4e287..6656bf725cc 100644 --- a/dlls/amstream/mediastream.c +++ b/dlls/amstream/mediastream.c @@ -159,13 +159,13 @@ static HRESULT WINAPI IDirectDrawMediaStreamImpl_SendEndOfStream(IDirectDrawMedi /*** IDirectDrawMediaStream methods ***/ static HRESULT WINAPI IDirectDrawMediaStreamImpl_GetFormat(IDirectDrawMediaStream *iface, - DDSURFACEDESC *pDDSDCurrent, IDirectDrawPalette **ppDirectDrawPalette, - DDSURFACEDESC *pDDSDDesired, DWORD *pdwFlags) + DDSURFACEDESC *current_format, IDirectDrawPalette **palette, + DDSURFACEDESC *desired_format, DWORD *flags) { - FIXME("(%p)->(%p,%p,%p,%p) stub!\n", iface, pDDSDCurrent, ppDirectDrawPalette, pDDSDDesired, - pdwFlags); + FIXME("(%p)->(%p,%p,%p,%p) stub!\n", iface, current_format, palette, desired_format, + flags); - return E_NOTIMPL; + return MS_E_NOSTREAM; } @@ -390,7 +390,10 @@ static HRESULT WINAPI IAudioMediaStreamImpl_GetFormat(IAudioMediaStream *iface, FIXME("(%p/%p)->(%p) stub!\n", iface, This, wave_format_current); - return E_NOTIMPL; + if (!wave_format_current) + return E_POINTER; + + return MS_E_NOSTREAM; } diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c index f613c8c8ee7..c62e83d7ecf 100644 --- a/dlls/amstream/tests/amstream.c +++ b/dlls/amstream/tests/amstream.c @@ -248,6 +248,13 @@ static void test_media_streams(void) if (SUCCEEDED(hr)) { + DDSURFACEDESC current_format, desired_format; + IDirectDrawPalette *palette; + DWORD flags; + + hr = IDirectDrawMediaStream_GetFormat(ddraw_stream, ¤t_format, &palette, &desired_format, &flags); + ok(hr == MS_E_NOSTREAM, "IDirectDrawoMediaStream_GetFormat returned: %x\n", hr); + hr = IDirectDrawMediaStream_CreateSample(ddraw_stream, NULL, NULL, 0, &ddraw_sample); ok(hr == S_OK, "IDirectDrawMediaStream_CreateSample returned: %x\n", hr); } @@ -333,9 +340,16 @@ static void test_media_streams(void) if (SUCCEEDED(hr)) { IAudioData* audio_data = NULL; + WAVEFORMATEX format; + hr = CoCreateInstance(&CLSID_AMAudioData, NULL, CLSCTX_INPROC_SERVER, &IID_IAudioData, (void **)&audio_data); ok(hr == S_OK, "CoCreateInstance returned: %x\n", hr); + hr = IAudioMediaStream_GetFormat(audio_media_stream, NULL); + ok(hr == E_POINTER, "IAudioMediaStream_GetFormat returned: %x\n", hr); + hr = IAudioMediaStream_GetFormat(audio_media_stream, &format); + ok(hr == MS_E_NOSTREAM, "IAudioMediaStream_GetFormat returned: %x\n", hr); + hr = IAudioMediaStream_CreateSample(audio_media_stream, NULL, 0, &audio_sample); ok(hr == E_POINTER, "IAudioMediaStream_CreateSample returned: %x\n", hr); hr = IAudioMediaStream_CreateSample(audio_media_stream, audio_data, 0, &audio_sample);