Microsoft Compiled HTML Help: Difference between revisions

Content deleted Content added
Ahabr (talk | contribs)
Fixed the koreader url
 
(446 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. Files in this format are organized in a [[database]]-like manner. They have a set of web pages written in a subset of [[HTML]] and a [[hyperlink]]ed table of contents. The help browser often displays 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" suffix. The file starts with bytes "ITSF" (in ASCII). On Windows, a CHM help file can be extracted to plain HTML with the command:
 
Although the format was designed by Microsoft, it has been successfully [[Reverse engineering|reverse-engineered]] and is now supported by many document viewers.
hh.exe -decompile folder chm
 
==History==
or by using HTML Help Workshop. <!-- Can PowerCHM do this? -->
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"
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.
!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>
HTML Help files are made with applications such as PowerCHM or HTML Help Workshop.
 
==File format==
For more information go to [http://msdn.microsoft.com/library/en-us/htmlhelp/html/hworiHTMLHelpStartPage.asp HTML Help Web Page on MSDN].
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>
== External links ==
 
* Open source
CHM files support the following features:
**[http://xchm.sourceforge.net xCHM]
* Data compression (using [[LZX]])
**[http://www.speakeasy.org/~russotto/chm/ CHM Tools]
* Built-in search engine
**[http://gnochm.sourceforge.net/ GnoCHM]
* Ability to merge multiple .chm help files
**[http://kchmviewer.sourceforge.net/ KchmViewer ( A Qt/KDE based CHM file viewer )]
* 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>
* Non-free tools
 
** [http://www.abeetech.com/chmmakerpro/ Chm Maker]
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
** [[Microsoft Help Compiler]]
| first1=David |last1=Salomon |first2=Giovanni |last2=Motta |first3=David (CON) |last3=Bryant
** [[Help & Manual]]
| edition = 5th, illustrated
** [http://www.helpware.net/FAR/ FAR HTML]
| publisher=Springer
** [http://www.dawningsoft.com/index.htm PowerCHM]
| year = 2009
* More sofware links
| isbn=978-1-84882-902-2
** [http://look4soft.com/k.1.chm.html Catalog with a lot of chm-related software]
| url=https://archive.org/details/handbookofdataco0000salo
* Additional Information and Tools
| url-access=registration
** [http://www.helpware.net/ The Helpware Group] — Tips, Tricks, various free and non-free HTML Help tools
}}</ref>
* Help File Consultants and Outsourcing
 
**[http://www.helpfiles.htmlplanet.com Help File Solutions] - Create CHM help files from Word or Framemaker files
==Viewers==
{{windows-stub}}
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)
-->
 
==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}}
* [[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]]