From 2838051df5f43ac7f286b93b6435ee13b9c9cf59 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Tue, 10 Jun 2008 16:59:30 +0200 Subject: [PATCH] quartz: Forward some messages from MediaSeekingPassThru --- dlls/quartz/control.c | 24 ++++++++++++++++++++---- 1 files changed, 20 insertions(+), 4 deletions(-) diff --git a/dlls/quartz/control.c b/dlls/quartz/control.c index 63bc371..477f632 100644 --- a/dlls/quartz/control.c +++ b/dlls/quartz/control.c @@ -782,11 +782,17 @@ static HRESULT WINAPI MediaSeekingPassThru_SetTimeFormat(IMediaSeeking * iface, static HRESULT WINAPI MediaSeekingPassThru_GetDuration(IMediaSeeking * iface, LONGLONG * pDuration) { ICOM_THIS_MULTI(PassThruImpl, IMediaSeeking_vtbl, iface); + PIN_INFO info; + HRESULT hr; TRACE("(%p/%p)->(%p)\n", iface, This, pDuration); - FIXME("stub\n"); - return E_NOTIMPL; + IPin_QueryPinInfo(This->pin, &info); + + hr = ForwardCmdSeek(NULL, info.pFilter, fwd_getduration, pDuration); + IBaseFilter_Release(info.pFilter); + + return hr; } static HRESULT WINAPI MediaSeekingPassThru_GetStopPosition(IMediaSeeking * iface, LONGLONG * pStop) @@ -823,11 +829,21 @@ static HRESULT WINAPI MediaSeekingPassThru_ConvertTimeFormat(IMediaSeeking * ifa static HRESULT WINAPI MediaSeekingPassThru_SetPositions(IMediaSeeking * iface, LONGLONG * pCurrent, DWORD dwCurrentFlags, LONGLONG * pStop, DWORD dwStopFlags) { ICOM_THIS_MULTI(PassThruImpl, IMediaSeeking_vtbl, iface); + struct pos_args args; + PIN_INFO info; + HRESULT hr; TRACE("(%p/%p)->(%p, %p)\n", iface, This, pCurrent, pStop); + args.current = pCurrent; + args.stop = pStop; + args.curflags = dwCurrentFlags; + args.stopflags = dwStopFlags; - FIXME("stub\n"); - return E_NOTIMPL; + IPin_QueryPinInfo(This->pin, &info); + + hr = ForwardCmdSeek(NULL, info.pFilter, fwd_setposition, &args); + IBaseFilter_Release(info.pFilter); + return hr; } static HRESULT WINAPI MediaSeekingPassThru_GetPositions(IMediaSeeking * iface, LONGLONG * pCurrent, LONGLONG * pStop) -- 1.5.4.1