Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Вниз

Как отобразить CHM-справку?   Найти похожие ветки 

 
GRF   (2004-01-19 20:37) [0]

Подскажите пожалуйста как отобразить справку в формате CHM?
Прочитал где-то, что нужно подключить ActiveX-компонент HHOPEN.OCX, но у меня такого не наблюдается. Как быть?


 
Dred2k   (2004-01-19 21:26) [1]

Подключать нужно HHCtrl.OCX
Адаптаций API - масса. Вот одна из неплохих (под D7 немного подправишь) - http://www.torry.net/vcl/vcltools/help/ukhtmlhlp.zip


 
y-soft   (2004-01-19 21:42) [2]

Вообще-то hhctrl.ocx

Путь определяется так:

1. Проверяется значение в реестре CLSID\{adb880a6-d8ff-11cf-9377-00aa003b7a11}\InprocServer32

2. Проверяется, есть ли такой файл по указанному пути

Далее:

3. Попытка загрузить библиотеку
4. Если удачно, то получаются адрес функции HtmlHelpA (для ANSI-строк) или HtmlHelpW (для Unicode)

Но и этого еще недостаточно

5. Application.HelpFile присваивается значение файла CHM
6. Подключается свой обработчик Application.OnHelp, в котором вызовы WinHelp транслируются в вызовы HtmlHelp

Ну и последнее:

7. В файле CHM должны быть определены и скомпилированы идентификаторы HelpContext (обычно подключают к проекту справки определения констант Aliases.h и определения идентификаторов для этих констант Map.h), иначе о контекстной справке можно забыть...

В общем описать подробно требуется много времени и места...


 
y-soft   (2004-01-19 22:00) [3]

Дополнение

Вообще правилнее искать сначала ключ в реестре HKey_Classes_Root\Internet.HHCtrl, а уже потом прочитать в нем значение CLSID и далее п.1

Т.к. надеяться, что Microsoft не изменит когда-нибудь название файла илм CLSID не стоит :) К тому же существуют версии от альтернативных разработчиков...


 
Dred2k   (2004-01-19 22:12) [4]

> y-soft © (19.01.04 22:00) [3]

Возможно, но кто поручится за название ключа в реестре. Или даже всего пути?

При всем уважении, Вам не кажется, что подобный подход и паранойя - нечто очень близкое? ;)
LoadLibrary("HHCtrl.OCX") вполне достаточно. Иначе - Microsoft в урну.


 
Dred2k   (2004-01-19 22:13) [5]

... У сторонних разработчиков - свои модули и ключи в реестре.


 
y-soft   (2004-01-19 22:20) [6]

>Dred2k © (19.01.04 22:12) [4]

Это не паранойя, а прямое следствие идеологии Component Object Model - интерфейс по правилам ищется по ProgID, а не по наименованию файла или идентификатору класса (см. например как реализовывались версии DirectX). Делается это из-за ограничений в наследовании интерфейсов. Вполне реально можно столкнуться с тем, что в будущих/альтернативных версиях HtmlHelp справка перестанет отображаться...

Хотя в большинстве реализаций под Delphi и C делают примерно так, как Вы написали (правда по CLSID ищут) - не заботятся о будущей совместимости :(

А всего-то надо написать одну лишнюю строчку кода...


 
GRF   (2004-01-20 00:12) [7]

Всем большое спасибо. Буду разбираться.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-2093
denis24
2004-01-19 16:22
2004.02.02
кодировка в listbox


4-2430
Bers
2003-11-24 11:14
2004.02.02
Разница в написании - доступ к Реестру.


3-1981
keymaster
2004-01-06 16:20
2004.02.02
Обращение к 2м базам в 1 запросе


1-2216
TTT
2004-01-20 17:26
2004.02.02
fsMDIForm с компонентами BitBtn


1-2157
lego
2004-01-21 15:44
2004.02.02
Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский