quartz: Forward requests for MediaSeeking from all pins properly.
diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c
index 868c625..17861a0 100644
--- a/dlls/quartz/parser.c
+++ b/dlls/quartz/parser.c
@@ -628,7 +628,7 @@
         *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 @@
         *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 @@
         *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 @@
         *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)
     {