How to call CHMs using Map IDs.
Context Sensitive Help is used so that the user is taken to a specific topic in the help based on where they are in the program being used. There are various ways of calling webhelp but for CHMs, there is just one method. Map IDs are assigned to each topic that will be called, which is not necessarily all the topics as some may only need to be called from other topics or independently from the TOC, the search or the index. The link between a topic and a map id is created in a .h file.
The first thing you need to do is agree with the developer(s) who is going to create the .h file and agree a means of knowing which program form should link to which topic. (By "program form" I mean the form in which the developer creates the dialog the user sees)
In every RoboHelp project, an empty .h file is created named BSSCdefault.h. BSSC stands for Blue Sky Software Corporation, the organisation that took over RoboHelp from its original developer in the days RoboHelp was simply a Word add-on. It's fine to use that or you can create your own with a name that reflects what is in that h file. The default form is found with Context Sensitive Help in RoboHelp's Output Setup pod.
Double click the BSSCdefault.h file to open this dialog.
The Options button gives you these extra options.
By far the simplest method is to use the Auto-map button.
You simply highlight the topic(s) to which you want to assign a map id and click Auto-map.
Note that this method will use Topic Titles or the File Name as the Map ID name accoring to how Project Manager has been set to show topics. If the result is not quite what you want, you can edit each line as described in Method 2.
Click the Create Map ID button (first button)...
...and enter the required details. RoboHelp automatically offers the next number in sequence but you can change it.
That has created the Map ID name and Map Number. Note that spaces are not allowed in the Map ID name.
The next step is to double click one of the topics on the right to assign it. There seems to be a bug here as in theory you should click the Assign Button but that is not enabled until at least one map id has been created.
Repeat until you have created all the map ids required. When you have finished, the Map IDs panel will look something like this.
After creating the CHM, you give that to the developers and you also give them the .h file that you will find in the root of your project.
What the developers do is enter the relevant topic id into the properties of their forms so that when the user clicks the Help icon, the CHM displays the required topic.
When the CHM is generated, the information in the .h file is built into it.
In addition to the .h file, RoboHelp also creates a blank ali (alias) file in every new project. To start with it is blank but when you generate the CHM, RoboHelp creates entries in the ali file and that too is built into the CHM. It contains the map name (the topic title or the name you assigned along with the file name for that topic).
By using these files built into the CHM, the CHM viewer knows which topic to serve up.
Right click the BSSCdefault.h file...
and import the file supplied.
The developer will already have built the map id into their program so all they need is the compiled CHM.
If you find the information and tutorials on my site save you time figuring it out for yourself and help improve what you produce, please consider making a small donation.
Changes to this page
12 Aug 2017