Module: wine Branch: master Commit: b468c29de10d29d9b3a7717bbc8b8dc631a4ca83 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b468c29de10d29d9b3a7717bbc...
Author: Vincent Povirk vincent@codeweavers.com Date: Tue Apr 27 10:40:40 2010 -0500
windowscodecs: Implement IWICImagingFactory_CreateDecoderFromFilename.
---
dlls/windowscodecs/imgfactory.c | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/dlls/windowscodecs/imgfactory.c b/dlls/windowscodecs/imgfactory.c index a98aeb8..e3dcca0 100644 --- a/dlls/windowscodecs/imgfactory.c +++ b/dlls/windowscodecs/imgfactory.c @@ -26,6 +26,7 @@ #include "winbase.h" #include "winreg.h" #include "objbase.h" +#include "shellapi.h" #include "wincodec.h"
#include "wincodecs_private.h" @@ -89,9 +90,27 @@ static HRESULT WINAPI ImagingFactory_CreateDecoderFromFilename( DWORD dwDesiredAccess, WICDecodeOptions metadataOptions, IWICBitmapDecoder **ppIDecoder) { - FIXME("(%p,%s,%s,%u,%u,%p): stub\n", iface, debugstr_w(wzFilename), + IWICStream *stream; + HRESULT hr; + + TRACE("(%p,%s,%s,%u,%u,%p)\n", iface, debugstr_w(wzFilename), debugstr_guid(pguidVendor), dwDesiredAccess, metadataOptions, ppIDecoder); - return E_NOTIMPL; + + hr = StreamImpl_Create(&stream); + if (SUCCEEDED(hr)) + { + hr = IWICStream_InitializeFromFilename(stream, wzFilename, dwDesiredAccess); + + if (SUCCEEDED(hr)) + { + hr = IWICImagingFactory_CreateDecoderFromStream(iface, (IStream*)stream, + pguidVendor, metadataOptions, ppIDecoder); + } + + IWICStream_Release(stream); + } + + return hr; }
static HRESULT WINAPI ImagingFactory_CreateDecoderFromStream(