Zebediah Figura : qcap/filewriter: Implement IFileSinkFilter::SetFileName().
Alexandre Julliard
julliard at winehq.org
Thu Apr 23 14:54:31 CDT 2020
Module: wine
Branch: master
Commit: 329e0210fd6dcc8b167d64d9a055a94f981d5250
URL: https://source.winehq.org/git/wine.git/?a=commit;h=329e0210fd6dcc8b167d64d9a055a94f981d5250
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Wed Apr 22 21:14:07 2020 -0500
qcap/filewriter: Implement IFileSinkFilter::SetFileName().
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/qcap/filewriter.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/dlls/qcap/filewriter.c b/dlls/qcap/filewriter.c
index e56b5f68a4..656f72db1a 100644
--- a/dlls/qcap/filewriter.c
+++ b/dlls/qcap/filewriter.c
@@ -22,6 +22,7 @@
#include "dshow.h"
#include "qcap_main.h"
#include "wine/debug.h"
+#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(qcap);
@@ -31,6 +32,8 @@ struct file_writer
IFileSinkFilter IFileSinkFilter_iface;
struct strmbase_sink sink;
+
+ WCHAR *filename;
};
static inline struct file_writer *impl_from_strmbase_pin(struct strmbase_pin *iface)
@@ -87,6 +90,7 @@ static void file_writer_destroy(struct strmbase_filter *iface)
{
struct file_writer *filter = impl_from_strmbase_filter(iface);
+ heap_free(filter->filename);
strmbase_sink_cleanup(&filter->sink);
strmbase_filter_cleanup(&filter->filter);
heap_free(filter);
@@ -126,11 +130,21 @@ static HRESULT WINAPI filesinkfilter_SetFileName(IFileSinkFilter *iface,
LPCOLESTR filename, const AM_MEDIA_TYPE *mt)
{
struct file_writer *filter = impl_from_IFileSinkFilter(iface);
+ WCHAR *new_filename;
- FIXME("filter %p, filename %s, mt %p, stub!\n", filter, debugstr_w(filename), mt);
+ TRACE("filter %p, filename %s, mt %p, stub!\n", filter, debugstr_w(filename), mt);
strmbase_dump_media_type(mt);
- return E_NOTIMPL;
+ if (mt)
+ FIXME("Ignoring media type %p.\n", mt);
+
+ if (!(new_filename = heap_alloc((strlenW(filename) + 1) * sizeof(WCHAR))))
+ return E_OUTOFMEMORY;
+ strcpyW(new_filename, filename);
+
+ heap_free(filter->filename);
+ filter->filename = new_filename;
+ return S_OK;
}
static HRESULT WINAPI filesinkfilter_GetCurFile(IFileSinkFilter *iface,
More information about the wine-cvs
mailing list