Microsoft Compiled HTML Help is a Microsoft proprietary online help format, consisting of a collection of HTML pages, an index and other navigation tools. The files are compressed and deployed in a binary format with the extension .CHM, for Compiled HTML. The format is often used for software documentation.
Filename extension | .chm |
---|---|
Internet media type | application/vnd.ms-htmlhelp[1] |
Developed by | Microsoft |
Initial release | 1997 |
Latest release | 1.4[2] |
Extended to | .lit |
Developer(s) | Microsoft |
---|---|
Operating system | Microsoft Windows |
Predecessor | Microsoft WinHelp |
Successor | Microsoft Help 2 |
Type | Help system |
It was introduced as the successor to Microsoft WinHelp with the release of Windows 95 OSR 2.5[3] and consequently, Windows 98. Within the Windows NT family, the CHM file support is introduced in Windows NT 4.0[4][5][6] and is still supported in Windows 11.[7] Although the format was designed by Microsoft, it has been successfully reverse-engineered and is now supported in many document viewer applications.
History
Month | Year | Description |
---|---|---|
February | 1996 | Microsoft announces plans to stop development of WinHelp and start development on HTML Help. |
August | 1997 | HTML Help 1.0 (HH 1.0) is released with Internet Explorer 4. |
February | 1998 | HTML Help 1.1a ships with Windows 98. |
January | 2000 | HTML Help 1.3 ships with Windows 2000. |
July | HTML Help 1.32 releases with Internet Explorer 5.5 and Windows Me. | |
October | 2001 | HTML Help 1.33 releases with Internet Explorer 6 and Windows XP. |
March | At the WritersUA (formerly WinWriters) conference, Microsoft announces plans for a new help platform, Help 2, which is also HTML based. | |
January | 2003 | Microsoft decides not to release Microsoft Help 2 as a general Help platform. |
Microsoft has announced that they do not intend to add any new features to HTML Help.[8]
File format
Help is delivered as a binary file with the .chm extension. It contains a set of HTML files, a hyperlinked table of contents, and an index file. The file format has been reverse-engineered and documentation of it is freely available.[9][10]
The file starts with bytes "ITSF" (in ASCII), for "Info-Tech Storage Format", which is the internal name given by Microsoft to the generic storage file format used for CHM files.[11]
CHM files support the following features:
Use in Windows applications
The Microsoft Reader's .lit file format is a modification of the HTML Help CHM format. CHM files are sometimes used for e-books.[13]
Sumatra PDF supports viewing CHM documents since version 1.9.
Various applications, such as HTML Help Workshop and 7-Zip can decompile CHM files. The hh.exe utility on Windows and the extract_chmLib utility (a component of chmlib) on Linux can also decompile CHM files.
Microsoft's HTML Help Workshop and Compiler generate CHM files by instructions stored in a HTML Help project. The file name of such a project has the extension .HHP and the file is just a text with the INI file format.[14]
The Free Pascal project has a compiler (chmcmd) that can create CHM files in a multiplatform way.
Use in non-Windows applications
Read support:
- GTK: GnoCHM on SourceForge, CHMsee, chmviewkit
- Qt: Okular, kchmviewer, KCHM on SourceForge
- Java: CHMPane on SourceForge
- iOS: CHMate Neue, iChm Archived 2018-01-21 at the Wayback Machine, ChmPlus, ReadCHM Archived 2014-03-23 at the Wayback Machine
- Android: KingReader[permanent dead link], Chm Reader, iReader
- Mac OS X: iChm Archived 2018-01-21 at the Wayback Machine (Discontinued), ChmPlus (Discontinued), CHMox(PowerPC apps no longer supported), ArCHMock (Discontinued), CHM to EPUB Archived 2019-03-29 at the Wayback Machine (Discontinued), Clearview Reader
- Other / Cross-platform: xCHM, arCHMage on SourceForge, DisplayCHM
- Amiga: libmspack on Aminet
Read/write support:
- Lazarus (IDE)/Free Pascal (for a doxygen like tool, a separate command-line compiler in 2.6.0+, and a simple viewer in Lazarus)
See also
References
External links
- HTML Help Web Page on MSDN
- Microsoft Help 2 Reference (part of Visual Studio SDK for VS7.1 and VS8.0)
- History of HTML Help
- Unofficial (Preliminary) HTML Help Specification (the linked ITSF specification has been moved to the Russotto.net domain)