From 75a88146338d409489682bbc88cfc54224a93812 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 20 Jun 2012 14:00:17 +0900 Subject: [PATCH] windowscodecs: Implement MetadataHandler_GetMetadataFormat. --- dlls/windowscodecs/metadatahandler.c | 28 +++++++++++++++++++--------- dlls/windowscodecs/tests/metadata.c | 2 -- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/dlls/windowscodecs/metadatahandler.c b/dlls/windowscodecs/metadatahandler.c index 80fd32d0488..f8b8fcbd01d 100644 --- a/dlls/windowscodecs/metadatahandler.c +++ b/dlls/windowscodecs/metadatahandler.c @@ -133,15 +133,6 @@ static ULONG WINAPI MetadataHandler_Release(IWICMetadataWriter *iface) return ref; } -static HRESULT WINAPI MetadataHandler_GetMetadataFormat(IWICMetadataWriter *iface, - GUID *pguidMetadataFormat) -{ - if (!pguidMetadataFormat) return E_INVALIDARG; - - FIXME("(%p,%s): stub\n", iface, debugstr_guid(pguidMetadataFormat)); - return E_NOTIMPL; -} - static HRESULT WINAPI MetadataHandler_GetMetadataHandlerInfo(IWICMetadataWriter *iface, IWICMetadataHandlerInfo **ppIHandler) { @@ -161,6 +152,25 @@ static HRESULT WINAPI MetadataHandler_GetMetadataHandlerInfo(IWICMetadataWriter return hr; } +static HRESULT WINAPI MetadataHandler_GetMetadataFormat(IWICMetadataWriter *iface, + GUID *pguidMetadataFormat) +{ + HRESULT hr; + IWICMetadataHandlerInfo *metadata_info; + + TRACE("%p,%p\n", iface, pguidMetadataFormat); + + if (!pguidMetadataFormat) return E_INVALIDARG; + + hr = MetadataHandler_GetMetadataHandlerInfo(iface, &metadata_info); + if (FAILED(hr)) return hr; + + hr = IWICMetadataHandlerInfo_GetMetadataFormat(metadata_info, pguidMetadataFormat); + IWICMetadataHandlerInfo_Release(metadata_info); + + return hr; +} + static HRESULT WINAPI MetadataHandler_GetCount(IWICMetadataWriter *iface, UINT *pcCount) { diff --git a/dlls/windowscodecs/tests/metadata.c b/dlls/windowscodecs/tests/metadata.c index cf00f1f9afa..e746c89f108 100644 --- a/dlls/windowscodecs/tests/metadata.c +++ b/dlls/windowscodecs/tests/metadata.c @@ -418,9 +418,7 @@ static void test_metadata_IFD(void) IWICEnumMetadataItem_Release(enumerator); hr = IWICMetadataReader_GetMetadataFormat(reader, &format); -todo_wine ok(hr == S_OK, "GetMetadataFormat error %#x\n", hr); -todo_wine ok(IsEqualGUID(&format, &GUID_MetadataFormatIfd), "unexpected format %s\n", debugstr_guid(&format)); hr = IWICMetadataReader_GetMetadataFormat(reader, NULL);