[WINDOWSCODECS_WINETEST] Sync with Wine Staging 1.7.47. CORE-9924

svn path=/trunk/; revision=68544
This commit is contained in:
Amine Khaldi 2015-07-22 00:45:50 +00:00
parent 9fdfcff1b4
commit 40ac828ca5
6 changed files with 268 additions and 12 deletions

View file

@ -661,7 +661,7 @@ static void test_CreateBitmapFromHICON(void)
ok(IsEqualGUID(&format, &GUID_WICPixelFormat32bppBGRA),
"unexpected pixel format %s\n", wine_dbgstr_guid(&format));
IWICBitmap_GetSize(bitmap, &width, &height);
hr = IWICBitmap_GetSize(bitmap, &width, &height);
ok(hr == S_OK, "IWICBitmap_GetSize error %#x\n", hr);
ok(width == 16, "expected 16, got %u\n", width);
ok(height == 16, "expected 16, got %u\n", height);
@ -689,7 +689,7 @@ static void test_CreateBitmapFromHICON(void)
ok(IsEqualGUID(&format, &GUID_WICPixelFormat32bppBGRA),
"unexpected pixel format %s\n", wine_dbgstr_guid(&format));
IWICBitmap_GetSize(bitmap, &width, &height);
hr = IWICBitmap_GetSize(bitmap, &width, &height);
ok(hr == S_OK, "IWICBitmap_GetSize error %#x\n", hr);
ok(width == 16, "expected 16, got %u\n", width);
ok(height == 16, "expected 16, got %u\n", height);

View file

