From 86197532a3ee02a55c1cdf4f5b463d8bda62ace2 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Tue, 27 Apr 2010 10:40:40 -0500 Subject: [PATCH 2/8] 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( -- 1.6.3.3