gdiplus: Avoid casting IWICBitmapFrameDecode to IWICBitmapSource.
This commit is contained in:
parent
7f9230c566
commit
d079b66ba5
|
@ -2676,12 +2676,14 @@ static GpStatus decode_image_wic(IStream* stream, REFCLSID clsid, UINT active_fr
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
|
IWICBitmapSource *bmp_source;
|
||||||
|
IWICBitmapFrameDecode_QueryInterface(frame, &IID_IWICBitmapSource, (void **)&bmp_source);
|
||||||
|
|
||||||
for (i=0; wic_pixel_formats[i]; i++)
|
for (i=0; wic_pixel_formats[i]; i++)
|
||||||
{
|
{
|
||||||
if (IsEqualGUID(&wic_format, wic_pixel_formats[i]))
|
if (IsEqualGUID(&wic_format, wic_pixel_formats[i]))
|
||||||
{
|
{
|
||||||
source = (IWICBitmapSource*)frame;
|
source = bmp_source;
|
||||||
IWICBitmapSource_AddRef(source);
|
|
||||||
gdip_format = wic_gdip_formats[i];
|
gdip_format = wic_gdip_formats[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2689,8 +2691,9 @@ static GpStatus decode_image_wic(IStream* stream, REFCLSID clsid, UINT active_fr
|
||||||
if (!source)
|
if (!source)
|
||||||
{
|
{
|
||||||
/* unknown format; fall back on 32bppARGB */
|
/* unknown format; fall back on 32bppARGB */
|
||||||
hr = WICConvertBitmapSource(&GUID_WICPixelFormat32bppBGRA, (IWICBitmapSource*)frame, &source);
|
hr = WICConvertBitmapSource(&GUID_WICPixelFormat32bppBGRA, bmp_source, &source);
|
||||||
gdip_format = PixelFormat32bppARGB;
|
gdip_format = PixelFormat32bppARGB;
|
||||||
|
IWICBitmapSource_Release(bmp_source);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue