From: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/windowscodecs/metadataquery.c | 8 ++++++++ dlls/windowscodecs/tests/metadata.c | 16 ++++------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dlls/windowscodecs/metadataquery.c b/dlls/windowscodecs/metadataquery.c index 0eada0ae656..e535103d001 100644 --- a/dlls/windowscodecs/metadataquery.c +++ b/dlls/windowscodecs/metadataquery.c @@ -359,6 +359,14 @@ static void parse_query_data_item(struct query_parser *parser, PROPVARIANT *item if (parser_skip_char(parser, '{')) return; + /* Empty "{}" item represents VT_EMPTY. */ + if (*parser->ptr == '}') + { + item->vt = VT_EMPTY; + parser->ptr++; + return; + } + /* Type */ span.str = parser->ptr; span.len = 0; diff --git a/dlls/windowscodecs/tests/metadata.c b/dlls/windowscodecs/tests/metadata.c index b7b48a4e5b1..f70df520c22 100644 --- a/dlls/windowscodecs/tests/metadata.c +++ b/dlls/windowscodecs/tests/metadata.c @@ -781,23 +781,15 @@ static void test_metadata_unknown(void) PropVariantInit(&value); hr = IWICMetadataQueryReader_GetMetadataByName(query_reader2, L"/{}", &value); - todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - if (hr == S_OK) - { - compare_blob(&value, metadata_unknown, sizeof(metadata_unknown)); - PropVariantClear(&value); - } + compare_blob(&value, metadata_unknown, sizeof(metadata_unknown)); + PropVariantClear(&value); PropVariantInit(&value); hr = IWICMetadataQueryReader_GetMetadataByName(query_reader, L"/unknown/{}", &value); - todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - if (hr == S_OK) - { - compare_blob(&value, metadata_unknown, sizeof(metadata_unknown)); - PropVariantClear(&value); - } + compare_blob(&value, metadata_unknown, sizeof(metadata_unknown)); + PropVariantClear(&value); IWICMetadataQueryReader_Release(query_reader2); IWICMetadataQueryReader_Release(query_reader); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/7329