@ -31,6 +31,8 @@
#include <wincodec.h>
#include <wine/test.h>
HRESULT WINAPI WICCreateImagingFactory_Proxy(UINT, IWICImagingFactory**);
static const char gif_global_palette[] = {
/* LSD */'G','I','F','8','7','a',0x01,0x00,0x01,0x00,0xa1,0x02,0x00,
/* palette */0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,
@ -61,6 +63,27 @@ static const char gif_local_palette[] = {
0x02,0x02,0x44,0x01,0x00,0x3b
};
/* Generated with ImageMagick:
* convert -delay 100 -size 2x2 xc:red \
* -dispose none -page +0+0 -size 2x1 xc:white \
* test.gif
*/
static const char gif_frame_sizes[] = {
0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x02, 0x00,
0x02, 0x00, 0xf1, 0x00, 0x00, 0xff, 0x00, 0x00,
0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00,
0x00, 0x21, 0xf9, 0x04, 0x00, 0x64, 0x00, 0x00,
0x00, 0x21, 0xff, 0x0b, 0x4e, 0x45, 0x54, 0x53,
0x43, 0x41, 0x50, 0x45, 0x32, 0x2e, 0x30, 0x03,
0x01, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00,
0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x02, 0x03,
0x44, 0x34, 0x05, 0x00, 0x21, 0xf9, 0x04, 0x04,
0x64, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00,
0x00, 0x02, 0x00, 0x01, 0x00, 0x80, 0xff, 0xff,
0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x04, 0x0a,
0x00, 0x3b
};
static IWICImagingFactory *factory;
static IWICBitmapDecoder *create_decoder(const void *image_data, UINT image_size)
@ -71,6 +94,7 @@ static IWICBitmapDecoder *create_decoder(const void *image_data, UINT image_size
IWICBitmapDecoder *decoder = NULL;
IStream *stream;
GUID format;
LONG refcount;
hmem = GlobalAlloc(0, image_size);
data = GlobalLock(hmem);
@ -88,7 +112,8 @@ static IWICBitmapDecoder *create_decoder(const void *image_data, UINT image_size
ok(IsEqualGUID(&format, &GUID_ContainerFormatGif),
"wrong container format %s\n", wine_dbgstr_guid(&format));
IStream_Release(stream);
refcount = IStream_Release(stream);
ok(refcount > 0, "expected stream refcount > 0\n");
return decoder;
}
@ -334,6 +359,55 @@ static void test_local_gif_palette(void)
IWICBitmapDecoder_Release(decoder);
}
static void test_gif_frame_sizes(void)
{
static const BYTE frame0[] = {0, 1, 0xfe, 0xfe, 2, 3, 0xfe, 0xfe};
static const BYTE frame1[] = {0, 0, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe};
IWICBitmapDecoder *decoder;
IWICBitmapFrameDecode *frame;
UINT width, height;
BYTE buf[8];
HRESULT hr;
decoder = create_decoder(gif_frame_sizes, sizeof(gif_frame_sizes));
ok(decoder != 0, "Failed to load GIF image data\n");
hr = IWICBitmapDecoder_GetFrame(decoder, 0, &frame);
ok(hr == S_OK, "GetFrame error %#x\n", hr);
hr = IWICBitmapFrameDecode_GetSize(frame, &width, &height);
ok(hr == S_OK, "GetSize error %x\n", hr);
ok(width == 2, "width = %d\n", width);
ok(height == 2, "height = %d\n", height);
memset(buf, 0xfe, sizeof(buf));
hr = IWICBitmapFrameDecode_CopyPixels(frame, NULL, 4, sizeof(buf), buf);
ok(hr == S_OK, "CopyPixels error %x\n", hr);
ok(!memcmp(buf, frame0, sizeof(buf)), "buf = %x %x %x %x %x %x %x %x\n",
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]);
IWICBitmapFrameDecode_Release(frame);
hr = IWICBitmapDecoder_GetFrame(decoder, 1, &frame);
ok(hr == S_OK, "GetFrame error %#x\n", hr);
hr = IWICBitmapFrameDecode_GetSize(frame, &width, &height);
ok(hr == S_OK, "GetSize error %x\n", hr);
ok(width == 2, "width = %d\n", width);
ok(height == 1, "height = %d\n", height);
memset(buf, 0xfe, sizeof(buf));
hr = IWICBitmapFrameDecode_CopyPixels(frame, NULL, 4, sizeof(buf), buf);
ok(hr == S_OK, "CopyPixels error %x\n", hr);
ok(!memcmp(buf, frame1, sizeof(buf)), "buf = %x %x %x %x %x %x %x %x\n",
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]);
IWICBitmapFrameDecode_Release(frame);
IWICBitmapDecoder_Release(decoder);
}
START_TEST(gifformat)
{
HRESULT hr;
@ -347,7 +421,19 @@ START_TEST(gifformat)
test_global_gif_palette();
test_global_gif_palette_2frames();
test_local_gif_palette();
test_gif_frame_sizes();
IWICImagingFactory_Release(factory);
CoUninitialize();
/* run the same tests with no COM initialization */
hr = WICCreateImagingFactory_Proxy(WINCODEC_SDK_VERSION, &factory);
ok(hr == S_OK, "WICCreateImagingFactory_Proxy error %#x\n", hr);
test_global_gif_palette();
test_global_gif_palette_2frames();
test_local_gif_palette();
test_gif_frame_sizes();
IWICImagingFactory_Release(factory);
}

View file

@ -85,6 +85,7 @@ static void test_decoder_info(void)
int i;
hr = get_component_info(&CLSID_WICBmpDecoder, &info);
ok(hr == S_OK, "CreateComponentInfo failed, hr=%x\n", hr);
hr = IWICComponentInfo_QueryInterface(info, &IID_IWICBitmapDecoderInfo, (void**)&decoder_info);
ok(hr == S_OK, "QueryInterface failed, hr=%x\n", hr);
@ -227,7 +228,7 @@ static void test_pixelformat_info(void)
memset(value, 0xaa, 256 * sizeof(WCHAR));
hr = IWICComponentInfo_GetAuthor(info, len-1, value, NULL);
ok(hr == E_INVALIDARG, "GetAuthor failed, hr=%x\n", hr);
ok(value[0] = 0xaaaa, "string modified\n");
ok(value[0] == 0xaaaa, "string modified\n");
len = 0xdeadbeef;
memset(value, 0xaa, 256 * sizeof(WCHAR));

View file

