From c5ab6aa6d3ffc38d1e823a37363eb3e1aea09b14 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Fri, 21 Mar 2008 16:12:54 -0700 Subject: [PATCH] quartz: Forward requests for MediaSeeking from all pins properly --- dlls/quartz/parser.c | 2 +- dlls/quartz/pin.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletions(-) diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c index 141adb7..8fdf939 100644 --- a/dlls/quartz/parser.c +++ b/dlls/quartz/parser.c @@ -629,7 +629,7 @@ static HRESULT WINAPI Parser_OutputPin_QueryInterface(IPin * iface, REFIID riid, *ppv = (LPVOID)iface; else if (IsEqualIID(riid, &IID_IMediaSeeking)) { - return IBaseFilter_QueryInterface((IBaseFilter*)&This->pin.pin.pinInfo.pFilter, &IID_IMediaSeeking, ppv); + return IBaseFilter_QueryInterface(This->pin.pin.pinInfo.pFilter, &IID_IMediaSeeking, ppv); } if (*ppv) diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c index 878f53a..e8d0f44 100644 --- a/dlls/quartz/pin.c +++ b/dlls/quartz/pin.c @@ -507,6 +507,10 @@ HRESULT WINAPI InputPin_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv) *ppv = (LPVOID)iface; else if (IsEqualIID(riid, &IID_IMemInputPin)) *ppv = (LPVOID)&This->lpVtblMemInput; + else if (IsEqualIID(riid, &IID_IMediaSeeking)) + { + return IBaseFilter_QueryInterface(This->pin.pinInfo.pFilter, &IID_IMediaSeeking, ppv); + } if (*ppv) { @@ -803,6 +807,10 @@ HRESULT WINAPI OutputPin_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv) *ppv = (LPVOID)iface; else if (IsEqualIID(riid, &IID_IPin)) *ppv = (LPVOID)iface; + else if (IsEqualIID(riid, &IID_IMediaSeeking)) + { + return IBaseFilter_QueryInterface(This->pin.pinInfo.pFilter, &IID_IMediaSeeking, ppv); + } if (*ppv) { @@ -1279,6 +1287,10 @@ HRESULT WINAPI PullPin_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv) *ppv = (LPVOID)iface; else if (IsEqualIID(riid, &IID_IPin)) *ppv = (LPVOID)iface; + else if (IsEqualIID(riid, &IID_IMediaSeeking)) + { + return IBaseFilter_QueryInterface(This->pin.pinInfo.pFilter, &IID_IMediaSeeking, ppv); + } if (*ppv) { -- 1.5.4.1