Bug 2927

Summary: Компас: Не работает вызов chm справки
Product: [Поддержка проектов] КОМПАС 3D Reporter: Денис Баранов <baraka>
Component: ТестированиеAssignee: Svetlana Zhukova <svzhu>
Status: CLOSED DUPLICATE QA Contact: Денис Баранов <baraka>
Severity: normal    
Priority: P2 CC: bulgakov, kondratyuk, lav, mais, mx
Version: v10   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 2481    
Bug Blocks: 753, 5513, 7475    
Deadline: 2011-09-12   
Attachments: лог
архив с тестом

Description Денис Баранов 2008-11-16 17:30:20 MSK
Created attachment 891 [details]
лог

Не вызывается справка в формате .chm.
Воспроизведение: Справка > Азбука Компас.
Лог по +file при вызове справки в прилож.
Comment 1 Vitaly Lipatov 2008-11-16 17:53:59 MSK
Судя по
trace:file:RtlDosPathNameToNtPathName_U (L"C:\\Program Files\\ASCON\\KOMPAS-3D
V10\\Bin\\hhctrl.ocx",0x33f038,(nil),(nil))

нужно запрашивать у разработчиков код, через который они вызывают chm.
Comment 2 Vitaly Lipatov 2008-11-17 12:06:15 MSK
Тогда о чём бага 2481?
Comment 3 Константин Кондратюк 2009-01-26 11:34:13 MSK
Денис, бага 2481, по сути дубль этой, закрыта со статусом FIXED.
Проясни, пожалуйста.
Comment 4 Денис Баранов 2009-01-28 19:27:30 MSK
(In reply to comment #3)
> Денис, бага 2481, по сути дубль этой, закрыта
> со статусом FIXED.
> Проясни, пожалуйста.
> 

2481 - открывается внутреняя html справка, а эта бага про открытие chm справки
Comment 5 Константин Кондратюк 2009-04-15 15:45:37 MSD
Бага по-прежнему воспроизводится. Нужен код, который отрабатывает при вызове справки.
Comment 6 Константин Кондратюк 2009-04-21 12:19:42 MSD
Стандартный
$ wine hh KOMPAS-3D.chm
открывает файл.
Comment 7 Константин Кондратюк 2009-04-21 12:37:20 MSD
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)
Comment 8 Константин Кондратюк 2009-04-21 13:19:19 MSD
Использование сторонней hhctl.ocx делает отображение справки абсолютно корректным (при запуске отдельно от Компаса).

В то же время справка, вызванная из программы, открывается и мгновенно приводит к падению gecko 
Backtrace:
=>0 0x0f658669 in js3250 (+0x8669) (0x1159da0c)
  1 0x1007c063 in xul (+0x3c063) (0x1159da3c)
  2 0x1005f7b4 in xul (+0x1f7b4) (0x1159da5c)

Дальше работать в Компасе возможно, но gecko не загружается (отказывает весь html и не загружаются все справки), пока программа не будет перезапущена.
Comment 9 Константин Кондратюк 2009-04-21 13:23:00 MSD
А само падение по backtrace'у похоже на ошибку при встраивании wmp в страницу браузера:
http://bugs.etersoft.ru/show_bug.cgi?id=2033
Comment 10 Виталий Булгаков 2009-04-27 09:05:46 MSD
Тест на запуск азбуки из - под КОМПАС. Рядом с исполняемым файлом CHM.exe д.б. файл азбуки KOMPAS-3D.chm. После запуска CHM.exe выполнить Help - Tutor.
Comment 11 Виталий Булгаков 2009-04-27 09:06:26 MSD
Created attachment 1167 [details]
архив с тестом
Comment 12 Константин Кондратюк 2009-04-29 11:52:14 MSD
Причина проблемы в открытии файла - ошибка, возвращаемая в HtmlHelpW и последующее завершение её по условию (FAILED).

Ошибка на этапе открытия chm-файла, когда функция OpenCHM передаёт в chm_openW имя файла, тогда как на той стороне ожидается полный путь.
Перед вызовом chm_openW есть получение полного пути, поэтому нужно всего лишь указать его в параметрах.
Comment 13 Константин Кондратюк 2009-04-29 11:53:24 MSD
Патч, позволяющей Компасу вызывать справку 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
Comment 14 Константин Кондратюк 2009-04-29 12:06:00 MSD
Тем не менее остаётся проблема с работой теста. 

Тест формирует строку, в которой к имени файла присоединяется имя окна:
"C:\\chm\\Release\\KOMPAS-3D.chm>MyWindow"
После этого вызывается HtmlHelp. В windows это работает корректно, в wine - ошибка в открытии файла.

Проверил, проблема решается хаком вида
if wcschr(filename,'>') filename[0] = '\0';
Но дело в том, что сам Компас не использует путь такого вида, и Азбука открывается и без этой правки.
Comment 15 Константин Кондратюк 2009-04-29 16:23:37 MSD
Вызов справки работает. Дальнейшие вопросы корректности отображения и устойчивости к падениям - тема для отдельной баги.
Comment 16 Денис Баранов 2009-07-27 13:06:09 MSD
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
Comment 17 Константин Кондратюк 2009-09-01 15:48:08 MSD
Вот причина:

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.

Кажется, из оригинального кода исчезла переменная, которую я использовал, в итоге патч временно отключили до исправления.
Comment 18 Константин Кондратюк 2009-09-02 15:42:31 MSD
Теперь для открытия файла использовалась другая переменная, которую нужно "почистить" для того, чтобы она содержала путь к файлу.

Патч в рассылке:
http://lists.etersoft.ru/pipermail/wine-patches/2009-September/000628.html
Comment 19 Денис Баранов 2010-03-30 19:08:48 MSD
Проблема снова присутствует, запускается через встроенный просмотрщик.
WINE@Etersoft CAD eter8/eter5
Comment 20 Константин Кондратюк 2010-04-06 08:40:57 MSD
Денис, так вся бага и была в том, что справка не открывалась. Открывается - значит всё работает в рамках этой задачи! ;)

Наверное, ты хотел переоткрыть багу про внешний просмотрщик?
Comment 21 Константин Кондратюк 2010-04-21 13:29:26 MSD
Any comments? :)
Comment 22 Константин Кондратюк 2011-09-02 20:08:24 MSK
Нужно проверить, что всё в порядке, и закрыть.
Comment 23 Svetlana Zhukova 2011-09-06 09:56:29 MSK
одну из 2х одинаковых задач закрою.

*** This bug has been marked as a duplicate of bug 7475 ***