Bug 1995

Summary: Конструктор школьных сайтов закрывается при выходе из настроек
Product: Wine School Reporter: Виталий Перов <vitperov>
Component: Конструктор сайтовAssignee: Константин Кондратюк <kondratyuk>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P4 CC: baraka, kondratyuk, lav, vitperov
Version: 0.7   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 2460    
Bug Blocks: 1527, 1530    

Description Виталий Перов 2008-06-25 16:48:45 MSD
Порядок воспроисзведения
1. Создаём новый или открываем существующий проект
2. меню Проект-> Свойства проекта
3. В открывшемся окне нажимаем <OK>

Появляется сообщение об ошибке:
Run-time error '445'
Object doesn't support this action

При нажатии на <OK> в окне сообщения об ошибке программа закрывается, но падения не происходит
Comment 1 Виталий Перов 2008-07-07 14:06:38 MSD
Исключение возникает уже при открытии окна настроек:
Backtrace:
=>1 0x7b8429a2 RaiseException+0x82() in kernel32 (0x0032f39c)
  2 0x719b8ff2 in msxml3 (+0x28ff2) (0x0032f3bc)
  3 0x719c035e in msxml3 (+0x3035e) (0x0032f3fc)
  4 0x719b2fc4 in msxml3 (+0x22fc4) (0x0032f418)
  5 0x719b26a9 in msxml3 (+0x226a9) (0x0032f488)
  6 0x005f6448 in constructor (+0x1f6448) (0x0032f5a8)
......

Последние сообщения в консоле:
fixme:ole:OleLoadPictureEx (0xe08154,3598,1,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=0,y=0,f=0,0x32f544), partially implemented.
fixme:ole:OleLoadPictureEx (0xe08154,3598,1,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=0,y=0,f=0,0x32f544), partially implemented.
err:ole:CoGetClassObject class {00000000-0000-0000-0000-000000000000} not registered
err:ole:CoGetClassObject no class object {00000000-0000-0000-0000-000000000000} could be created for context 0x1
fixme:ole:OLEPictureImpl_SaveAsFile (0x131b80)->(0x38e6f58, 0, (nil)), hacked stub.
Comment 2 Виталий Перов 2008-07-09 14:17:47 MSD
Сложно определить место где программа начинает работать неправильно.
Думаю, что ошибка при закрытии окна настроек и разворачивании программы - только частный случай основной баги.

Исключения появляются как при открытии проекта, так и  при закрытии самой программы (если проект был открыт).
Если же проект не открывать, то исключения при закрытии программы не появляются
Comment 3 Виталий Перов 2008-07-12 15:16:07 MSD
Функция WebBrowser_Refresh не реализована, но если вместо E_NOTIMPL вернуть S_OK, то бага исчезает.

Конечно, это хак, но решает некоторые проблемы. Вообще эта функция вызывается довольно часто, и если она возвращает E_NOTIMPL программа всегда генерирует исключение. Но это обычно проходит незамеченым.
Comment 4 Константин Кондратюк 2008-07-12 15:52:43 MSD
Хак, возвращающий S_OK - вполне нормальное быстрое решение, если не требуется дополнительной функциональности от метода.
Если бага решается этим, то стоит приложить патч и вернуться к этому позднее, при необходимости.