[3/4] windowscodecs: Implement MetadataHandler_GetMetadataFormat. Resend.

Dmitry Timoshkov dmitry at baikal.ru
Wed Jun 20 00:00:17 CDT 2012


---
 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 80fd32d..f8b8fcb 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 cf00f1f..e746c89 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);
-- 
1.7.11




More information about the wine-patches mailing list