Rémi Bernon : qasf: Implement IWMReaderCallbackAdvanced stub interface.
Alexandre Julliard
julliard at winehq.org
Tue Aug 16 16:02:12 CDT 2022
Module: wine
Branch: master
Commit: 35d40291b104b2df2ad3e70e5374fa2481c266fe
URL: https://gitlab.winehq.org/wine/wine/-/commit/35d40291b104b2df2ad3e70e5374fa2481c266fe
Author: Rémi Bernon <rbernon at codeweavers.com>
Date: Fri May 20 22:19:00 2022 +0200
qasf: Implement IWMReaderCallbackAdvanced stub interface.
---
dlls/qasf/asfreader.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/dlls/qasf/asfreader.c b/dlls/qasf/asfreader.c
index 6bfe61fd5d3..ea9647accf2 100644
--- a/dlls/qasf/asfreader.c
+++ b/dlls/qasf/asfreader.c
@@ -471,6 +471,7 @@ static const IFileSourceFilterVtbl file_source_vtbl =
struct asf_callback
{
IWMReaderCallback IWMReaderCallback_iface;
+ IWMReaderCallbackAdvanced IWMReaderCallbackAdvanced_iface;
LONG ref;
struct asf_reader *filter;
@@ -491,6 +492,8 @@ static HRESULT WINAPI reader_callback_QueryInterface(IWMReaderCallback *iface, c
|| IsEqualGUID(iid, &IID_IWMStatusCallback)
|| IsEqualGUID(iid, &IID_IWMReaderCallback))
*out = &callback->IWMReaderCallback_iface;
+ else if (IsEqualGUID(iid, &IID_IWMReaderCallbackAdvanced))
+ *out = &callback->IWMReaderCallbackAdvanced_iface;
else
{
*out = NULL;
@@ -628,6 +631,85 @@ static const IWMReaderCallbackVtbl reader_callback_vtbl =
reader_callback_OnSample,
};
+static inline struct asf_callback *impl_from_IWMReaderCallbackAdvanced(IWMReaderCallbackAdvanced *iface)
+{
+ return CONTAINING_RECORD(iface, struct asf_callback, IWMReaderCallbackAdvanced_iface);
+}
+
+static HRESULT WINAPI reader_callback_advanced_QueryInterface(IWMReaderCallbackAdvanced *iface, REFIID riid, LPVOID * ppv)
+{
+ struct asf_callback *impl = impl_from_IWMReaderCallbackAdvanced(iface);
+ return IUnknown_QueryInterface(&impl->IWMReaderCallback_iface, riid, ppv);
+}
+
+static ULONG WINAPI reader_callback_advanced_AddRef(IWMReaderCallbackAdvanced *iface)
+{
+ struct asf_callback *impl = impl_from_IWMReaderCallbackAdvanced(iface);
+ return IUnknown_AddRef(&impl->IWMReaderCallback_iface);
+}
+
+static ULONG WINAPI reader_callback_advanced_Release(IWMReaderCallbackAdvanced *iface)
+{
+ struct asf_callback *impl = impl_from_IWMReaderCallbackAdvanced(iface);
+ return IUnknown_Release(&impl->IWMReaderCallback_iface);
+}
+
+static HRESULT WINAPI reader_callback_advanced_OnStreamSample(IWMReaderCallbackAdvanced *iface,
+ WORD stream, QWORD time, QWORD duration, DWORD flags, INSSBuffer *sample, void *context)
+{
+ FIXME("iface %p, stream %u, time %I64u, duration %I64u, flags %#lx, sample %p, context %p stub!\n",
+ iface, stream, time, duration, flags, sample, context);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI reader_callback_advanced_OnTime(IWMReaderCallbackAdvanced *iface,
+ QWORD time, void *context)
+{
+ FIXME("iface %p stub!\n", iface);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI reader_callback_advanced_OnStreamSelection(IWMReaderCallbackAdvanced *iface,
+ WORD count, WORD *stream_numbers, WMT_STREAM_SELECTION *selections, void *context)
+{
+ FIXME("iface %p stub!\n", iface);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI reader_callback_advanced_OnOutputPropsChanged(IWMReaderCallbackAdvanced *iface,
+ DWORD output, WM_MEDIA_TYPE *mt, void *context)
+{
+ FIXME("iface %p stub!\n", iface);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI reader_callback_advanced_AllocateForStream(IWMReaderCallbackAdvanced *iface,
+ WORD stream, DWORD size, INSSBuffer **out, void *context)
+{
+ FIXME("iface %p stub!\n", iface);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI reader_callback_advanced_AllocateForOutput(IWMReaderCallbackAdvanced *iface,
+ DWORD output, DWORD size, INSSBuffer **out, void *context)
+{
+ FIXME("iface %p, output %lu, size %lu, out %p, context %p stub!\n", iface, output, size, out, context);
+ return E_NOTIMPL;
+}
+
+static const IWMReaderCallbackAdvancedVtbl reader_callback_advanced_vtbl =
+{
+ reader_callback_advanced_QueryInterface,
+ reader_callback_advanced_AddRef,
+ reader_callback_advanced_Release,
+ reader_callback_advanced_OnStreamSample,
+ reader_callback_advanced_OnTime,
+ reader_callback_advanced_OnStreamSelection,
+ reader_callback_advanced_OnOutputPropsChanged,
+ reader_callback_advanced_AllocateForStream,
+ reader_callback_advanced_AllocateForOutput,
+};
+
static HRESULT asf_callback_create(struct asf_reader *filter, IWMReaderCallback **out)
{
struct asf_callback *callback;
@@ -636,6 +718,7 @@ static HRESULT asf_callback_create(struct asf_reader *filter, IWMReaderCallback
return E_OUTOFMEMORY;
callback->IWMReaderCallback_iface.lpVtbl = &reader_callback_vtbl;
+ callback->IWMReaderCallbackAdvanced_iface.lpVtbl = &reader_callback_advanced_vtbl;
callback->filter = filter;
callback->ref = 1;
More information about the wine-cvs
mailing list