This post will show you how to create a CHM that will wrap other
CHMs and show them in one place. We used this approach when we
created the RadControls for WinForms documentation. We will use it
for the new Prometheus documentation (coming with Q1 2008).
Prerequisites
FAR tool
Nothing more to add to what I said here
Project Wizard
HTML file – Well, it’s not
mandatory to have a HTML file in the wrapper. I did it without such
file when I created the WinForms wrapper. However I recommend
having such file. It would make your life easier. So create a
simple HTML file; it could be Introduction, Overview, or any other
kind of Welcome topic.
1. Start the new project
wizard and

2. Set the project file
name. Nothing special here. The project filename does not necessary
coincide with the CHM file name, but unless you have a very special
reason to make those different, I would recommend setting a
meaningful name for the project and same name for the CHM.

3. Let wizard search for web
files. It will find the HTML file that I advised you to create
earlier.

3.1. The wizard will find all web files in the
project folder, including images, stylesheets, etc. Include those
only if you need them. Otherwise remove them from the list.
The important thing here is to set the HTML file as default and
home page (note the red rectangle in the upper right corner)

4. Check the items that you
need. Standard CHM files include all of these features, so
it’s better to check these all.

4.1. At this step
you need to create the TOC. Just click the Create TOC button and
the wizard will create the HHC file for you. You don’t need
to edit the TOC at this point.

5. Set the window title (the
text that will appear in the title bar of the CHM) and the CHM file
name.

6. You don’t need to
compile the project at this point. Select the second option
(Advanced Project Editor) and Finish the wizard.

Advanced project editor
The wizard will open the project editor. In order your CHM
wrapper to be aware of the CHMs that it will wrap, you need to
specify those CHMs in the project editor.
You can have all the CHM in the same folder as the wrapper
(that’s how we are doing it for RadControls for ASP.NET) or
in a separate folder (that the case for our WinForms controls).

The last thing to do is to edit the Table of Contents(TOC) and
include the merged CHM files there. Open the TOC editor and include
all CHM files as TOC nodes. You need to fill the path to the CHM
file and the name of the TOC file for each CHM. In the general
case, the name of the TOC file will be the same as the CHM file
name. However that not mandatory and those two names may differ (as
it is in RadControls for ASP.NET).

The final step would be to compile the wrapper.
For your convenience I've prepared an archive with the project
files created in this post and a DOC file with the post itself. You
can download the ZIP from
here.