Microsoft Compiled HTML Help: Difference between revisions

Content deleted Content added
Added short description.
Tags: Mobile edit Mobile web edit Advanced mobile edit
Fixed the koreader url
 
(14 intermediate revisions by 12 users not shown)
Line 1:
{{shortShort description|OnlineSoftware help file format by Microsoft}}
{{more citations needed|date=June 2011}}
{{Infobox file format
| name = Microsoft Compiled HTML Help
Line 25 ⟶ 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]]
| genre replaced_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
 
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 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> 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 78 ⟶ 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 in withfor CHM files.<ref>{{Cite web|title=Virus Bulletin :: 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 88 ⟶ 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==
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 }}
 
* [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]
 
* [http://code.google.com/p/archmock/ ArCHMock] (Discontinued)
 
* (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)
[[Sumatra PDF]] supports viewing CHM documents since version 1.9.
-->
 
==Creators==
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 generategenerates CHM files by instructions stored in a HTML Help project. The file, namewhich of suchbears a project<code>.HHP</code> has[[file thename extension .HHP]] and the file is just a textspecialized withform theof [[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>
 
[[Lazarus (IDE)|Lazarus]] and [[Free Pascal]] provide a [[doxygen]]-like tool for CHM generation and a separate [[command-line]] compiler called <code>chmcmd</code>.
The [[Free Pascal]] project has a compiler (chmcmd) that can create CHM files in a multiplatform way.
 
==Other utilities==
==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]]
 
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.
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)
 
==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])
Line 138 ⟶ 235:
[[Category:Internet Explorer]]
[[Category:Technical communication]]
[[Category:OnlineComputer helpfile formats]]