Vincent Povirk : windowscodecs: Implement WICSetEncoderFormat_Proxy.
Alexandre Julliard
julliard at winehq.org
Tue Oct 29 15:12:25 CDT 2013
Module: wine
Branch: master
Commit: 4d30c057bf2aaad7985713cd98000756d2e6b61a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4d30c057bf2aaad7985713cd98000756d2e6b61a
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Mon Oct 28 16:43:22 2013 -0500
windowscodecs: Implement WICSetEncoderFormat_Proxy.
---
dlls/windowscodecs/proxy.c | 40 +++++++++++++++++++++++++++++++++
dlls/windowscodecs/windowscodecs.spec | 2 +-
2 files changed, 41 insertions(+), 1 deletions(-)
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)
More information about the wine-cvs
mailing list