quartz: Check input in MediaControl_GetState.

This commit is contained in:
Lei Zhang 2008-05-12 21:17:38 -07:00 committed by Alexandre Julliard
parent 7ae4f695bc
commit a4d0d4fe36
2 changed files with 17 additions and 0 deletions

View File

@ -1701,6 +1701,9 @@ static HRESULT WINAPI MediaControl_GetState(IMediaControl *iface,
TRACE("(%p/%p)->(%d, %p): semi-stub !!!\n", This, iface, msTimeout, pfs);
if (!pfs)
return E_POINTER;
EnterCriticalSection(&This->cs);
*pfs = This->state;

View File

@ -232,6 +232,7 @@ static void test_mediacontrol(void)
LONGLONG pos = 0xdeadbeef;
IMediaSeeking *seeking = NULL;
IMediaFilter *filter = NULL;
IMediaControl *control = NULL;
IFilterGraph2_SetDefaultSyncSource(pgraph);
hr = IFilterGraph2_QueryInterface(pgraph, &IID_IMediaSeeking, (void**) &seeking);
@ -247,6 +248,15 @@ static void test_mediacontrol(void)
return;
}
hr = IFilterGraph2_QueryInterface(pgraph, &IID_IMediaControl, (void**) &control);
ok(hr == S_OK, "QueryInterface IMediaControl failed: %08x\n", hr);
if (FAILED(hr))
{
IUnknown_Release(seeking);
IUnknown_Release(filter);
return;
}
hr = IMediaSeeking_GetCurrentPosition(seeking, &pos);
ok(hr == S_OK, "GetCurrentPosition failed: %08x\n", hr);
ok(pos == 0, "Position != 0 (%x%08x)\n", (DWORD)(pos >> 32), (DWORD)pos);
@ -257,6 +267,10 @@ static void test_mediacontrol(void)
ok(hr == S_OK, "GetCurrentPosition failed: %08x\n", hr);
ok(pos == 0, "Position != 0 (%x%08x)\n", (DWORD)(pos >> 32), (DWORD)pos);
hr = IMediaControl_GetState(control, 1000, NULL);
ok(hr == E_POINTER, "GetState expected %08x, got %08x\n", E_POINTER, hr);
IUnknown_Release(control);
IUnknown_Release(seeking);
IUnknown_Release(filter);
releasefiltergraph();