Esme Povirk : windowscodecs: pceltFetched is optional in IWICEnumMetadataItem.

Alexandre Julliard julliard at winehq.org
Mon Apr 11 15:54:58 CDT 2022


Module: wine
Branch: master
Commit: 824d521dc73ff4caadd4e0ea6db8b64d8ce2e03c
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=824d521dc73ff4caadd4e0ea6db8b64d8ce2e03c

Author: Esme Povirk <esme at codeweavers.com>
Date:   Sat Apr  9 16:03:59 2022 -0500

windowscodecs: pceltFetched is optional in IWICEnumMetadataItem.

Spotted by Eric Pouech.

Signed-off-by: Esme Povirk <esme at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/windowscodecs/metadatahandler.c |  4 ++++
 dlls/windowscodecs/tests/metadata.c  | 15 +++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/dlls/windowscodecs/metadatahandler.c b/dlls/windowscodecs/metadatahandler.c
index b0b682b6d9b..5bcca0f58c6 100644
--- a/dlls/windowscodecs/metadatahandler.c
+++ b/dlls/windowscodecs/metadatahandler.c
@@ -491,9 +491,13 @@ static HRESULT WINAPI MetadataHandlerEnum_Next(IWICEnumMetadataItem *iface,
     ULONG new_index;
     HRESULT hr=S_FALSE;
     ULONG i;
+    ULONG fetched;
 
     TRACE("(%p,%li)\n", iface, celt);
 
+    if (!pceltFetched)
+        pceltFetched = &fetched;
+
     EnterCriticalSection(&This->parent->lock);
 
     if (This->index >= This->parent->item_count)
diff --git a/dlls/windowscodecs/tests/metadata.c b/dlls/windowscodecs/tests/metadata.c
index 2ec9eb645e8..57d8e2b1bea 100644
--- a/dlls/windowscodecs/tests/metadata.c
+++ b/dlls/windowscodecs/tests/metadata.c
@@ -303,6 +303,21 @@ static void test_metadata_unknown(void)
         ok(hr == S_FALSE, "Next failed, hr=%lx\n", hr);
         ok(items_returned == 0, "unexpected item count %li\n", items_returned);
 
+        hr = IWICEnumMetadataItem_Reset(enumerator);
+        ok(hr == S_OK, "Reset failed, hr=%lx\n", hr);
+
+        hr = IWICEnumMetadataItem_Next(enumerator, 1, &schema, &id, NULL, NULL);
+        ok(hr == S_OK, "Next failed, hr=%lx\n", hr);
+
+        if (hr == S_OK)
+        {
+            ok(schema.vt == VT_EMPTY, "unexpected vt: %i\n", schema.vt);
+            ok(id.vt == VT_EMPTY, "unexpected vt: %i\n", id.vt);
+
+            PropVariantClear(&schema);
+            PropVariantClear(&id);
+        }
+
         IWICEnumMetadataItem_Release(enumerator);
     }
 




More information about the wine-cvs mailing list