@ -142,6 +142,13 @@ static const char metadata_tEXt[] = {
0x3f,0x64,0x19,0xf3 /* chunk CRC */
};
static const char metadata_gAMA[] = {
0,0,0,4, /* chunk length */
'g','A','M','A', /* chunk type */
0,0,130,53, /* gamma */
0xff,0xff,0xff,0xff /* chunk CRC */
};
static const char pngimage[285] = {
0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x02,0x00,0x00,0x00,0x90,0x77,0x53,
@ -410,6 +417,51 @@ static void test_metadata_tEXt(void)
IWICMetadataReader_Release(reader);
}
static void test_metadata_gAMA(void)
{
HRESULT hr;
IWICMetadataReader *reader;
PROPVARIANT schema, id, value;
ULONG count;
GUID format;
static const WCHAR ImageGamma[] = {'I','m','a','g','e','G','a','m','m','a',0};
PropVariantInit(&schema);
PropVariantInit(&id);
PropVariantInit(&value);
hr = CoCreateInstance(&CLSID_WICPngGamaMetadataReader, NULL, CLSCTX_INPROC_SERVER,
&IID_IWICMetadataReader, (void**)&reader);
ok(hr == S_OK || broken(hr == REGDB_E_CLASSNOTREG) /*winxp*/, "CoCreateInstance failed, hr=%x\n", hr);
if (FAILED(hr)) return;
load_stream((IUnknown*)reader, metadata_gAMA, sizeof(metadata_gAMA), WICPersistOptionsDefault);
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatChunkgAMA), "unexpected format %s\n", wine_dbgstr_guid(&format));
hr = IWICMetadataReader_GetCount(reader, &count);
ok(hr == S_OK, "GetCount failed, hr=%x\n", hr);
ok(count == 1, "unexpected count %i\n", count);
hr = IWICMetadataReader_GetValueByIndex(reader, 0, &schema, &id, &value);
ok(hr == S_OK, "GetValue failed, hr=%x\n", hr);
ok(schema.vt == VT_EMPTY, "unexpected vt: %i\n", schema.vt);
PropVariantClear(&schema);
ok(id.vt == VT_LPWSTR, "unexpected vt: %i\n", id.vt);
ok(!lstrcmpW(U(id).pwszVal, ImageGamma), "unexpected value: %s\n", wine_dbgstr_w(U(id).pwszVal));
PropVariantClear(&id);
ok(value.vt == VT_UI4, "unexpected vt: %i\n", value.vt);
ok(U(value).ulVal == 33333, "unexpected value: %u\n", U(value).ulVal);
PropVariantClear(&value);
IWICMetadataReader_Release(reader);
}
static inline USHORT ushort_bswap(USHORT s)
{
return (s >> 8) | (s << 8);
@ -951,11 +1003,11 @@ static void test_metadata_png(void)
ok(IsEqualGUID(&containerformat, &GUID_ContainerFormatPng), "unexpected container format\n");
hr = IWICMetadataBlockReader_GetCount(blockreader, NULL);
todo_wine ok(hr == E_INVALIDARG, "GetCount failed, hr=%x\n", hr);
ok(hr == E_INVALIDARG, "GetCount failed, hr=%x\n", hr);
hr = IWICMetadataBlockReader_GetCount(blockreader, &count);
todo_wine ok(hr == S_OK, "GetCount failed, hr=%x\n", hr);
todo_wine ok(count == 1, "unexpected count %d\n", count);
ok(hr == S_OK, "GetCount failed, hr=%x\n", hr);
ok(count == 1, "unexpected count %d\n", count);
if (0)
{
@ -965,18 +1017,19 @@ static void test_metadata_png(void)
}
hr = IWICMetadataBlockReader_GetReaderByIndex(blockreader, 0, &reader);
todo_wine ok(hr == S_OK, "GetReaderByIndex failed, hr=%x\n", hr);
ok(hr == S_OK, "GetReaderByIndex failed, hr=%x\n", hr);
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &containerformat);
ok(IsEqualGUID(&containerformat, &GUID_MetadataFormatChunktIME) ||
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
todo_wine ok(IsEqualGUID(&containerformat, &GUID_MetadataFormatChunktIME) ||
broken(IsEqualGUID(&containerformat, &GUID_MetadataFormatUnknown)) /* Windows XP */,
"unexpected container format\n");
hr = IWICMetadataReader_GetCount(reader, &count);
ok(hr == S_OK, "GetCount error %#x\n", hr);
ok(count == 6 || broken(count == 1) /* XP */, "expected 6, got %u\n", count);
todo_wine ok(count == 6 || broken(count == 1) /* XP */, "expected 6, got %u\n", count);
if (count == 6)
compare_metadata(reader, td, count);
@ -1114,6 +1167,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatLSD), /* Logical Screen Descriptor */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1162,6 +1216,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatIMD), /* Image Descriptor */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1215,6 +1270,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatLSD), /* Logical Screen Descriptor */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1233,6 +1289,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatAPE), /* Application Extension */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1251,6 +1308,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatGifComment), /* Comment Extension */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1269,6 +1327,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatUnknown),
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1317,6 +1376,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatIMD), /* Image Descriptor */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1335,6 +1395,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatGifComment), /* Comment Extension */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1354,6 +1415,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatUnknown),
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1372,6 +1434,7 @@ static void test_metadata_gif(void)
if (SUCCEEDED(hr))
{
hr = IWICMetadataReader_GetMetadataFormat(reader, &format);
ok(hr == S_OK, "GetMetadataFormat failed, hr=%#x\n", hr);
ok(IsEqualGUID(&format, &GUID_MetadataFormatGCE), /* Graphic Control Extension */
"wrong metadata format %s\n", wine_dbgstr_guid(&format));
@ -1799,6 +1862,7 @@ START_TEST(metadata)
test_metadata_unknown();
test_metadata_tEXt();
test_metadata_gAMA();
test_metadata_IFD();
test_metadata_Exif();
test_create_reader();

View file

@ -289,6 +289,7 @@ static IWICBitmapDecoder *create_decoder(const void *image_data, UINT image_size
IWICBitmapDecoder *decoder = NULL;
IStream *stream;
GUID format;
LONG refcount;
hmem = GlobalAlloc(0, image_size);
data = GlobalLock(hmem);
@ -306,7 +307,8 @@ static IWICBitmapDecoder *create_decoder(const void *image_data, UINT image_size
ok(IsEqualGUID(&format, &GUID_ContainerFormatPng),
"wrong container format %s\n", wine_dbgstr_guid(&format));
IStream_Release(stream);
refcount = IStream_Release(stream);
ok(refcount > 0, "expected stream refcount > 0\n");
return decoder;
}

View file

@ -98,7 +98,49 @@ static const struct tiff_1bpp_data
{ 900, 3 },
{ 0x11, 0x22, 0x33, 0 }
};
#include <poppack.h>
static const struct tiff_8bpp_alpha
{
USHORT byte_order;
USHORT version;
ULONG dir_offset;
USHORT number_of_entries;
struct IFD_entry entry[15];
ULONG next_IFD;
struct IFD_rational res;
BYTE pixel_data[8];
} tiff_8bpp_alpha =
{
#ifdef WORDS_BIGENDIAN
'M' | 'M' << 8,
#else
'I' | 'I' << 8,
#endif
42,
FIELD_OFFSET(struct tiff_8bpp_alpha, number_of_entries),
15,
{
{ 0xff, IFD_SHORT, 1, 0 }, /* SUBFILETYPE */
{ 0x100, IFD_LONG, 1, 2 }, /* IMAGEWIDTH */
{ 0x101, IFD_LONG, 1, 2 }, /* IMAGELENGTH */
{ 0x102, IFD_SHORT, 2, MAKELONG(8, 8) }, /* BITSPERSAMPLE */
{ 0x103, IFD_SHORT, 1, 1 }, /* COMPRESSION: XP doesn't accept IFD_LONG here */
{ 0x106, IFD_SHORT, 1, 1 }, /* PHOTOMETRIC */
{ 0x111, IFD_LONG, 1, FIELD_OFFSET(struct tiff_8bpp_alpha, pixel_data) }, /* STRIPOFFSETS */
{ 0x115, IFD_SHORT, 1, 2 }, /* SAMPLESPERPIXEL */
{ 0x116, IFD_LONG, 1, 2 }, /* ROWSPERSTRIP */
{ 0x117, IFD_LONG, 1, 8 }, /* STRIPBYTECOUNT */
{ 0x11a, IFD_RATIONAL, 1, FIELD_OFFSET(struct tiff_8bpp_alpha, res) },
{ 0x11b, IFD_RATIONAL, 1, FIELD_OFFSET(struct tiff_8bpp_alpha, res) },
{ 0x11c, IFD_SHORT, 1, 1 }, /* PLANARCONFIGURATION */
{ 0x128, IFD_SHORT, 1, 2 }, /* RESOLUTIONUNIT */
{ 0x152, IFD_SHORT, 1, 1 } /* EXTRASAMPLES: 1 - Associated alpha with pre-multiplied color */
},
0,
{ 96, 1 },
{ 0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88 }
};
#include "poppack.h"
static IWICImagingFactory *factory;
@ -270,6 +312,66 @@ todo_wine
IStream_Release(stream);
}
static void test_tiff_8bpp_alpha(void)
{
HRESULT hr;
IWICBitmapDecoder *decoder;
IWICBitmapFrameDecode *frame;
UINT frame_count, width, height, i;
double dpi_x, dpi_y;
IWICPalette *palette;
GUID format;
WICRect rc;
BYTE data[16];
static const BYTE expected_data[16] = { 0x11,0x11,0x11,0x22,0x33,0x33,0x33,0x44,
0x55,0x55,0x55,0x66,0x77,0x77,0x77,0x88 };
decoder = create_decoder(&tiff_8bpp_alpha, sizeof(tiff_8bpp_alpha));
ok(decoder != 0, "Failed to load TIFF image data\n");
hr = IWICBitmapDecoder_GetFrameCount(decoder, &frame_count);
ok(hr == S_OK, "GetFrameCount error %#x\n", hr);
ok(frame_count == 1, "expected 1, got %u\n", frame_count);
hr = IWICBitmapDecoder_GetFrame(decoder, 0, &frame);
ok(hr == S_OK, "GetFrame error %#x\n", hr);
hr = IWICBitmapFrameDecode_GetSize(frame, &width, &height);
ok(hr == S_OK, "GetSize error %#x\n", hr);
ok(width == 2, "expected 2, got %u\n", width);
ok(height == 2, "expected 2, got %u\n", height);
hr = IWICBitmapFrameDecode_GetResolution(frame, &dpi_x, &dpi_y);
ok(hr == S_OK, "GetResolution error %#x\n", hr);
ok(dpi_x == 96.0, "expected 96.0, got %f\n", dpi_x);
ok(dpi_y == 96.0, "expected 96.0, got %f\n", dpi_y);
hr = IWICBitmapFrameDecode_GetPixelFormat(frame, &format);
ok(hr == S_OK, "GetPixelFormat error %#x\n", hr);
ok(IsEqualGUID(&format, &GUID_WICPixelFormat32bppPBGRA),
"got wrong format %s\n", wine_dbgstr_guid(&format));
hr = IWICImagingFactory_CreatePalette(factory, &palette);
ok(hr == S_OK, "CreatePalette error %#x\n", hr);
hr = IWICBitmapFrameDecode_CopyPalette(frame, palette);
ok(hr == WINCODEC_ERR_PALETTEUNAVAILABLE,
"expected WINCODEC_ERR_PALETTEUNAVAILABLE, got %#x\n", hr);
IWICPalette_Release(palette);
rc.X = 0;
rc.Y = 0;
rc.Width = 2;
rc.Height = 2;
hr = IWICBitmapFrameDecode_CopyPixels(frame, &rc, 8, sizeof(data), data);
ok(hr == S_OK, "CopyPixels error %#x\n", hr);
for (i = 0; i < sizeof(data); i++)
ok(data[i] == expected_data[i], "%u: expected %02x, got %02x\n", i, expected_data[i], data[i]);
IWICBitmapFrameDecode_Release(frame);
IWICBitmapDecoder_Release(decoder);
}
START_TEST(tiffformat)
{
HRESULT hr;
@ -283,6 +385,7 @@ START_TEST(tiffformat)
test_tiff_palette();
test_QueryCapability();
test_tiff_8bpp_alpha();
IWICImagingFactory_Release(factory);
CoUninitialize();