В случае, если у вас установлена библиотека msdn, можно включить Энциклопедию и туда - таким образом можно будет писать в ide, и пользоваться одновременно и нашими и vc-шными хелпами. Помог нам в этом Serg Bormant (2:5027/12.80@fidonet) - здесь же мы и приводим написанный им небольшой «GuideLine» (с моими замечаниями, ruiv).
Просматривая энциклопедию (pluginsr.chm), обнаружил раздел,
посвященный ее установке.
...
Раздельные .chm и .chi хороши только тем, что можно
установить индекс (.chi) отдельно, а текст хранить на сменном
носителе. Для энциклопедии, учитывая ее размер (242641 байт),
это не актуально. "Монолитный" .chm также содержит в себе индекс,
поэтому подключить его не составит труда.
Для подключения в коллекцию надо учитывать следующие моменты.
*.col описывает представление (логическую структуру) коллекции на
уровне разделов/подразделов (Folders). Сведения о физическом
расположении файлов хранятся отдельно в файле hhcolreg.dat.
Вот полученный методом "научного тыка" способ подключения
pluginsr.chm, не претендующий на абсолютную идеологическую
правильность :), но тем не менее успешно работающий...
0. Исходные...
w2k eng, vc6 sp3, msdn jan-2000, HTML Help Control 4.74.8702
Энциклопедия:
D:\Program Files\Far\PlugDoc\
pluginsr.chm
Коллекция (этот путь можно "подсмотреть" в ярлыке к MSDN):
D:\Program Files\mvs\MSDN\2000JAN\1033\
MSDN000.COL
Регистрация коллекций:
D:\Documents and Settings\All Users\Application Data\Microsoft\HTML Help\
hhcolreg.dat
1. Действуем:
1.1. MSDN не загружен...
1.2. В каталоге с MSDN ищем файл *.col (в моем случае это
msdn000.col), делаем его резервную копию (как и всех изменяемых
нами файлов). Идем в конец и перед последним тэгом </Folders>
добавим (добавленные строчки помечены ">"):
<XML>
<HTMLHelpCollection>
<collectionnum value=10003/>
...
<Folders>
<Folder>
<TitleString value="MSDN Library - January 2000"/>
<FolderOrder value=1/>
...
</Folder>
>
><Folder>
> <TitleString value="Far PlugRinG Help Project"/>
><FolderOrder value=2/>
> <Folder>
> <TitleString value="=pluginsr"/>
> <FolderOrder value=1/>
> <LangId value=1033/>
> </Folder>
></Folder>
>
</Folders>
</HTMLHelpCollection>
</XML>
Обратите внимание на тэги <collectionnum.../> -- номер
коллекции и <FolderOrder.../> -- порядковый номер папки внутри
уровня.
(collectionnum вам будет нужен при изменении следующего
файла, а вот FolderOrder зависит от того, куда вы вставляете
кусок. Его номер должен быть больше указанного в последнем
разделе Folder)
1.3. Ищем файл регистрации коллекций (их может быть
несколько, нас интересует тот, в котором в разделе
<Collections> прописана наша коллекция, и добавим информацию о
файле в раздел <DocCompilations>:
(В моем случае этот файл (hhcolreg.dat) находился в каталоге d:\winnt\help\)
<XML>
<HTMLHelpDocInfo>
...
<Collections>
...
<Collection>
<ColNum value=10003/>
<ColName value="D:\Program Files\MVS\MSDN\2000JAN\1033\MSDN000.COL"/>
</Collection>
</Collections>
<Locations>
...
</Locations>
<DocCompilations>
<DocCompilation>
...
</DocCompilation>
>
><DocCompilation>
><DocCompId value="pluginsr"/>
> <DocCompLanguage value=1033/>
> <LocationHistory>
> <ColNum value=10003/>
> <TitleLocation value="D:\Program Files\Far\PlugDoc\pluginsr.chm"/>
> <IndexLocation value="D:\Program Files\Far\PlugDoc\pluginsr.chm"/>
> <QueryLocation value=""/>
> <LocationRef value=""/>
> <Version value=0/>
> <LastPromptedVersion value=0/>
> <TitleSampleLocation value=""/>
> <TitleQueryLocation value=""/>
> <SupportsMerge value=0/>
> </LocationHistory>
></DocCompilation>
>
</DocCompilations>
</HTMLHelpDocInfo>
</XML>
Здесь номер коллекции -- <ColNum.../>
(Это именно тот номер, который вы запомнили в первом файле)
1.4. Грузим MSDN, в Contents наблюдаем новый раздел, щелкаем
по вкладке Index, дожидаемся, пока новый индекс будет создан
(процесс длителен !), проверяем работоспособность, набрав любое
ключевое слово, например AF_AVPRESENT.
2. Если не получилось, значит где-то допустили ошибку :(,
попробуйте все вернуть в исходное состояние и повторить сначала :)
Serg Bormant, 2:5027/12.80@fidonet, bormant@chat.ru, bormant@netcity.ru
С уважением, Serg Bormant 29 июня 2000
--- GoldED+/W32 1.1.4.5
* Origin: To be, to be, two beer: without questions... (2:5027/12.80)
Единственным недостатком этого метода является то, что индексы в msdn будут перестраиваться после каждого изменения Энциклопедии - то есть после каждого выпуска новой версии - занимает это 3-5 минут. Зато теперь у вас будут интегрированные хелпы по Plugin API FAR Manager и Win32 API.
Заметьте также, что такая интегрированная энциклопедия поддерживает линки на win32-топики из того же msdn. Соответственно hlp версия энциклопедии активно линкуется с win32.hlp. Так что совсем малина.
И совсем свежее уточнение:
Date: Wed, 26 Sep 2001 21:40:15 +0400 From: Dennis Trachuk <dennis.trachuk@nm.ru> Subject: MSDN Integration Hello All! стататейка по интеграции хтмл-хелп файлов в MSDN http://codeproject.com/winhelp/msdnintegrator.asp (локальная копия статьи прилагается) а самое приятное, что есть утиль для проведения этого безобразия: http://codeproject.com/winhelp/MSDNIntegrator/MSDNIntegrator.zip ну и то же самое только с исходниками: http://codeproject.com/winhelp/MSDNIntegrator/MSDNIntegrator_src.zip
Если есть проблемы с MSDN ("упал", переехал в другое место, etc.), то возможно статья "Восстановление MSDN" (by Sergey Creedence) поможет справиться с некоторыми проблемами.
А работает он, кстати(!), как с hlp так и с chm файлами. Более того, вы можете указать ему путь к вашей msdn-коллекции (MSDNVS98.COL) - и будет загружаться она!