Maarten Lankhorst : quartz: Forward some messages from IMediaSeekingPassThru.

Alexandre Julliard julliard at winehq.org
Thu Jun 19 06:42:21 CDT 2008


Module: wine
Branch: master
Commit: fc3377d08bd3a43ba34f5c177f7b1e7464237980
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fc3377d08bd3a43ba34f5c177f7b1e7464237980

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Tue Jun 10 16:59:30 2008 +0200

quartz: Forward some messages from IMediaSeekingPassThru.

---

 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)




More information about the wine-cvs mailing list