Microsoft Compiled HTML Help: Difference between revisions

Content deleted Content added
Yorrose (talk | contribs)
added chum pronunciation
Fixed the koreader url
 
(424 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description|Software help file format by Microsoft}}
'''[[Microsoft Compressed HTML Help]]''' is a proprietary format for [[Help (online)|online help]] files. They have a set of web pages written in a subset of [[HTML]] and a [[hyperlink]]ed table of contents. CHM format is optimized for reading, as files are heavily indexed. All files are compressed together with [[LZX (algorithm)|LZX compression]]. Most CHM browsers display a table of contents on the left.
{{Infobox file format
| name = Microsoft Compiled HTML Help
| icon =
| logo =
| screenshot =
| caption =
| extension = .chm
| mime = application/vnd.ms-htmlhelp<ref>{{cite web |last=Techtonik |first=Anatoly |title=application/vnd.ms-htmlhelp |url=https://www.iana.org/assignments/media-types/application/vnd.ms-htmlhelp |date=11 April 2006 |accessdate=7 March 2012}}</ref>
| type code =
| uniform type =
| magic =
| owner = [[Microsoft]]
| released = 1997
| latest release version = 1.4<ref>{{cite web|title=Microsoft HTML Help 1.4|url=https://msdn.microsoft.com/en-us/library/windows/desktop/ms670169(v=vs.85).aspx|website=Windows Dev Center|publisher=Microsoft|accessdate=10 January 2017}}</ref>
| latest release date =
| genre =
| container for =
| contained by =
| extended from =
| extended to = [[Microsoft Reader|.lit]]
| standard =
| url =
}}
{{Infobox software
| name = Microsoft HTML Help Executable
| other_names = <code>hh.exe</code>
| developer = [[Microsoft]]
| discontinued = yes
| included with = [[Microsoft Windows]]
| replaces = [[Microsoft WinHelp]]
| replaced_by = [[Microsoft Help 2]]
| genre = [[Help system]]
}}
 
'''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]].
A CHM help file has a ".chm" or ".CHM" extension and is often referred to as a "chum" file. The file starts with bytes "ITSF" (in ASCII), for "Info-Tech Storage Format". The format has been partially reverse engineered and there are [http://www.speakeasy.org/~russotto/chm/chmformat.html container] and [http://chmspec.nongnu.org/latest/ internal files] specifications available.
 
Although the format was designed by Microsoft, it has been successfully [[Reverse engineering|reverse-engineered]] and is now supported by many document viewers.
There are some [[open source]] tools which can read and explore these files (see for example [http://xchm.sourceforge.net xCHM] or [http://gnochm.sourceforge.net/ GnoCHM]), but they lack various features of the [[Microsoft Windows]] tools.
 
==History==
HTML Help files are made with [[help authoring tool]]s such as PowerCHM or HTML Help Workshop.
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"
Microsoft Compressed HTML Help is more complex than [[Microsoft WinHelp]], which is based on [[Rich Text Format]].
!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
|rowspan=2|2000
|HTML Help 1.3 ships with [[Windows 2000]].
|-
|July
|HTML Help 1.32 releases with [[Internet Explorer 5|Internet Explorer 5.5]] and [[Windows Me]].
|-
|October
|rowspan=2|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.<ref>{{cite web |title=Microsoft HTML Help Downloads |url=http://msdn.microsoft.com/en-us/library/ms669985 |publisher=Microsoft |accessdate=6 March 2012}}</ref>
For more information go to [http://msdn.microsoft.com/library/en-us/htmlhelp/html/hworiHTMLHelpStartPage.asp HTML Help Web Page on MSDN].
 
==AdvantagesFile 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>{{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>
* file size smaller than plain HTML
* range of formatting options that HTML gives for text presentation
* ability to search the full text
* ability to assemble several CHM files into one file with common TOC, index and search (see MSDN)
 
CHM files support the following features:
==Applications==
* Data compression (using [[LZX]])
* Built-in search engine
* Ability to merge multiple .chm help files
* 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
This format was originally intended only for encoding help files, but other uses have since been found. It is very handy for packing saved HTML pages in one compact and browsable archive and for creating compact [[ebook]]s. Some people use it to keep personal notes, because it can organize them in an ordered hierarchical table and allows quick text searching.
| first1=David |last1=Salomon |first2=Giovanni |last2=Motta |first3=David (CON) |last3=Bryant
| edition = 5th, illustrated
| publisher=Springer
| year = 2009
| isbn=978-1-84882-902-2
| url=https://archive.org/details/handbookofdataco0000salo
| url-access=registration
}}</ref>
 
==Viewers==
==Extracting to HTML==
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 }}
On Windows, a CHM file can be extracted to plain HTML with the command:
hh.exe -decompile extracted filename.chm
This will decompress all files embedded in ''filename.chm'' to folder ''extracted''.
 
* [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 }}
or by using HTML Help Workshop. <!-- Can PowerCHM do this? -->
 
* [https://web.archive.org/web/20140919063747/https://play.google.com/store/apps/details?id=org.hystudio.android.chm Chm Reader]
On Unix systems which use apt as a packaging tool, a CHM file is extracted to plain HTML with
$ sudo apt-get install chmlib-bin
$ extract_chmLib tero.chm tero/
 
* [https://play.google.com/store/apps/details?id=com.chaozh.iReader&feature=search_result iReader]
Another useful set of tools for CHM files in non-Windows environments is the [http://www.speakeasy.org/~russotto/chm/ CHM Tools Package]. It's available as source code, and includes a program, chumdump, which extracts the HTML from a CHM file into a separate directory.
 
* [http://code.google.com/p/archmock/ ArCHMock] (Discontinued)
It's also available via [[Fink|Fink]] on Macintosh OS X. If fink is installed on your system, you can type:
$ sudo fink install chmtools
 
* (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)
At a Terminal prompt to install the package. You can then extract a CHM file with:
-->
$ chmdump chmfile.chm outdir
 
==Creators==
== External links ==
 
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>
* Open source
**[http://xchm.sourceforge.net xCHM]
**[http://www.speakeasy.org/~russotto/chm/ CHM Tools]
**[http://gnochm.sourceforge.net/ GnoCHM]
**[http://kchmviewer.sourceforge.net/ KchmViewer ( A Qt/KDE based CHM file viewer )]
* Non-free tools
** [http://www.abeetech.com/chmmakerpro/ Chm Maker]
** [[Microsoft Help Compiler]]
** [[Help & Manual]]
** [http://www.helpware.net/FAR/ FAR HTML]
** [http://www.dawningsoft.com/index.htm PowerCHM]
* Additional Information and Tools
** [http://www.helpware.net/ The Helpware Group] — Tips, Tricks, various free and non-free HTML Help tools
* Help File Consultants and Outsourcing
**[http://www.helpfiles.htmlplanet.com Help File Solutions] - Create CHM help files from Word or Framemaker files
{{windows-stub}}
 
[[Lazarus (IDE)|Lazarus]] and [[Free Pascal]] provide a [[doxygen]]-like tool for CHM generation and a separate [[command-line]] compiler called <code>chmcmd</code>.
[[de:Compiled HTML Help]]
 
[[zh:CHM]]
==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}}
* [[WinHelp]]
* [[Microsoft Help 2]]
* [[Comparison of documentation generators]]
 
==References==
{{Reflist}}
 
==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])
 
{{Microsoft Windows components}}
 
{{DEFAULTSORT:Microsoft Compiled Html Help}}
[[Category:Internet Explorer]]
[[Category:Technical communication]]
[[Category:Computer file formats]]