Нужно написать тест, демонстрирующий загрузку PNG из памяти с помощью OleLoadPicture. Для начала: http://www.rsdn.ru/article/qna/gdi/drawimg.xml http://www.codeproject.com/KB/graphics/render.aspx Также нужно разобраться и исправить, почему штатный тест oleaut32/tests/olepicture.c не проверяет загрузку png: /* FIXME: No PNG support yet in Wine or in older Windows... */ if (0) test_pic(pngimage, sizeof(pngimage));
Самый оригинальный способ загрузки PNG я нашёл здесь: /srv/repos/svn/guliverkli2/src/apps/mplayerc/libpng.h
Добавил небольшой тест в /tests/olepicture.c: Gif и JPEG загружаются без проблем, а вот при загрузки PNG OleLoadPicture возвращает S_OK, но IPicture возвращается равным NULL. Поэтому при первом же обращении к IPicture (например IPicture_get_Handle) происходит падение
Ошибся, функция возвращяет не S_OK, а 0x800a01e1
Использовалась стороняя oleaut32.dll. Брал от win98 и от win2k - результат идентичный: возвращает 800a01e1. На встроенной oleaut32.dll тест проходит успешно
Created attachment 728 [details] тест
Сделал патч