Skip to content


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
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
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)