Created attachment 891 [details] лог Не вызывается справка в формате .chm. Воспроизведение: Справка > Азбука Компас. Лог по +file при вызове справки в прилож.
Судя по trace:file:RtlDosPathNameToNtPathName_U (L"C:\\Program Files\\ASCON\\KOMPAS-3D V10\\Bin\\hhctrl.ocx",0x33f038,(nil),(nil)) нужно запрашивать у разработчиков код, через который они вызывают chm.
Тогда о чём бага 2481?
Денис, бага 2481, по сути дубль этой, закрыта со статусом FIXED. Проясни, пожалуйста.
(In reply to comment #3) > Денис, бага 2481, по сути дубль этой, закрыта > со статусом FIXED. > Проясни, пожалуйста. > 2481 - открывается внутреняя html справка, а эта бага про открытие chm справки
Бага по-прежнему воспроизводится. Нужен код, который отрабатывает при вызове справки.
Стандартный $ wine hh KOMPAS-3D.chm открывает файл.
trace:htmlhelp:HtmlHelpW (0x10034, L"C:\\Program Files\\ASCON\\KOMPAS-3D V10\\Tutorials\\KOMPAS-3D.chm", command=HH_GET_WIN_HANDLE, data=2069e28) fixme:htmlhelp:HtmlHelpW HH case HH_GET_WIN_HANDLE not handled. trace:htmlhelp:HtmlHelpW (0x10034, L"C:\\Program Files\\ASCON\\KOMPAS-3D V10\\Tutorials\\KOMPAS-3D.chm", command=HH_SET_WIN_TYPE, data=33f770) fixme:htmlhelp:HtmlHelpW HH case HH_SET_WIN_TYPE not handled. trace:htmlhelp:HtmlHelpW (0x10034, L"C:\\Program Files\\ASCON\\KOMPAS-3D V10\\Tutorials\\KOMPAS-3D.chm>MyWindow", command=HH_DISPLAY_TOPIC, data=0) fixme:htmlhelp:HtmlHelpW Not all HH cases handled correctly warn:htmlhelp:OpenCHM Could not open storage: 80004005 trace:htmlhelp:ReleaseHelpViewer (0x1448b8)
Использование сторонней hhctl.ocx делает отображение справки абсолютно корректным (при запуске отдельно от Компаса). В то же время справка, вызванная из программы, открывается и мгновенно приводит к падению gecko Backtrace: =>0 0x0f658669 in js3250 (+0x8669) (0x1159da0c) 1 0x1007c063 in xul (+0x3c063) (0x1159da3c) 2 0x1005f7b4 in xul (+0x1f7b4) (0x1159da5c) Дальше работать в Компасе возможно, но gecko не загружается (отказывает весь html и не загружаются все справки), пока программа не будет перезапущена.
А само падение по backtrace'у похоже на ошибку при встраивании wmp в страницу браузера: http://bugs.etersoft.ru/show_bug.cgi?id=2033
Тест на запуск азбуки из - под КОМПАС. Рядом с исполняемым файлом CHM.exe д.б. файл азбуки KOMPAS-3D.chm. После запуска CHM.exe выполнить Help - Tutor.
Created attachment 1167 [details] архив с тестом
Причина проблемы в открытии файла - ошибка, возвращаемая в HtmlHelpW и последующее завершение её по условию (FAILED). Ошибка на этапе открытия chm-файла, когда функция OpenCHM передаёт в chm_openW имя файла, тогда как на той стороне ожидается полный путь. Перед вызовом chm_openW есть получение полного пути, поэтому нужно всего лишь указать его в параметрах.
Патч, позволяющей Компасу вызывать справку chm: commit 3fea12d4fe3792afeaa3b9e605def50c97eb24d5 Author: Konstantin Kondratyuk <kondratyuk@etersoft.ru> Date: Wed Apr 29 11:43:58 2009 +0400 hhctl.ocx: Send full filename to chm_openW
Тем не менее остаётся проблема с работой теста. Тест формирует строку, в которой к имени файла присоединяется имя окна: "C:\\chm\\Release\\KOMPAS-3D.chm>MyWindow" После этого вызывается HtmlHelp. В windows это работает корректно, в wine - ошибка в открытии файла. Проверил, проблема решается хаком вида if wcschr(filename,'>') filename[0] = '\0'; Но дело в том, что сам Компас не использует путь такого вида, и Азбука открывается и без этой правки.
Вызов справки работает. Дальнейшие вопросы корректности отображения и устойчивости к падениям - тема для отдельной баги.
WINE@Etersoft CAD eter1.1/eter2 Проблема снова с нами. Справка обычная (Справка > Содержание) открывается без проблем через встроенный chm-просмотрщик. А вот Учебное пособие "Азбука КОМПАС" не открывается, вылетает ошибка невозможно открыть файл. В консоли след: fixme:shdocvw:ClOleCommandTarget_Exec (0x57dcaf0)->({000214d1-0000-0000-c000-000000000046} 67 0 0x32f294 0x32f284) fixme:hlink:IHlink_fnSetMonikerReference (0x57f4fd0)->(0 0x145f30 (null)) fixme:hlink:IHlink_fnGetStringReference (0x57f4fd0) -> (1 (nil) 0x32f138) fixme:shdocvw:navigate_bsc Navigation canceled fixme:htmlhelp:HtmlHelpW HH case HH_GET_WIN_HANDLE not handled. fixme:htmlhelp:HtmlHelpW HH case HH_SET_WIN_TYPE not handled. fixme:htmlhelp:HtmlHelpW Not all HH cases handled correctly
Вот причина: commit 24fb182f349f3b9068cb954ae0815edcd2b94a9f Author: Vitaly Perov <vitperov@etersoft.ru> Date: Mon Jul 6 14:18:14 2009 +0400 Revert "hhctl.ocx: Send full filename to chm_openW" This reverts commit 3bf62e3efa61f060fb83140d663b506d51e798b9. Кажется, из оригинального кода исчезла переменная, которую я использовал, в итоге патч временно отключили до исправления.
Теперь для открытия файла использовалась другая переменная, которую нужно "почистить" для того, чтобы она содержала путь к файлу. Патч в рассылке: http://lists.etersoft.ru/pipermail/wine-patches/2009-September/000628.html
Проблема снова присутствует, запускается через встроенный просмотрщик. WINE@Etersoft CAD eter8/eter5
Денис, так вся бага и была в том, что справка не открывалась. Открывается - значит всё работает в рамках этой задачи! ;) Наверное, ты хотел переоткрыть багу про внешний просмотрщик?
Any comments? :)
Нужно проверить, что всё в порядке, и закрыть.
одну из 2х одинаковых задач закрою. *** This bug has been marked as a duplicate of bug 7475 ***