From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/windowscodecs/imgfactory.c | 3 +++ dlls/windowscodecs/tests/metadata.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/windowscodecs/imgfactory.c b/dlls/windowscodecs/imgfactory.c index c941344f1aa..e0b863f5cd4 100644 --- a/dlls/windowscodecs/imgfactory.c +++ b/dlls/windowscodecs/imgfactory.c @@ -1616,6 +1616,9 @@ static HRESULT WINAPI ComponentFactory_CreateMetadataWriter(IWICComponentFactory if (!format || !writer) return E_INVALIDARG;
+ if (options & WICPersistOptionMask) + return E_INVALIDARG; + return create_metadata_writer(format, vendor, options, writer); }
diff --git a/dlls/windowscodecs/tests/metadata.c b/dlls/windowscodecs/tests/metadata.c index 61a3fb42a96..9ad9e38372c 100644 --- a/dlls/windowscodecs/tests/metadata.c +++ b/dlls/windowscodecs/tests/metadata.c @@ -4423,6 +4423,7 @@ static void test_CreateMetadataWriter(void) { &GUID_MetadataFormatIfd, WICPersistOptionNoCacheStream }, { &GUID_MetadataFormatChunktEXt, WICPersistOptionNoCacheStream }, { &GUID_MetadataFormatApp1, 0x100 }, + { &GUID_MetadataFormatApp1, 0x1000 }, }; IWICStreamProvider *stream_provider; IWICComponentFactory *factory; @@ -4440,9 +4441,10 @@ static void test_CreateMetadataWriter(void) { const struct options_test *test = &options_tests[i];
+ writer = (void *)0xdeadbeef; hr = IWICComponentFactory_CreateMetadataWriter(factory, test->clsid, NULL, test->options, &writer); - todo_wine ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + ok(writer == (void *)0xdeadbeef, "Unexpected value %p.\n", writer); }
hr = IWICComponentFactory_CreateMetadataWriter(factory, &GUID_MetadataFormatChunktEXt, NULL, 0, &writer);