[PATCH] wineqtdecoder: Improve some interface pointer casts
Nikolay Sivov
nsivov at codeweavers.com
Sun Dec 11 06:29:51 CST 2016
---
dlls/wineqtdecoder/qtsplitter.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c
index 7db7a28f97..585a9701a4 100644
--- a/dlls/wineqtdecoder/qtsplitter.c
+++ b/dlls/wineqtdecoder/qtsplitter.c
@@ -245,9 +245,9 @@ static const BaseFilterFuncTable BaseFuncTable = {
IUnknown * CALLBACK QTSplitter_create(IUnknown *punkout, HRESULT *phr)
{
- IUnknown *obj = NULL;
PIN_INFO *piInput;
QTSplitter *This;
+ IUnknown *obj;
static const WCHAR wcsInputPinName[] = {'I','n','p','u','t',' ','P','i','n',0};
EnterMoviesOnThread(0);
@@ -255,7 +255,6 @@ IUnknown * CALLBACK QTSplitter_create(IUnknown *punkout, HRESULT *phr)
RegisterWineDataHandler();
This = CoTaskMemAlloc(sizeof(*This));
- obj = (IUnknown*)This;
if (!This)
{
*phr = E_OUTOFMEMORY;
@@ -285,6 +284,8 @@ IUnknown * CALLBACK QTSplitter_create(IUnknown *punkout, HRESULT *phr)
SourceSeeking_Init(&This->sourceSeeking, &QT_Seeking_Vtbl, QTSplitter_ChangeStop, QTSplitter_ChangeStart, QTSplitter_ChangeRate, &This->filter.csFilter);
+ obj = (IUnknown*)&This->filter.IBaseFilter_iface;
+
*phr = S_OK;
return obj;
}
@@ -355,14 +356,13 @@ static HRESULT WINAPI QT_QueryInterface(IBaseFilter *iface, REFIID riid, LPVOID
*ppv = NULL;
- if (IsEqualIID(riid, &IID_IUnknown))
- *ppv = This;
- else if (IsEqualIID(riid, &IID_IPersist))
- *ppv = This;
- else if (IsEqualIID(riid, &IID_IMediaFilter))
- *ppv = This;
- else if (IsEqualIID(riid, &IID_IBaseFilter))
- *ppv = This;
+ if (IsEqualIID(riid, &IID_IUnknown) ||
+ IsEqualIID(riid, &IID_IPersist) ||
+ IsEqualIID(riid, &IID_IMediaFilter) ||
+ IsEqualIID(riid, &IID_IBaseFilter))
+ {
+ *ppv = &This->filter.IBaseFilter_iface;
+ }
else if (IsEqualIID(riid, &IID_IMediaSeeking))
*ppv = &This->sourceSeeking;
@@ -1546,7 +1546,7 @@ static HRESULT QT_AddPin(QTSplitter *This, const PIN_INFO *piOutput, const AM_ME
return E_FAIL;
}
- hr = BaseOutputPin_Construct(&QT_OutputPin_Vtbl, sizeof(QTOutPin), piOutput, &output_BaseOutputFuncTable, &This->filter.csFilter, (IPin**)target);
+ hr = BaseOutputPin_Construct(&QT_OutputPin_Vtbl, sizeof(QTOutPin), piOutput, &output_BaseOutputFuncTable, &This->filter.csFilter, target);
if (SUCCEEDED(hr))
{
QTOutPin *pin = (QTOutPin*)*target;
--
2.11.0
More information about the wine-patches
mailing list