windowscodecs: Implement GetDecoderInfo for all the decoders.

This commit is contained in:
Vincent Povirk 2011-07-27 16:03:09 -05:00 committed by Alexandre Julliard
parent 5a45076d1d
commit e9fba4fc07
5 changed files with 70 additions and 10 deletions

View File

@ -534,8 +534,20 @@ static HRESULT WINAPI IcoDecoder_GetContainerFormat(IWICBitmapDecoder *iface,
static HRESULT WINAPI IcoDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, static HRESULT WINAPI IcoDecoder_GetDecoderInfo(IWICBitmapDecoder *iface,
IWICBitmapDecoderInfo **ppIDecoderInfo) IWICBitmapDecoderInfo **ppIDecoderInfo)
{ {
FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); HRESULT hr;
return E_NOTIMPL; 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, static HRESULT WINAPI IcoDecoder_CopyPalette(IWICBitmapDecoder *iface,

View File

@ -362,8 +362,20 @@ static HRESULT WINAPI JpegDecoder_GetContainerFormat(IWICBitmapDecoder *iface,
static HRESULT WINAPI JpegDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, static HRESULT WINAPI JpegDecoder_GetDecoderInfo(IWICBitmapDecoder *iface,
IWICBitmapDecoderInfo **ppIDecoderInfo) IWICBitmapDecoderInfo **ppIDecoderInfo)
{ {
FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); HRESULT hr;
return E_NOTIMPL; 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, static HRESULT WINAPI JpegDecoder_CopyPalette(IWICBitmapDecoder *iface,

View File

@ -475,8 +475,20 @@ static HRESULT WINAPI PngDecoder_GetContainerFormat(IWICBitmapDecoder *iface,
static HRESULT WINAPI PngDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, static HRESULT WINAPI PngDecoder_GetDecoderInfo(IWICBitmapDecoder *iface,
IWICBitmapDecoderInfo **ppIDecoderInfo) IWICBitmapDecoderInfo **ppIDecoderInfo)
{ {
FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); HRESULT hr;
return E_NOTIMPL; 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, static HRESULT WINAPI PngDecoder_CopyPalette(IWICBitmapDecoder *iface,

View File

@ -351,8 +351,20 @@ static HRESULT WINAPI TgaDecoder_GetContainerFormat(IWICBitmapDecoder *iface,
static HRESULT WINAPI TgaDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, static HRESULT WINAPI TgaDecoder_GetDecoderInfo(IWICBitmapDecoder *iface,
IWICBitmapDecoderInfo **ppIDecoderInfo) IWICBitmapDecoderInfo **ppIDecoderInfo)
{ {
FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); HRESULT hr;
return E_NOTIMPL; 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, static HRESULT WINAPI TgaDecoder_CopyPalette(IWICBitmapDecoder *iface,

View File

@ -590,8 +590,20 @@ static HRESULT WINAPI TiffDecoder_GetContainerFormat(IWICBitmapDecoder *iface,
static HRESULT WINAPI TiffDecoder_GetDecoderInfo(IWICBitmapDecoder *iface, static HRESULT WINAPI TiffDecoder_GetDecoderInfo(IWICBitmapDecoder *iface,
IWICBitmapDecoderInfo **ppIDecoderInfo) IWICBitmapDecoderInfo **ppIDecoderInfo)
{ {
FIXME("(%p,%p): stub\n", iface, ppIDecoderInfo); HRESULT hr;
return E_NOTIMPL; 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, static HRESULT WINAPI TiffDecoder_CopyPalette(IWICBitmapDecoder *iface,