# 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, bormant@chat.ru, bormant@netcity.ru

    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 <dennis.trachuk@nm.ru>
    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!