How to setup the Encyclopedia

Far Manager

How to setup the Encyclopedia

Microsoft Visual C++ - MSDN

It is possible to incorporate the Encyclopedia into the MSDN library if you have one installed on your computer to be able to use Encyclopedia along with MSDN help. Serg Bormant (2:5027/12.80@fidonet) sent us a «GuideLine»; here it is (with my remarks, ruiv).

    While looking through the encyclopedia (FarEncyclopedia.en.chm), I've discovered a
topic about its setup.
..
    Separate .chm and .chi are good only if you keep the text on removable media
while having index (.chi) set up. But it's meaningless for Encyclopedia taking
into account its small size. A "monolithic" .chm also contains an index, so it's
easy to link it.

    To incorporate it into the MSDN collection you must consider that *.col describes
the collection definition (logical structure) on the sections (Folders) level, while
the physical file locations are kept in the hhcolreg.dat file.

    Here's the method of FarEncyclopedia.en.chm incorporation. I don't claim it to be exactly
correct :), but it works well...

    0. Input data...
Windows 2000 English, Visual Studio 6 SP3, MSDN Jan 2000, HTML Help Control 4.74.8702

Encyclopedia:
D:\Program Files\Far\PlugDoc\
  FarEncyclopedia.en.chm

Collection (this path you can find in the MSDN desktop link):
D:\Program Files\mvs\MSDN\2000JAN\1033\
  MSDN000.COL

Collection registration:
D:\Documents and Settings\All Users\Application Data\Microsoft\HTML Help\
  hhcolreg.dat

    1. Do as following:
    1.1. Unload MSDN Library...
    1.2. Find all *.col in the MSDN folder (it's msdn000.col in my case), and back them up
(same for every other file we change). Then before Folders closing tag </Folders> add
the following (added strings are marked with ">"):

 <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>

    Pay attention to the tags <collectionnum.../> (collection number) and
<FolderOrder.../> (number of folder within the level).
    (You will need collectionnum when changing next file because FolderOrder
depends on the location where you've inserted the fragment. Its number must be
greater than the one specified in the previous Folder section)

    1.3. Find collection registration file (there can be several files of that type,
we need the one where Encyclopedia collection is defined in the <Collections>
section), and add the file information to the <DocCompilations> section:
(This file (hhcolreg.dat) was in the d:\winnt\help\ directory on my computer)

 <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\FarEncyclopedia.en.chm"/>
>    <IndexLocation value="D:\Program Files\Far\PlugDoc\FarEncyclopedia.en.chm"/>
>    <QueryLocation value=""/>
>    <LocationRef value=""/>
>    <Version value=0/>
>    <LastPromptedVersion value=0/>
>    <TitleSampleLocation value=""/>
>    <TitleQueryLocation value=""/>
>    <SupportsMerge value=0/>
>  </LocationHistory>
></DocCompilation>
>


 </DocCompilations>
 </HTMLHelpDocInfo>
 </XML>

    The collection number here is <ColNum.../> (This is the number that you
noted while changing collection, see 1.2)

    1.4. Load MSDN. You should see a new topic under Contents. Click on the Index tab,
wait until the new index is created (it's a long process), and check the operability
by typing any keyword, e.g. AF_AVPRESENT.

    2. If you didn't succeed, then you made a mistake somewhere :(, so try to return
to the first step and repeat from the beginning :)

Serg Bormant, 2:5027/12.80@fidonet, [email protected], [email protected]

Yours faithfully, Serg Bormant                           June 29, 2000

--- GoldED+/W32 1.1.4.5
 * Origin: To be, to be, two beer: without questions... (2:5027/12.80)

The only drawback of this method is that MSDN indexes should be rebuilt every time the Encyclopedia is changed - i.e. after a new version has been installed (it takes 3-5 minutes). But now you have an integrated FAR Manager Plug-in API help along with MSDN help system.

Note that incorporated Encyclopedia supports cross-links to the MSDN topics.

 
The latest amendment:

Date: Wed, 26 Sep 2001 21:40:15 +0400
From: Dennis Trachuk <[email protected]>
Subject: MSDN Integration

Hello All!

Article about HTML-help files integration into MSDN
http://codeproject.com/winhelp/msdnintegrator.asp
(local copy of this article is available)

and the best thing, a utility for doing that is available:
http://codeproject.com/winhelp/MSDNIntegrator/MSDNIntegrator.zip
and the same, but with sources:
http://codeproject.com/winhelp/MSDNIntegrator/MSDNIntegrator_src.zip

FAR Manager

If you want to write your programs using FAR built-in editor, take advantage of the "Active-Help" plug-in. It extends the editor's capability to context-sensitive help invocation...

It works with HLP as well as with CHM files. Also, you can specify your MSDN collection (MSDNVS98.COL) path in plug-in settings and it will use MSDN collection!