Aric Stewart : quartz: COM cleanup for WAVEParserImpl.

Alexandre Julliard julliard at winehq.org
Tue May 22 14:21:28 CDT 2012


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

Author: Aric Stewart <aric at codeweavers.com>
Date:   Mon May 21 08:21:13 2012 -0500

quartz: COM cleanup for WAVEParserImpl.

---

 dlls/quartz/waveparser.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/quartz/waveparser.c b/dlls/quartz/waveparser.c
index a7bce6f..9c84320 100644
--- a/dlls/quartz/waveparser.c
+++ b/dlls/quartz/waveparser.c
@@ -53,6 +53,11 @@ static inline WAVEParserImpl *impl_from_IMediaSeeking( IMediaSeeking *iface )
     return CONTAINING_RECORD(iface, WAVEParserImpl, Parser.sourceSeeking.IMediaSeeking_iface);
 }
 
+static inline WAVEParserImpl *impl_from_IBaseFilter( IBaseFilter *iface )
+{
+    return CONTAINING_RECORD(iface, WAVEParserImpl, Parser.filter.IBaseFilter_iface);
+}
+
 static LONGLONG bytepos_to_duration(WAVEParserImpl *This, LONGLONG bytepos)
 {
     LONGLONG duration = BYTES_FROM_MEDIATIME(bytepos - This->StartOfFile);
@@ -246,11 +251,11 @@ static HRESULT WAVEParser_InputPin_PreConnect(IPin * iface, IPin * pConnectPin,
     LONGLONG pos = 0; /* in bytes */
     PIN_INFO piOutput;
     AM_MEDIA_TYPE amt;
-    WAVEParserImpl * pWAVEParser = (WAVEParserImpl *)This->pin.pinInfo.pFilter;
+    WAVEParserImpl * pWAVEParser = impl_from_IBaseFilter(This->pin.pinInfo.pFilter);
     LONGLONG length, avail;
 
     piOutput.dir = PINDIR_OUTPUT;
-    piOutput.pFilter = (IBaseFilter *)This;
+    piOutput.pFilter = &pWAVEParser->Parser.filter.IBaseFilter_iface;
     lstrcpynW(piOutput.achName, wcsOutputPinName, sizeof(piOutput.achName) / sizeof(piOutput.achName[0]));
     
     hr = IAsyncReader_SyncRead(This->pReader, pos, sizeof(list), (BYTE *)&list);




More information about the wine-cvs mailing list