[PATCH 1/5] quartz/mpegsplit: Use BaseFilterImpl_QueryInterface().
Zebediah Figura
z.figura12 at gmail.com
Thu May 30 22:59:33 CDT 2019
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/quartz/mpegsplit.c | 44 +++++++++++++++--------------------------
1 file changed, 16 insertions(+), 28 deletions(-)
diff --git a/dlls/quartz/mpegsplit.c b/dlls/quartz/mpegsplit.c
index 0afdcbdf3b0..25e1b0d9d74 100644
--- a/dlls/quartz/mpegsplit.c
+++ b/dlls/quartz/mpegsplit.c
@@ -764,36 +764,9 @@ static HRESULT MPEGSplitter_first_request(LPVOID iface)
return hr;
}
-static HRESULT WINAPI MPEGSplitter_QueryInterface(IBaseFilter *iface, REFIID riid, void **ppv)
-{
- MPEGSplitterImpl *This = impl_from_IBaseFilter(iface);
- TRACE("(%s, %p)\n", qzdebugstr_guid(riid), ppv);
-
- *ppv = NULL;
-
- if ( IsEqualIID(riid, &IID_IUnknown)
- || IsEqualIID(riid, &IID_IPersist)
- || IsEqualIID(riid, &IID_IMediaFilter)
- || IsEqualIID(riid, &IID_IBaseFilter) )
- *ppv = iface;
- else if ( IsEqualIID(riid, &IID_IAMStreamSelect) )
- *ppv = &This->IAMStreamSelect_iface;
-
- if (*ppv)
- {
- IBaseFilter_AddRef(iface);
- return S_OK;
- }
-
- if (!IsEqualIID(riid, &IID_IPin) && !IsEqualIID(riid, &IID_IVideoWindow))
- FIXME("No interface for %s!\n", qzdebugstr_guid(riid));
-
- return E_NOINTERFACE;
-}
-
static const IBaseFilterVtbl MPEGSplitter_Vtbl =
{
- MPEGSplitter_QueryInterface,
+ BaseFilterImpl_QueryInterface,
BaseFilterImpl_AddRef,
BaseFilterImpl_Release,
BaseFilterImpl_GetClassID,
@@ -874,10 +847,25 @@ static void mpeg_splitter_destroy(BaseFilter *iface)
Parser_Destroy(&filter->Parser);
}
+static HRESULT mpeg_splitter_query_interface(BaseFilter *iface, REFIID iid, void **out)
+{
+ MPEGSplitterImpl *filter = impl_from_IBaseFilter(&iface->IBaseFilter_iface);
+
+ if (IsEqualGUID(iid, &IID_IAMStreamSelect))
+ {
+ *out = &filter->IAMStreamSelect_iface;
+ IUnknown_AddRef((IUnknown *)*out);
+ return S_OK;
+ }
+
+ return E_NOINTERFACE;
+}
+
static const BaseFilterFuncTable mpeg_splitter_func_table =
{
.filter_get_pin = parser_get_pin,
.filter_destroy = mpeg_splitter_destroy,
+ .filter_query_interface = mpeg_splitter_query_interface,
};
HRESULT MPEGSplitter_create(IUnknown * pUnkOuter, LPVOID * ppv)
--
2.21.0
More information about the wine-devel
mailing list