Viewing
After you generate HTML Help 1.x (.chm) documentation, you can view it by pressing Show Documentation button on compilation dialog.
Later, you can show the documentation if you go to output folder and start PROJECT_NAME.chm. Context helpIt is not possible to integrate contents, index and search of HTML Help 1.x documentation in Visual Studio. Instead, you must use MS Help Viewer in VS 2026/2022/2019/2017/2015/2013/2012/2010 or Microsoft Help 2 format in VS 2008/2005. But you can provide context help from your own editor or application. It's possible to open any topic in CHM by a keyword, for example:
For this to work, you need to generate CHM with an "extended" index. By default, VSdocman generates CHM with just a basic Index which is fully sufficient for use by humans. This means that it contains keywords for all code members in a short form. For example, for MyNamespace.Class1.Method1 method, there is Method1 keyword in the Index. This is fine, since when a user wants to find this method in the Index, he starts to type Method1 and not its full name MyNamespace.Class1.Method1. There are two advantages of this basic index - index is clear and not bloated with too many keywords and mainly, no CHW file is generated (see below). The disadvantage is that there are no keywords for code member full names and the code above will not work. If you don't plan to open particular topics in your CHM programmatically, we recommend to stay with the basic default index. The extended index differs from the basic index in that it contains also the full names of all code members. This has one consequence. To correctly sort and display such more complex index, the CHM runtime needs to create a special .CHW file with the index data. This file is automatically created the first time the Index in generated CHM file is accessed, e.g. viewed by a user. It has the same name as the CHM file and it is created in the same folder as CHM file. You need to remember this in your deployment scenarios, see below. To create the extended index, just set the Custom variable 3 to any non empty text, e.g. "use extended index". The chm_* output templates check this $CUSTOM-VAR3$ value and create the index accordingly. To create the basic index, keep the field empty. |
Deploying
To deploy your CHM documentation just copy it to the destination folder. Remember that there are security restrictions when a CHM file is placed in a network location. Moreover, when a CHM file is downloaded from Internet, Windows applies security protection too. You need to right-click on the file and select Properties. Press Unblock button in the section saying that the file came from another computer. Then you can open the file by pressing ENTER. As mentioned above, when you generate the extended index, a special .CHW file will be created at runtime. This may cause two potential problems. 1.Your installer installs the CHM file to a location that requires admin write privileges, for example Program Files. Then a user without admin rights opens the CHM and displays the Index. The help runtime will try to create CHW file in the protected location but it fails. 2.Your installer installs the CHM file and the CHW file is not a part of the installation. The CHW file will be created later by a user. When the product is uninstalled, the CHW file will not be deleted and it will prevent the parent directories from deletion. The solution to both problems is to pre-create the CHW file (just open the CHM and switch to Index) and include it in your installer. |
