diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c index 7d6463c1f37..b691fd79fcd 100644 --- a/dlls/quartz/filtergraph.c +++ b/dlls/quartz/filtergraph.c @@ -2441,16 +2441,18 @@ static HRESULT WINAPI MediaSeeking_SetPositions(IMediaSeeking *iface, LONGLONG * return hr; } -static HRESULT WINAPI MediaSeeking_GetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, - LONGLONG *pStop) +static HRESULT WINAPI MediaSeeking_GetPositions(IMediaSeeking *iface, + LONGLONG *current, LONGLONG *stop) { - struct filter_graph *This = impl_from_IMediaSeeking(iface); - HRESULT hr; + struct filter_graph *graph = impl_from_IMediaSeeking(iface); + HRESULT hr = S_OK; - TRACE("(%p/%p)->(%p, %p)\n", This, iface, pCurrent, pStop); - hr = IMediaSeeking_GetCurrentPosition(iface, pCurrent); - if (SUCCEEDED(hr)) - hr = IMediaSeeking_GetStopPosition(iface, pStop); + TRACE("graph %p, current %p, stop %p.\n", graph, current, stop); + + if (current) + hr = IMediaSeeking_GetCurrentPosition(iface, current); + if (SUCCEEDED(hr) && stop) + hr = IMediaSeeking_GetStopPosition(iface, stop); return hr; } diff --git a/dlls/quartz/tests/filtergraph.c b/dlls/quartz/tests/filtergraph.c index 9219b30cec7..4fcd27b2918 100644 --- a/dlls/quartz/tests/filtergraph.c +++ b/dlls/quartz/tests/filtergraph.c @@ -4098,14 +4098,14 @@ static void test_graph_seeking(void) ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr); hr = IMediaSeeking_GetPositions(seeking, NULL, NULL); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr); hr = IMediaSeeking_GetPositions(seeking, NULL, &stop); - todo_wine ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr); + ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr); hr = IMediaSeeking_GetPositions(seeking, ¤t, &stop); ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr); current = 0xdeadbeef; hr = IMediaSeeking_GetPositions(seeking, ¤t, NULL); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr); ok(!current, "Got time %s.\n", wine_dbgstr_longlong(time)); hr = IMediaSeeking_GetCurrentPosition(seeking, NULL);