diff --git a/dlls/windowscodecs/icoformat.c b/dlls/windowscodecs/icoformat.c index a49683a9fd2..fcb5d499e54 100644 --- a/dlls/windowscodecs/icoformat.c +++ b/dlls/windowscodecs/icoformat.c @@ -534,8 +534,20 @@ static HRESULT WINAPI IcoDecoder_GetContainerFormat(IWICBitmapDecoder *iface, static HRESULT WINAPI IcoDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, IWICBitmapDecoderInfo **ppIDecoderInfo) { - FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); - return E_NOTIMPL; + HRESULT hr; + IWICComponentInfo *compinfo; + + TRACE("(%p,%p)\n", iface, ppIDecoderInfo); + + hr = CreateComponentInfo(&CLSID_WICIcoDecoder, &compinfo); + if (FAILED(hr)) return hr; + + hr = IWICComponentInfo_QueryInterface(compinfo, &IID_IWICBitmapDecoderInfo, + (void**)ppIDecoderInfo); + + IWICComponentInfo_Release(compinfo); + + return hr; } static HRESULT WINAPI IcoDecoder_CopyPalette(IWICBitmapDecoder *iface, diff --git a/dlls/windowscodecs/jpegformat.c b/dlls/windowscodecs/jpegformat.c index ab21fbfbe00..083a352e043 100644 --- a/dlls/windowscodecs/jpegformat.c +++ b/dlls/windowscodecs/jpegformat.c @@ -362,8 +362,20 @@ static HRESULT WINAPI JpegDecoder_GetContainerFormat(IWICBitmapDecoder *iface, static HRESULT WINAPI JpegDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, IWICBitmapDecoderInfo **ppIDecoderInfo) { - FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); - return E_NOTIMPL; + HRESULT hr; + IWICComponentInfo *compinfo; + + TRACE("(%p,%p)\n", iface, ppIDecoderInfo); + + hr = CreateComponentInfo(&CLSID_WICJpegDecoder, &compinfo); + if (FAILED(hr)) return hr; + + hr = IWICComponentInfo_QueryInterface(compinfo, &IID_IWICBitmapDecoderInfo, + (void**)ppIDecoderInfo); + + IWICComponentInfo_Release(compinfo); + + return hr; } static HRESULT WINAPI JpegDecoder_CopyPalette(IWICBitmapDecoder *iface, diff --git a/dlls/windowscodecs/pngformat.c b/dlls/windowscodecs/pngformat.c index f1c0e3cf668..f5f6fdb5eaf 100644 --- a/dlls/windowscodecs/pngformat.c +++ b/dlls/windowscodecs/pngformat.c @@ -475,8 +475,20 @@ static HRESULT WINAPI PngDecoder_GetContainerFormat(IWICBitmapDecoder *iface, static HRESULT WINAPI PngDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, IWICBitmapDecoderInfo **ppIDecoderInfo) { - FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); - return E_NOTIMPL; + HRESULT hr; + IWICComponentInfo *compinfo; + + TRACE("(%p,%p)\n", iface, ppIDecoderInfo); + + hr = CreateComponentInfo(&CLSID_WICPngDecoder, &compinfo); + if (FAILED(hr)) return hr; + + hr = IWICComponentInfo_QueryInterface(compinfo, &IID_IWICBitmapDecoderInfo, + (void**)ppIDecoderInfo); + + IWICComponentInfo_Release(compinfo); + + return hr; } static HRESULT WINAPI PngDecoder_CopyPalette(IWICBitmapDecoder *iface, diff --git a/dlls/windowscodecs/tgaformat.c b/dlls/windowscodecs/tgaformat.c index 8db1cf17311..0a120561367 100644 --- a/dlls/windowscodecs/tgaformat.c +++ b/dlls/windowscodecs/tgaformat.c @@ -351,8 +351,20 @@ static HRESULT WINAPI TgaDecoder_GetContainerFormat(IWICBitmapDecoder *iface, static HRESULT WINAPI TgaDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, IWICBitmapDecoderInfo **ppIDecoderInfo) { - FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); - return E_NOTIMPL; + HRESULT hr; + IWICComponentInfo *compinfo; + + TRACE("(%p,%p)\n", iface, ppIDecoderInfo); + + hr = CreateComponentInfo(&CLSID_WineTgaDecoder, &compinfo); + if (FAILED(hr)) return hr; + + hr = IWICComponentInfo_QueryInterface(compinfo, &IID_IWICBitmapDecoderInfo, + (void**)ppIDecoderInfo); + + IWICComponentInfo_Release(compinfo); + + return hr; } static HRESULT WINAPI TgaDecoder_CopyPalette(IWICBitmapDecoder *iface, diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c index fb4f65c8e84..6422b620f16 100644 --- a/dlls/windowscodecs/tiffformat.c +++ b/dlls/windowscodecs/tiffformat.c @@ -590,8 +590,20 @@ static HRESULT WINAPI TiffDecoder_GetContainerFormat(IWICBitmapDecoder *iface, static HRESULT WINAPI TiffDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, IWICBitmapDecoderInfo **ppIDecoderInfo) { - FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); - return E_NOTIMPL; + HRESULT hr; + IWICComponentInfo *compinfo; + + TRACE("(%p,%p)\n", iface, ppIDecoderInfo); + + hr = CreateComponentInfo(&CLSID_WICTiffDecoder, &compinfo); + if (FAILED(hr)) return hr; + + hr = IWICComponentInfo_QueryInterface(compinfo, &IID_IWICBitmapDecoderInfo, + (void**)ppIDecoderInfo); + + IWICComponentInfo_Release(compinfo); + + return hr; } static HRESULT WINAPI TiffDecoder_CopyPalette(IWICBitmapDecoder *iface,