Порядок воспроисзведения 1. Создаём новый или открываем существующий проект 2. меню Проект-> Свойства проекта 3. В открывшемся окне нажимаем <OK> Появляется сообщение об ошибке: Run-time error '445' Object doesn't support this action При нажатии на <OK> в окне сообщения об ошибке программа закрывается, но падения не происходит
Исключение возникает уже при открытии окна настроек: 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.
Сложно определить место где программа начинает работать неправильно. Думаю, что ошибка при закрытии окна настроек и разворачивании программы - только частный случай основной баги. Исключения появляются как при открытии проекта, так и при закрытии самой программы (если проект был открыт). Если же проект не открывать, то исключения при закрытии программы не появляются
Функция WebBrowser_Refresh не реализована, но если вместо E_NOTIMPL вернуть S_OK, то бага исчезает. Конечно, это хак, но решает некоторые проблемы. Вообще эта функция вызывается довольно часто, и если она возвращает E_NOTIMPL программа всегда генерирует исключение. Но это обычно проходит незамеченым.
Хак, возвращающий S_OK - вполне нормальное быстрое решение, если не требуется дополнительной функциональности от метода. Если бага решается этим, то стоит приложить патч и вернуться к этому позднее, при необходимости.