CHM was introduced as the successor to Microsoft WinHelp with the release of Windows 95 OSR 2.5. Within the Windows NT family, the CHM file support is introduced in Windows NT 4.012 and is still supported in Windows 11.3
Microsoft has announced that they do not intend to add any new features to HTML Help.4
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.56
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.7
CHM files support the following features:
The Microsoft Reader's .lit file format is a modification of the HTML Help CHM format. CHM files are sometimes used for e-books.9
In addition to Microsoft Windows, the following apps support CHM:
invent.kde.org/graphics/okular
calibre on GitHub
sumatrapdf on GitHub
Chmox on SourceForge
Microsoft's HTML Help Workshop generates CHM files by instructions stored in a HTML Help project file, which bears a .HHP file name extension and is a specialized form of INI file.10
Lazarus and Free Pascal provide a doxygen-like tool for CHM generation and a separate command-line compiler called chmcmd.
The official viewer in Microsoft Windows (hh.exe) can decompile a CHM file. So can Microsoft HTML Help Workshop and 7-Zip. Calibre and arCHMage can convert CHM into another format.
"Microsoft Security Bulletin MS02-055 - Critical". docs.microsoft.com. Retrieved 2020-10-29. https://docs.microsoft.com/en-us/security-updates/securitybulletins/2002/ms02-055 ↩
"Full Disclosure: HtmlHelp - .CHM File Heap Overflow". seclists.org. Retrieved 2020-10-29. https://seclists.org/fulldisclosure/2004/Jul/679 ↩
"[SOLVED] Windows 10 CHM Help Files showing up blank. - Spiceworks". community.spiceworks.com. Retrieved 2020-10-29. https://community.spiceworks.com/topic/1961503-solved-windows-10-chm-help-files-showing-up-blank ↩
"Microsoft HTML Help Downloads". Microsoft. Retrieved 6 March 2012. http://msdn.microsoft.com/en-us/library/ms669985 ↩
Wise, Paul; Wing, Jed (2005). "Unofficial (Preliminary) HTML Help Specification". Retrieved 15 August 2012. http://www.nongnu.org/chmspec/latest/index.html ↩
Palade, Alexandru (2005). "Archive::Chm". Retrieved 22 July 2014. https://metacpan.org/pod/Archive::Chm ↩
"Virus Bulletin :: Chamber of horrors". www.virusbulletin.com. Retrieved 2022-01-05. https://www.virusbulletin.com/virusbulletin/2006/10/chamber-horrors/ ↩
"INFO: Limited Unicode Support in HTML Help". Microsoft. 11 April 2001. Archived from the original on 13 March 2016. Retrieved 17 March 2012. https://web.archive.org/web/20160313203857/https://support.microsoft.com/en-us/kb/269766/ ↩
Salomon, David; Motta, Giovanni; Bryant, David (CON) (2009). Handbook of Data Compression (5th, illustrated ed.). Springer. ISBN 978-1-84882-902-2. 978-1-84882-902-2 ↩
Wise, Paul; Wing, Jed (2005). "Unofficial (Preliminary) HTML Help Specification INI formats". Retrieved 1 February 2018. http://chmspec.nongnu.org/latest/INI.html#HHP ↩