Microsoft Compiled HTML Help: Difference between revisions

Content deleted Content added
WikiCleanerBot (talk | contribs)
m v2.04b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation)
Fixed the koreader url
 
(22 intermediate revisions by 18 users not shown)
Line 1:
{{Short description|Software help file format by Microsoft}}
{{refimprove|date=June 2011}}
{{Infobox file format
| name = Microsoft Compiled HTML Help
Line 24:
}}
{{Infobox software
| name = Microsoft Compiled HTML Help Executable
| other_names = <code>hh.exe</code>
| screenshot_size = 300px
| developer = [[Microsoft]]
| discontinued = yes
| replaces = [[Microsoft WinHelp]]
| replaced_by included with = [[Microsoft Help 2Windows]]
| operating systemreplaces = [[Microsoft WindowsWinHelp]]
| genrereplaced_by = =[[Microsoft Help system2]]
| genre = [[Help system]]
}}
'''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]].
 
'''Microsoft Compiled HTML Help''' ('''CHM''') 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. The format was intended to succeed [[Microsoft WinHelp]].
It was introduced as the successor to [[Microsoft WinHelp]] with the release of [[Windows 95#Internet_Explorer|Windows 95 OSR 2.5]] <ref>{{note|a}}since IE 4 is bundled with OSR 2.5, hence adding the CHM file support for the first time{{note|a}}</ref> and consequently, [[Windows 98]]. Within the Windows NT family, the CHM file support is introduced in [[Windows NT 4.0]]<ref>{{Cite web|url=https://docs.microsoft.com/en-us/security-updates/securitybulletins/2002/ms02-055|title=Microsoft Security Bulletin MS02-055 - Critical|website=docs.microsoft.com|language=en|access-date=2020-10-29}}</ref><ref>{{Cite web|url=https://seclists.org/fulldisclosure/2004/Jul/679|title=Full Disclosure: HtmlHelp - .CHM File Heap Overflow|website=seclists.org|language=en|access-date=2020-10-29}}</ref><ref>{{note|a}}The information available is scarce, but any VM installation of WinNT 4.0 appears to give .CHM file support out of the box. It seems like it wasn't introduced in Windows NT 3.51 due to NT 3.51 being intentionally limited to Internet Explorer 16-bit versions{{note|a}}</ref> and is still supported in [[Windows 10]].<ref>{{Cite web|url=https://community.spiceworks.com/topic/1961503-solved-windows-10-chm-help-files-showing-up-blank|title=[SOLVED] Windows 10 CHM Help Files showing up blank. - Spiceworks|website=community.spiceworks.com|language=en|access-date=2020-10-29}}</ref> Although the format was designed by Microsoft, it has been successfully [[Reverse engineering|reverse-engineered]] and is now supported in many document viewer applications.
 
Although the format was designed by Microsoft, it has been successfully [[Reverse engineering|reverse-engineered]] and is now supported by many document viewers.
 
==History==
CHM was introduced as the successor to [[Microsoft WinHelp]] with the release of [[Windows 95#Internet Explorer|Windows 95 OSR 2.5]]. Within the [[Windows NT family]], the CHM file support is introduced in [[Windows NT 4.0]]<ref>{{Cite web|url=https://docs.microsoft.com/en-us/security-updates/securitybulletins/2002/ms02-055|title=Microsoft Security Bulletin MS02-055 - Critical|website=docs.microsoft.com|language=en|access-date=2020-10-29}}</ref><ref>{{Cite web|url=https://seclists.org/fulldisclosure/2004/Jul/679|title=Full Disclosure: HtmlHelp - .CHM File Heap Overflow|website=seclists.org|language=en|access-date=2020-10-29}}</ref> and is still supported in [[Windows 11]].<ref>{{Cite web|url=https://community.spiceworks.com/topic/1961503-solved-windows-10-chm-help-files-showing-up-blank|title=[SOLVED] Windows 10 CHM Help Files showing up blank. - Spiceworks|website=community.spiceworks.com|language=en|access-date=2020-10-29}}</ref>
 
{| class="wikitable" border="1"
!Month
Line 76 ⟶ 80:
 
==File format==
Help is delivered as a binary file with the <code>.chm</code> extension. It contains a set of HTML files, a [[hyperlink]]ed table of contents, and an index file. The file format has been reverse-engineered and documentation of it is freely available.<ref>{{cite web |last=Wise |first=Paul |last2=Wing |first2=Jed |title=Unofficial (Preliminary) HTML Help Specification |url=http://www.nongnu.org/chmspec/latest/index.html |year=2005 |accessdate=15 August 2012 }}</ref><ref>{{cite web |last=Palade |first=Alexandru |title=Archive::Chm |url=https://metacpan.org/pod/Archive::Chm |year=2005 |accessdate=22 July 2014 }}</ref>
 
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.<ref>{{WhyCite web|datetitle=FebruaryVirus 2017Bulletin :: Chamber of horrors|url=https://www.virusbulletin.com/virusbulletin/2006/10/chamber-horrors/|access-date=2022-01-05|website=www.virusbulletin.com}}</ref>
 
CHM files support the following features:
Line 86 ⟶ 90:
* Extended character support, although it does not fully support [[Unicode]].<ref>{{cite web|title=INFO: Limited Unicode Support in HTML Help|url=http://support.microsoft.com/kb/269766/|publisher=Microsoft|date=11 April 2001|accessdate=17 March 2012|archive-url=https://web.archive.org/web/20160313203857/https://support.microsoft.com/en-us/kb/269766/|archive-date=13 March 2016}}</ref>
 
The [[Microsoft Reader]]'s .lit file format is a modification of the HTML Help CHM format. CHM files are sometimes used for e-books.<ref>{{cite book| title=Handbook of Data Compression
==Use in Windows applications==
| first1=David |last1=Salomon |first2=Giovanni |last2=Motta |first3=David (CON) |last3=Bryant
The [[Microsoft Reader]]'s .lit file format is a modification of the HTML Help CHM format. CHM files are sometimes used for e-books.<ref>Title Handbook of Data Compression
| edition = 5th, illustrated
Authors David Salomon, Giovanni Motta, David (CON) Bryant
| publisher=Springer
Edition 5, illustrated
Publisher| Springer,year = 2009
{{ISBN|1-84882-902-7}}, {{ISBN|isbn=978-1-84882-902-2}}
| url=https://archive.org/details/handbookofdataco0000salo
Length 1359 pages</ref>
| url-access=registration
}}</ref>
 
==Viewers==
[[Sumatra PDF]] supports viewing CHM documents since version 1.9.
In addition to Microsoft Windows, the following apps support CHM:
{| class="wikitable"
|+
!Name
!Operating system
!Website
!
|-
|[[Okular]]
|Windows, Linux, Unix-like
|{{URL|https://okular.kde.org/}}
{{URL|https://invent.kde.org/graphics/okular}}
|Uses <code>hh.exe</code> on Windows
|-
|[[Calibre (software)|Calibre]]
|Windows, macOs, Linux,
|{{URL|https://calibre-ebook.com/}}
{{GitHub|kovidgoyal|calibre}}
|
|-
|[[Sumatra PDF]]
|Windows
|{{URL|https://www.sumatrapdfreader.org/}}
{{GitHub|sumatrapdfreader|sumatrapdf}}
|
|-
|GnoCHM
|Linux, BSD
|{{SourceForge|gnochm|GnoCHM}}
|
|-
|CHM View
|None/Uncompiled
|{{GitHub|ojuba-org|chmviewkit}}
|
|-
|kchmviewer
|Windows, Linux
|{{URL|https://ulduzsoft.com/kchmviewer/}}
|
|-
|KCHM
|Linux, BSD, Solaris
|{{SourceForge|kchm|KCHM}}
|
|-
|CHMPane
|Windows, macOS, Linux
|{{SourceForge|chmpane|CHMPane}}
|
|-
|CHMate Neue
|iOS, iPadOS, visionOS
|{{iTunes|app/chmate-neue-chm-reader-reloaded/id335157929|CHMate Neue}}
|
|-
|iChm
|iOS, macOS
|{{iTunes|app/ichm-chm-reader/id1243909868|iChm}}
|Discontinued
|-
|ChmPlus
|iOS, iPadOS, macOS, visionOS
|{{iTunes|app/chmplus-pro-chm-reader/id441521818|ChmPlus}}
|
|-
|Chmox
|macOS
|{{URL|http://chmox.sourceforge.net}}
{{SourceForge|chmox|Chmox}}
|
|-
|Clearview
|macOS
|{{iTunes|app/clearview/id557090104|Clearview}}
|
|-
|DisplayCHM
|Linux
|{{URL|https://linux-apps.com/p/998057}}
|
|-
|KOReader
|Android, Linux
|{{URL|https://koreader.rocks/}}
{{GitHub|koreader|url=koreader/koreader}}
|
|}
<!-- ------------------------------------------- Assorted dead links -------------------------------------
* [http://code.google.com/p/chmsee CHMsee]
 
* [https://sites.google.com/site/readchm/ ReadCHM] {{Webarchive|url=https://web.archive.org/web/20140323184506/https://sites.google.com/site/readchm/ |date=2014-03-23 }}
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.
 
* [https://play.google.com/store/apps/details?id=com.kingreader.framework&feature=search_result KingReader]{{dead link|date=June 2017 |bot=InternetArchiveBot |fix-attempted=yes }}
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.<ref>{{cite web |last=Wise |first=Paul |last2=Wing |first2=Jed |title=Unofficial (Preliminary) HTML Help Specification INI formats|url=http://chmspec.nongnu.org/latest/INI.html#HHP |year=2005 |accessdate=1 February 2018 }}</ref>
 
* [https://web.archive.org/web/20140919063747/https://play.google.com/store/apps/details?id=org.hystudio.android.chm Chm Reader]
The [[Free Pascal]] project has a compiler (chmcmd) that can create CHM files in a multiplatform way.
 
* [https://play.google.com/store/apps/details?id=com.chaozh.iReader&feature=search_result iReader]
==Use in non-Windows applications==
Read support:
* GTK: {{SourceForge|gnochm|GnoCHM}}, [http://code.google.com/p/chmsee CHMsee], [https://github.com/ojuba-org/chmviewkit chmviewkit]
* Qt: [[Okular]], [http://www.kchmviewer.net/ kchmviewer], {{SourceForge|kchm|KCHM}}
* Java: {{SourceForge|chmpane|CHMPane}}
* iOS: [https://itunes.apple.com/us/app/chmate-neue-chm-reader-reloaded/id335157929?mt=8 CHMate Neue], [http://www.robinlu.com/ichm iChm], [https://itunes.apple.com/us/app/chmplus-pro-chm-reader/id441521818?ls=1&mt=8 ChmPlus], [https://sites.google.com/site/readchm/ ReadCHM]
* Android: [https://play.google.com/store/apps/details?id=com.kingreader.framework&feature=search_result KingReader]{{dead link|date=June 2017 |bot=InternetArchiveBot |fix-attempted=yes }}, [https://web.archive.org/web/20140919063747/https://play.google.com/store/apps/details?id=org.hystudio.android.chm Chm Reader], [https://play.google.com/store/apps/details?id=com.chaozh.iReader&feature=search_result iReader]
* Mac OS X: [http://www.robinlu.com/ichm iChm] (Discontinued), [https://itunes.apple.com/us/app/chmplus-chm-reader/id588628901?ls=1&mt=12 ChmPlus] (Discontinued), [http://chmox.sourceforge.net/ CHMox](PowerPC apps no longer supported), [http://code.google.com/p/archmock/ ArCHMock] (Discontinued), [http://www.enolsoft.com/chm-to-epub-for-mac.html CHM to EPUB] (Discontinued), [https://itunes.apple.com/us/app/clearview-reader/id557090104 Clearview Reader]
* Other / Cross-platform: [[xCHM]], {{SourceForge|archmage|arCHMage}}, [https://www.linux-apps.com/p/998057 DisplayCHM]
* Amiga: [http://aminet.net/search.php?query=libmspack libmspack] on [[Aminet]]
 
* [http://code.google.com/p/archmock/ ArCHMock] (Discontinued)
Read/write support:
 
* [[Lazarus (IDE)]]/[[Free Pascal]] (for a [[doxygen]] like tool, a separate [[commandline]] [[compiler]] in 2.6.0+, and a simple viewer in Lazarus)
* (NOT A READER) [http://www.enolsoft.com/chm-to-epub-for-mac.html CHM to EPUB] {{Webarchive|url=https://web.archive.org/web/20190329171517/https://www.enolsoft.com/chm-to-epub-for-mac.html |date=2019-03-29 }} (Discontinued)
-->
 
==Creators==
 
Microsoft's HTML Help Workshop generates CHM files by instructions stored in a HTML Help project file, which bears a <code>.HHP</code> [[file name extension]] and is a specialized form of [[INI file]].<ref>{{cite web |last=Wise |first=Paul |last2=Wing |first2=Jed |title=Unofficial (Preliminary) HTML Help Specification INI formats|url=http://chmspec.nongnu.org/latest/INI.html#HHP |year=2005 |accessdate=1 February 2018 }}</ref>
 
[[Lazarus (IDE)|Lazarus]] and [[Free Pascal]] provide a [[doxygen]]-like tool for CHM generation and a separate [[command-line]] compiler called <code>chmcmd</code>.
 
==Other utilities==
 
The official viewer in Microsoft Windows (<code>hh.exe</code>) can decompile a CHM file. So can Microsoft HTML Help Workshop and [[7-Zip]]. [[Calibre (software)|Calibre]] and [https://github.com/dottedmag/arCHMage arCHMage] can convert CHM into another format.
 
==See also==
{{Wikibookspar|Windows Programming|Compiled HTML Help}}
* [[Windows HelpWinHelp]]
* [[Microsoft Help 2]]
* [[Comparison of documentation generators]]
 
==References==
{{Reflist|2}}
 
==External links==
* [http://msdn2.microsoft.com/en-us/library/bb267846.aspx HTML Help Web Page on MSDN]{{dead link|date=February 2025}}
* [http://msdn2.microsoft.com/en-us/library/bb165722(VS.80).aspx Microsoft Help 2 Reference]{{Dead link|date=February 2025}}} (part of Visual Studio SDK for VS7.1 and VS8.0)
* [https://web.archive.org/web/20060718005033/http://www.helpware.net/htmlhelp/hh_info.htm History of HTML Help]
* [http://www.nongnu.org/chmspec/latest/index.html Unofficial (Preliminary) HTML Help Specification] (the linked ITSF specification has been moved to [http://www.russotto.net/chm/chmformat.html the Russotto.net ___domain])
{{DEFAULTSORT:Microsoft Compiled Html Help}}
 
{{Microsoft Windows components}}
 
{{DEFAULTSORT:Microsoft Compiled Html Help}}
[[Category:Internet Explorer]]
[[Category:Technical communication]]
[[Category:OnlineComputer helpfile formats]]