From 79d143973b6ff8ab75863aab82521f903bc32926 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Wed, 27 Jan 2021 20:33:51 +0300 Subject: [PATCH] windowscodecs: Return correct error codes from BmpFrameEncode_GetMetadataQueryWriter(). Signed-off-by: Paul Gofman Signed-off-by: Esme Povirk Signed-off-by: Alexandre Julliard --- dlls/windowscodecs/bmpencode.c | 12 +++++++++--- dlls/windowscodecs/tests/metadata.c | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dlls/windowscodecs/bmpencode.c b/dlls/windowscodecs/bmpencode.c index 30b1f361c98..e87d66a2e63 100644 --- a/dlls/windowscodecs/bmpencode.c +++ b/dlls/windowscodecs/bmpencode.c @@ -397,10 +397,16 @@ static HRESULT WINAPI BmpFrameEncode_Commit(IWICBitmapFrameEncode *iface) } static HRESULT WINAPI BmpFrameEncode_GetMetadataQueryWriter(IWICBitmapFrameEncode *iface, - IWICMetadataQueryWriter **ppIMetadataQueryWriter) + IWICMetadataQueryWriter **query_writer) { - FIXME("(%p, %p): stub\n", iface, ppIMetadataQueryWriter); - return E_NOTIMPL; + BmpFrameEncode *encoder = impl_from_IWICBitmapFrameEncode(iface); + + TRACE("iface %p, query_writer %p.\n", iface, query_writer); + + if (!encoder->initialized) + return WINCODEC_ERR_NOTINITIALIZED; + + return WINCODEC_ERR_UNSUPPORTEDOPERATION; } static const IWICBitmapFrameEncodeVtbl BmpFrameEncode_Vtbl = { diff --git a/dlls/windowscodecs/tests/metadata.c b/dlls/windowscodecs/tests/metadata.c index c1339e4bd1d..e6e46c389f9 100644 --- a/dlls/windowscodecs/tests/metadata.c +++ b/dlls/windowscodecs/tests/metadata.c @@ -3106,7 +3106,7 @@ static void test_metadata_writer(void) ok(hr == (tests[i].metadata_supported ? S_OK : E_INVALIDARG), "Got unexpected hr %#x, i %u.\n", hr, i); hr = IWICBitmapFrameEncode_GetMetadataQueryWriter(frameencode, &querywriter2); - todo_wine_if(!i) ok(hr == (tests[i].succeeds_unitialized ? S_OK : WINCODEC_ERR_NOTINITIALIZED), + ok(hr == (tests[i].succeeds_unitialized ? S_OK : WINCODEC_ERR_NOTINITIALIZED), "Got unexpected hr %#x, i %u.\n", hr, i); if (hr == S_OK) IWICMetadataQueryWriter_Release(querywriter2); @@ -3115,7 +3115,7 @@ static void test_metadata_writer(void) ok(hr == S_OK, "Got unexpected hr %#x, i %u.\n", hr, i); hr = IWICBitmapFrameEncode_GetMetadataQueryWriter(frameencode, &querywriter2); - todo_wine_if(!i) ok(hr == (tests[i].metadata_supported ? S_OK : WINCODEC_ERR_UNSUPPORTEDOPERATION), + ok(hr == (tests[i].metadata_supported ? S_OK : WINCODEC_ERR_UNSUPPORTEDOPERATION), "Got unexpected hr %#x, i %u.\n", hr, i); if (tests[i].metadata_supported)