HTMLHelp
The CHM (Compiled Help Modules) file format is used by Microsoft HTMLHelp, the standard help system for the Windows platform. A CHM file is a compilation of HTML documents and other data, such as images and JavaScript, that are compressed into a single CHM file. CHM files contain a number of features described in the specifications and essentially include a table of contents, index of keywords and a full-text search function.
Microsoft HTMLHelp Workshop with the associated help window open |
HTMLHelp 1.x replaced the WinHelp help system used under Windows 3.x and has been delivered since Internet Explorer version 4 since 1997. Users must have Internet Explorer 4.0 or a higher version or runtime environment installed in order to view HTMLHelp files.
We have listed the previous development of Microsoft help systems for you in the History. WinHelp was derived from files in RTF format while HTMLHelp uses the flexibility of Hypertext Markup Language (HTML) and ActiveX controls.
With HTMLHelp you can compress an entire website into a single file (CHM) with a similar compression ratio to a ZIP file, while still being able to view and navigate the content.
Help History
Version | Date | Description |
---|---|---|
QuickHelp | 1988 | Ralph Walden joined MS in 1987 and wrote a help system for MS DOS called QuickHelp. Ralph was also primarily responsible for WinHelp and HTML Help 1.x. Ralph left MS early 1998 and formed KeyWorks with Cheryl Lockett Zubak of Work Write, Inc. KeyWorks provides many quality must-have help tools, most of which are free. |
WinHelp (.hlp) | 1990 | WinHelp 1.0 is shipped with Windows 3.0. |
WinHelp 95 (.hlp) | 1995 | WinHelp 4.0 is shipped with Windows 95 / Windows NT 3.51. |
HTML Help 1.x (.chm) | 1997 | HH 1.x is shipped with IE4 (see full history below). MS also use HTML Help to create Help collections for MSDN and Visual Studio 6 help. MS have never published the documentation for HH Collections. |
MS Help 2.x (.hxs) | 2001-2007 | MS Help 2.x is the help system that ships with Visual Studio 2002/2003/2005/2008. Although originally slated as the next help system for the masses, MS H2 authoring is now only used by VStudio integrators. |
AP Help (.h1s) | 2007 | Assistance Platform help is the help system for Windows Vista and some Office versions. |
Help Viewer (.mshc) | 2010-2013+ | MS Help Viewer is the help system that ships with Visual Studio 2010/2012/2013 etc. It is also the help system for Windows 8 Operating System. |
WinHelp vs. HTMLHelp files
WinHelp | HTMLHelp | Description |
---|---|---|
.hlp | .chm | Main Help File. |
.hpj | .hhp | Project file. |
.cnt | .hhc | Table Of Contents file. HHC is compiled into the CHM file. |
.hhk | Index file. HHK is compiled into the CHM file. | |
hcw.exe | hhw.exe | Help Workshop. Free basic authoring tool from MS. Earlier versions of hcw are hc31, hc, etc. |
winhelp.exe | hh.exe | Launches the help file. HH.EXE is just a small stub that calls the HTML Help API. |
hcrtf.exe | hhc.exe | Command Line Compiler. Hcrtf.exe isn't a console program, but it does take command line parameters and can be run from a DOS prompt. |
.rtf | .htm, .html | HTML Help is HTML based while WinHelp is RTF based. |
.bmp .dib .wmf .shg | .jpg .gif | HTML Help uses HTML document graphics. |
.gid | .chw hh.dat | The .GID file stores merged keywords (.CHW) and position/preferences information (hh.dat). |
.fts .ftg | With HTML Help FTS information is stored inside the CHM | |
.ann .bmk | hh.dat | WinHelp run time files for storing annotations and bookmarks. HTML Help 1.2 does not yet offer annotations, while favorites are stored in HH.DAT. |
HTMLHelp version info
Version | hhctrl.ocx | itss.dll | itircl.dll | hh.exe |
---|---|---|---|---|
HH 1.2 | 4.73.8252.0 | 4.72.8084.0 | 4.72.7276.0 | 4.73.8252 |
HH1.21 | 4.73.8412 | 4.72.8084.0 | 4.72.7276.0 | 4.73.8412 |
HH1.21a | 4.73.8474 | 4.72.8084.0 | 4.72.7276.0 | 4.73.8474 |
HH1.22 | 4.73.8561 | 4.72.8084.0 | 4.72.7276.0 | 4.73.8561 |
HH1.3 | 4.74.8702 | 4.72.8085.0 | 4.72.7277.0 | 4.74.8702 |
HH1.31 | 4.74.8793 | 4.72.8085.0 | 4.72.7277.0 | 4.74.8793 |
HH1.32 | 4.74.8875 | 4.72.8085.0 | 4.72.7277.0 | 4.74.8875 |
HH1.33 | 4.74.9273 | 4.72.8085.0 | 4.72.7277.0 | 4.74.9273 |
HH1.4 | 5.2.3664.0 | 5.2.3644.0 | 5.2.3644.0 | 5.2.3644.0 |
HH1.4a | 5.2.3669.0 | 5.2.3644.0 | 5.2.3644.0 | 5.2.3644.0 |
HH1.4b | 5.2.3718.0 | 5.2.3644.0 | 5.2.3644.0 | 5.2.3644.0 |
HH1.4c | 5.2.3735.x | 5.2.3644.0 | 5.2.3644.0 | 5.2.3644.0 |
HH1.4d | 5.2.3735.x | 5.2.3790.185 | 5.2.3790.80 | 5.2.3644.0 |
HH XP SP2 | 5.2.3790.1194 | 5.2.3790.1221 | 5.2.3790.1159 | 5.2.3790.1159 |
** | ** |
hh.exe
is not usually changed except for making the version number the same as Hhctrl.ocx.
Later versions **
of HH are difficult to list since build numbers different between operation systems.
The version numbers are a bit of a mess. There is a version of HTMLHelp 1.3. The Microsoft website speaks to a Microsoft HTMLHelp 1.4 version.
Can anyone please explain what the current version is?
The latest version of the HTMLHelp Workshop itself is 1.31. The 1.4 version number on the download package refers to the viewer component, but even that is out of date now. More recent updates to the viewer have been security updates to Windows, so if your computer is anywhere near up-to-date with security patches, you already have a newer version of the viewer installed--and that is the source of the message saying you already have a newer version. The message refers to the included viewer component, not the Workshop itself.
All those 1.x version numbers are the external version numbers that Microsoft used to make it easy to distinguish one package from the next. The version numbers you see in Help > About are file version numbers of the various components, which bear no relation to the package version numbers.
The heart of HTML Help (runtime) is hhctrl.ocx and the version number was 1.3 for many years. It went 1.4 when Windows XP SP1 was released. Now because its part of the Windows OS, in Vista it is a version now 6.0 same as Vista OS or 10.0 as Windows 10.
When you start the program and click Help > About you see a version of 4.74. Now what you are seeing is the Compiler DLL version (HHA.DLL). This is not part of the Windows OS. It is a separate download and you get it when you download and install HH Workshop (htmlhelp.exe). All authoring programs use HHA.DLL to compile to CHM (MS HTML Help 1.x Compiler (HHA.DLL), current Version = 4.74.8702.0).
Now the htmlhelp.exe (Workshop install) actually contains hhupd.exe (runtime install). At the end of Workshop install it runs hhupd.exe to update the runtime files HHCTRL.OCX but this does nothing these days since HHCTRL.OCX is now part of the Windows OS and can only be updated usuing HotFixes and Service packs. So you just get the message "Already have newer version". Just ignore this message.
Microsoft HTMLHelp Workshop with opened version info |
HTMLHelp Runtime components
Filename | Description |
---|---|
hhctrl.ocx | Provides access to all main HH functions and services. In HH 1.3 we now have all language specific resources moved out into separate 28 language DLLs. Special Note: The default language, English, is always read from hhctrl.ocx, not from the English language DLL. This make swapping languages on English NT4 & Win9x systems almost impossible. |
itss.dll | The itss.dll file handles the its: and ms-its: pluggable protocols along with the hard-wired mk:@MSITStore protocol. It is also used for both compressing and decompressing files -- that's either done automatically via the three protocols (decompressing) or via the IStorage interface that itss supports (both compression and decompression). |
itircl.dll | Underlying full-text search |
hh.exe | Windows uses hh.exe to open CHM files. It is installed to the windows directory. |
hhctrlui.dll | 28 language specific resource DLLs (>= HH1.3 See more below) |