Module: wine Branch: master Commit: dc53f0181019888f75d84f501ce9601459cc1ac8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=dc53f0181019888f75d84f501c...
Author: Aric Stewart aric@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);