windowscodecs: Implement WICSetEncoderFormat_Proxy.
Vincent Povirk
madewokherd at gmail.com
Mon Oct 28 16:49:24 CDT 2013
-------------- next part --------------
From bc6a46c8ae4fe8c6ad66888ffa0227216eab1f24 Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Mon, 28 Oct 2013 16:43:22 -0500
Subject: [PATCH] windowscodecs: Implement WICSetEncoderFormat_Proxy.
---
dlls/windowscodecs/proxy.c | 40 +++++++++++++++++++++++++++++++++++
dlls/windowscodecs/windowscodecs.spec | 2 +-
2 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/dlls/windowscodecs/proxy.c b/dlls/windowscodecs/proxy.c
index 2f727b4..91fb6e6 100644
--- a/dlls/windowscodecs/proxy.c
+++ b/dlls/windowscodecs/proxy.c
@@ -633,3 +633,43 @@ HRESULT WINAPI WICCreateImagingFactory_Proxy(UINT SDKVersion, IWICImagingFactory
return ComponentFactory_CreateInstance(NULL, &IID_IWICImagingFactory, (void**)ppIImagingFactory);
}
+
+HRESULT WINAPI WICSetEncoderFormat_Proxy(IWICBitmapSource *pSourceIn,
+ IWICPalette *pIPalette, IWICBitmapFrameEncode *pIFrameEncode,
+ IWICBitmapSource **ppSourceOut)
+{
+ HRESULT hr;
+ WICPixelFormatGUID pixelformat, framepixelformat;
+
+ TRACE("%p,%p,%p,%p\n", pSourceIn, pIPalette, pIFrameEncode, ppSourceOut);
+
+ if (pIPalette) FIXME("ignoring palette\n");
+
+ if (!pSourceIn || !pIFrameEncode || !ppSourceOut)
+ return E_INVALIDARG;
+
+ *ppSourceOut = NULL;
+
+ hr = IWICBitmapSource_GetPixelFormat(pSourceIn, &pixelformat);
+
+ if (SUCCEEDED(hr))
+ {
+ framepixelformat = pixelformat;
+ hr = IWICBitmapFrameEncode_SetPixelFormat(pIFrameEncode, &framepixelformat);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ if (IsEqualGUID(&pixelformat, &framepixelformat))
+ {
+ *ppSourceOut = pSourceIn;
+ IWICBitmapSource_AddRef(pSourceIn);
+ }
+ else
+ {
+ hr = WICConvertBitmapSource(&framepixelformat, pSourceIn, ppSourceOut);
+ }
+ }
+
+ return hr;
+}
diff --git a/dlls/windowscodecs/windowscodecs.spec b/dlls/windowscodecs/windowscodecs.spec
index 3d70084..9497aec 100644
--- a/dlls/windowscodecs/windowscodecs.spec
+++ b/dlls/windowscodecs/windowscodecs.spec
@@ -114,4 +114,4 @@
@ stub WICMapShortNameToGuid
@ stub WICMatchMetadataContent
@ stub WICSerializeMetadataContent
-@ stub WICSetEncoderFormat_Proxy
+@ stdcall WICSetEncoderFormat_Proxy(ptr ptr ptr ptr)
--
1.8.1.2
More information about the wine-patches
mailing list