quartz: FileSource_Load should not fail on unknown file formats.

Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Michael Müller 2016-04-29 22:13:35 +02:00 committed by Alexandre Julliard
parent a5fcc4d2a2
commit 355a3248d4
2 changed files with 16 additions and 6 deletions

View File

@ -655,8 +655,9 @@ static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFi
hr = GetClassMediaFile(pReader, pszFileName, &This->pmt->majortype, &This->pmt->subtype, NULL);
if (FAILED(hr))
{
CoTaskMemFree(This->pmt);
This->pmt = NULL;
This->pmt->majortype = MEDIATYPE_Stream;
This->pmt->subtype = MEDIASUBTYPE_NULL;
hr = S_OK;
}
}
else

View File

@ -217,6 +217,12 @@ static void test_filesourcefilter(void)
12,
&MEDIASUBTYPE_WAVE,
},
{
"unknown format",
"Hello World",
11,
NULL, /* FIXME: should be &MEDIASUBTYPE_NULL */
},
};
WCHAR path[MAX_PATH], temp[MAX_PATH];
IFileSourceFilter *filesource;
@ -277,10 +283,13 @@ static void test_filesourcefilter(void)
ok(hr == S_OK, "expected S_OK, got %08x\n", hr);
ok(!lstrcmpW(olepath, path),
"expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(olepath));
ok(IsEqualGUID(&mt.majortype, &MEDIATYPE_Stream),
"expected MEDIATYPE_Stream, got %s\n", wine_dbgstr_guid(&mt.majortype));
ok(IsEqualGUID(&mt.subtype, tests[i].subtype),
"expected %s, got %s\n", wine_dbgstr_guid(tests[i].subtype), wine_dbgstr_guid(&mt.subtype));
if (tests[i].subtype)
{
ok(IsEqualGUID(&mt.majortype, &MEDIATYPE_Stream),
"expected MEDIATYPE_Stream, got %s\n", wine_dbgstr_guid(&mt.majortype));
ok(IsEqualGUID(&mt.subtype, tests[i].subtype),
"expected %s, got %s\n", wine_dbgstr_guid(tests[i].subtype), wine_dbgstr_guid(&mt.subtype));
}
CoTaskMemFree(olepath);
IFileSourceFilter_Release(filesource);