Как установить этот файл

Visual C++ - MSDN

В случае, если у вас установлена библиотека 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) поможет справиться с некоторыми проблемами.

FAR Manager

Если вы любите "верстать" свои программы, используя редактор FAR`а, то воспользуйтесь плагином "Active-Help". Этот плагин добавляет к редактору возможность вызвать контекстно-зависимую помощь...

А работает он, кстати(!), как с hlp так и с chm файлами. Более того, вы можете указать ему путь к вашей msdn-коллекции (MSDNVS98.COL) - и будет загружаться она!