Из письма: По поводу печати - смотрел и тестировал на последней версии 7.3. Нашел такое отличие в поведении под Windows и WinE. При печати у нас активно пользуется ClipRect. Под WinE регион для отсечения создается и устанавливается успешно (вызов SelectClipRgn завершается успешно). Но для hDC подготовки превью последующий вызов GetClipBox (сразу после SelectClipRgn) завершается с ошибкой и возвращает ERROR. Хотя работа с ClipRect на hDC от окна вполне успешно работает.
Created attachment 1302 [details] Тестовое приложение При нажатии на кнопку пытается начать виртуальную отрисовку превью. В окно выводит размер установленного ClipRect. Также создает/дополняет файл с расширением .log куда пишет переданные размеры ClipRect и получившиеся (если они отличаются).
Я думаю, надо делать нормальный тест.
Выложил патч в нашу рассылку. Проблема заключается в том, что SelectClipRgn, в случае работы с метафайлом, вызывает соответствующую функцию драйвера (EMFDRV_ExtSelectClipRgn), после чего возвращает управление. При этом никакие изменения в DC структуре не происходят. Т.е. в случае работы с метафайлом изменения Clip/Visible регионов никак не сохраняются, в отличие от работы с DC экрана. Поэтому при попытке получить Clip регион возвращается пустой регион. Решение заключается в том, чтобы вносить необходимые изменения в DC структуру при вызове SelectClipRgn независимо от того есть ExtSelectClipRgn функция драйвера или нет, как было раньше. Есть тест для этой ошибки, но с его отправкой на winehq возникли проблемы.
Принято. WINE@Etersoft 1.0.11 eter9/eter5
-