Vincent Povirk <madewokherd(a)gmail.com> wrote:
+ hr = IStream_Clone(image->stream, &stream); + if (FAILED(hr))
That's odd. When does that happen?
IStream returned by SHCreateStreamOnFile (wrapped by GdipCreateStreamOnFile) intentionally doesn't implement Clone, there are even tests for that in shlwapi.
+ if (stat == Ok) + { + memcpy(&new_image->format, &codec->info.FormatID, sizeof(GUID)); + free_image_data(image); + if (image->type == ImageTypeBitmap) + *(GpBitmap *)image = *(GpBitmap *)new_image; + else if (image->type == ImageTypeMetafile) + *(GpMetafile *)image = *(GpMetafile *)new_image; + return Ok; + }
Why did you re-implement move_bitmap() ?
An image can be not a bitmap. -- Dmitry.