Bug 1973

Summary: Тест, загружающий PNG из памяти с помощью OleLoadPicture
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: Графика GDI / DIB / GDIPLUSAssignee: Виталий Перов <vitperov>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P5 CC: baraka, kondratyuk, vitperov
Version: 1.0.9   
Target Milestone: release 1.0.10   
Hardware: PC   
OS: Linux   
URL: http://www.rsdn.ru/article/qna/gdi/drawimg.xml
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 1792, 1217, 1799, 1955    
Attachments: тест

Description Vitaly Lipatov 2008-06-23 17:44:55 MSD
Нужно написать тест, демонстрирующий загрузку 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));
Comment 1 Vitaly Lipatov 2008-06-23 21:26:36 MSD
Самый оригинальный способ загрузки PNG я нашёл здесь:
/srv/repos/svn/guliverkli2/src/apps/mplayerc/libpng.h
Comment 2 Виталий Перов 2008-09-10 21:11:52 MSD
Добавил небольшой тест в /tests/olepicture.c:
Gif и JPEG загружаются без проблем, а вот при загрузки PNG OleLoadPicture возвращает S_OK, но IPicture возвращается равным NULL. Поэтому при первом же обращении к IPicture (например IPicture_get_Handle) происходит падение
Comment 3 Виталий Перов 2008-09-10 21:22:35 MSD
Ошибся, функция возвращяет не S_OK, а 0x800a01e1
Comment 4 Виталий Перов 2008-09-16 22:01:17 MSD
Использовалась стороняя oleaut32.dll. Брал от win98 и от win2k - результат идентичный: возвращает 800a01e1.

На встроенной oleaut32.dll тест проходит успешно
Comment 5 Виталий Перов 2008-09-16 22:25:45 MSD
Created attachment 728 [details]
тест
Comment 6 Виталий Перов 2008-09-16 22:27:01 MSD
Сделал патч