windowscodecs: Implement GetThumbnail in the ICO frame decoder.

This commit is contained in:
Dmitry Timoshkov 2013-01-31 00:48:05 +08:00 committed by Alexandre Julliard
parent 166a7e993c
commit e6c88226ef
2 changed files with 14 additions and 7 deletions

View File

@ -200,8 +200,8 @@ static HRESULT WINAPI IcoFrameDecode_GetColorContexts(IWICBitmapFrameDecode *ifa
static HRESULT WINAPI IcoFrameDecode_GetThumbnail(IWICBitmapFrameDecode *iface,
IWICBitmapSource **ppIThumbnail)
{
FIXME("(%p,%p)\n", iface, ppIThumbnail);
return E_NOTIMPL;
TRACE("(%p,%p)\n", iface, ppIThumbnail);
return IWICBitmapFrameDecode_QueryInterface(iface, &IID_IWICBitmapSource, (void **)ppIThumbnail);
}
static const IWICBitmapFrameDecodeVtbl IcoFrameDecode_Vtbl = {

View File

@ -133,17 +133,24 @@ static void test_bad_icondirentry_size(void)
if (SUCCEEDED(hr))
{
UINT width = 0, height = 0;
IWICBitmapSource *thumbnail = NULL;
UINT width, height;
IWICBitmapSource *thumbnail;
width = height = 0;
hr = IWICBitmapFrameDecode_GetSize(framedecode, &width, &height);
ok(hr == S_OK, "GetFrameSize failed, hr=%x\n", hr);
ok(width == 16 && height == 16, "framesize=%ux%u\n", width, height);
hr = IWICBitmapFrameDecode_GetThumbnail(framedecode, &thumbnail);
todo_wine ok(hr == S_OK, "GetThumbnail failed, hr=%x\n", hr);
if (thumbnail) IWICBitmapSource_Release(thumbnail);
ok(hr == S_OK, "GetThumbnail failed, hr=%x\n", hr);
if (hr == S_OK)
{
width = height = 0;
hr = IWICBitmapSource_GetSize(thumbnail, &width, &height);
ok(hr == S_OK, "GetFrameSize failed, hr=%x\n", hr);
ok(width == 16 && height == 16, "framesize=%ux%u\n", width, height);
IWICBitmapSource_Release(thumbnail);
}
IWICBitmapFrameDecode_Release(framedecode);
}