Zebediah Figura : qcap/avimux: Use BaseFilterImpl_QueryInterface().
Alexandre Julliard
julliard at winehq.org
Fri May 31 15:53:30 CDT 2019
Module: wine
Branch: master
Commit: 1df475674f6a1d61c17a5bbdd74a8e634d419bae
URL: https://source.winehq.org/git/wine.git/?a=commit;h=1df475674f6a1d61c17a5bbdd74a8e634d419bae
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Thu May 30 22:59:34 2019 -0500
qcap/avimux: Use BaseFilterImpl_QueryInterface().
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/qcap/avimux.c | 53 +++++++++++++++++++++++------------------------------
1 file changed, 23 insertions(+), 30 deletions(-)
diff --git a/dlls/qcap/avimux.c b/dlls/qcap/avimux.c
index bf10fe3..6a3a40b 100644
--- a/dlls/qcap/avimux.c
+++ b/dlls/qcap/avimux.c
@@ -155,9 +155,31 @@ static void avi_mux_destroy(BaseFilter *iface)
ObjectRefCount(FALSE);
}
+static HRESULT avi_mux_query_interface(BaseFilter *iface, REFIID iid, void **out)
+{
+ AviMux *filter = impl_from_BaseFilter(iface);
+
+ if (IsEqualGUID(iid, &IID_IConfigAviMux))
+ *out = &filter->IConfigAviMux_iface;
+ else if (IsEqualGUID(iid, &IID_IConfigInterleaving))
+ *out = &filter->IConfigInterleaving_iface;
+ else if (IsEqualGUID(iid, &IID_IMediaSeeking))
+ *out = &filter->IMediaSeeking_iface;
+ else if (IsEqualGUID(iid, &IID_IPersistMediaPropertyBag))
+ *out = &filter->IPersistMediaPropertyBag_iface;
+ else if (IsEqualGUID(iid, &IID_ISpecifyPropertyPages))
+ *out = &filter->ISpecifyPropertyPages_iface;
+ else
+ return E_NOINTERFACE;
+
+ IUnknown_AddRef((IUnknown *)*out);
+ return S_OK;
+}
+
static const BaseFilterFuncTable filter_func_table = {
.filter_get_pin = avi_mux_get_pin,
.filter_destroy = avi_mux_destroy,
+ .filter_query_interface = avi_mux_query_interface,
};
static inline AviMux* impl_from_IBaseFilter(IBaseFilter *iface)
@@ -166,35 +188,6 @@ static inline AviMux* impl_from_IBaseFilter(IBaseFilter *iface)
return impl_from_BaseFilter(filter);
}
-static HRESULT WINAPI AviMux_QueryInterface(IBaseFilter *iface, REFIID riid, void **ppv)
-{
- AviMux *This = impl_from_IBaseFilter(iface);
-
- TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
-
- 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_IConfigAviMux))
- *ppv = &This->IConfigAviMux_iface;
- else if(IsEqualIID(riid, &IID_IConfigInterleaving))
- *ppv = &This->IConfigInterleaving_iface;
- else if(IsEqualIID(riid, &IID_IMediaSeeking))
- *ppv = &This->IMediaSeeking_iface;
- else if(IsEqualIID(riid, &IID_IPersistMediaPropertyBag))
- *ppv = &This->IPersistMediaPropertyBag_iface;
- else if(IsEqualIID(riid, &IID_ISpecifyPropertyPages))
- *ppv = &This->ISpecifyPropertyPages_iface;
- else {
- FIXME("no interface for %s\n", debugstr_guid(riid));
- *ppv = NULL;
- return E_NOINTERFACE;
- }
-
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
-}
-
static HRESULT out_flush(AviMux *This)
{
ULONG written;
@@ -710,7 +703,7 @@ static HRESULT WINAPI AviMux_Run(IBaseFilter *iface, REFERENCE_TIME tStart)
}
static const IBaseFilterVtbl AviMuxVtbl = {
- AviMux_QueryInterface,
+ BaseFilterImpl_QueryInterface,
BaseFilterImpl_AddRef,
BaseFilterImpl_Release,
BaseFilterImpl_GetClassID,
More information about the wine-cvs
mailing list