Microsoft Compiled HTML Help: Difference between revisions

Content deleted Content added
Fixed the koreader url
 
(113 intermediate revisions by 79 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 7:
| 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>
| mime = application/x-chm
| type code =
| uniform type =
Line 13:
| 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 version =
| latest release date =
| genre =
Line 20:
| extended from =
| extended to = [[Microsoft Reader|.lit]]
| standard = No
| url =
}}
{{Infobox Windows componentsoftware
| name = Microsoft Compiled HTML Help Executable
| other_names = <code>hh.exe</code>
| type = Help system
| included_with developer = [[Windows 98Microsoft]]
| discontinued = yes
| replaces = [[Microsoft WinHelp]]
| replaced_by included with = [[Microsoft Help 2Windows]]
| replaces = [[Microsoft WinHelp]]
| replaced_by = [[Microsoft Help 2]]
| genre = [[Help system]]
}}
 
'''Microsoft Compiled HTML Help''' ('''CHM''') is a [[Microsoft]] proprietary [[online help]] format., Itconsisting wasof introduceda ascollection the successor toof [[Microsoft WinHelpHTML]] withpages, thean releaseindex ofand [[Windowsother 98]],navigation andtools. isThe stillfiles supportedare compressed and deployed in a binary format with the extension .CHM. The format was intended to succeed [[WindowsMicrosoft 7WinHelp]].
 
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>
In 2002, Microsoft announced security risks associated with the .CHM format, as well as security bulletins and patches.<ref>[http://www.winwriters.com/security.htm WinWriters - Security and Microsoft Help<!-- Bot generated title -->]</ref> They have since announced their intentions not to develop the .CHM format further.<ref>[http://msdn.microsoft.com/en-us/library/ms669985 Microsoft HTML Help Workshop download page]</ref>
 
{| class="wikitable" border="1"
!Month
Line 64 ⟶ 70:
|-
|March
|At the [[WritersUA]] (formerly WinWriters) conference, Microsoft announces plans for a new help platform, Help 2, which is also HTML based.
|-
|January
Line 70 ⟶ 76:
|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>
 
==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"., Thewhich formatis hasthe beeninternal reverse-engineeredname given by MatthewMicrosoft Russottoto withthe assistancegeneric fromstorage Peterfile Ferrieformat used andfor PaulCHM Wisefiles.<ref>[http://bonedaddy.net/pabs3/code/#hhm{{Cite HTMLweb|title=Virus HelpBulletin Maker] on Paul Wise (Pabs)' website</ref> Russotto's documentation is freely:: availableChamber atof [httphorrors|url=https://www.russottovirusbulletin.netcom/chmvirusbulletin/chmformat.html http:2006/10/chamber-horrors/|access-date=2022-01-05|website=www.russottovirusbulletin.netcom}}</chm/chmformat.html].ref>
 
CHM files support the following features:
On Windows computers a .chm can be built with the freely-distributed HTML Help Workshop.
* 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
The published help features:
| 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==
* Data compression (with [[LZX (algorithm)|LZX compression]])
In addition to Microsoft Windows, the following apps support CHM:
* Built in search engine
{| class="wikitable"
* Ability to merge a number of .chm help system
|+
* Extended character support although it does not fully support [[Unicode]].<ref>[http://support.microsoft.com/kb/269766/ INFO: Limited Unicode Support in HTML Help]</ref>
!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 }}
The .chm file format's ability to contain and execute arbitrary code is a potential security threat, and viewing .chm files is sometimes restricted in the Windows OS.
 
* [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 }}
==Applications==
The [[Microsoft Reader]] .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
Authors David Salomon, Giovanni Motta, David (CON) Bryant
Edition 5, illustrated
Publisher Springer, 2009
ISBN 1848829027, 9781848829022
Length 1359 pages</ref>
 
* [https://web.archive.org/web/20140919063747/https://play.google.com/store/apps/details?id=org.hystudio.android.chm Chm Reader]
[http://www.beyondchm.com Beyond CHM], a multi-tab CHM reader and CHM editor, which enables user to add annotations on CHM eBooks.
 
* [https://play.google.com/store/apps/details?id=com.chaozh.iReader&feature=search_result iReader]
Various applications, such as HTML Help Workshop or [[7-Zip]], have features to decompile CHM files. On Windows systems, the hh.exe utility, as well as the extract_chmLib utility (a component of chmlib) on Linux systems, can be used to decompile CHM files as well.
 
* [http://code.google.com/p/archmock/ ArCHMock] (Discontinued)
==Use on non-Windows platforms==
 
* GTK: {{sourceforge|gnochm|GnoCHM}}, [http://code.google.com/p/chmsee CHMsee], [http://git.ojuba.org/cgit/chmviewkit/ chmviewkit]
* (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)
* Qt: [[Okular]], [http://www.kchmviewer.net/ kchmviewer], {{sourceforge|kchm|KCHM}}
-->
* Java: {{sourceforge|chmpane|CHMPane}}
 
* iOS: [http://itunes.apple.com/us/app/ebookmobi/id413897025?mt=8 eBookMobi], [https://sites.google.com/site/readchm/ ReadCHM], [http://lazyapps.com/chmate/ CHMate]
==Creators==
* Mac OS X: [http://chmox.sourceforge.net/ CHMox], [http://code.google.com/p/archmock/ ArCHMock]
 
* Other / multiple: [[xCHM]], {{sourceforge|archmage|arCHMage}}, DisplayCHM<ref>[http://kde-apps.org/content/show.php/Displaychm?content=72664 Displaychm], KDE Service Menu</ref>, [https://addons.mozilla.org/en-US/firefox/addon/chmfox ChmFox Firefox addon] [https://addons.mozilla.org/en-US/firefox/addon/3235 CHM Reader Firefox addon], [[Free Pascal]], [[FBReader]], [http://www.robinlu.com/blog/ichm iChm]
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]]
* [[KDE WAR (file format)]]
* [[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])
 
{{Microsoft Windows components}}
{{Internet Explorer}}
 
{{DEFAULTSORT:Microsoft Compiled Html Help}}
 
[[Category:Internet Explorer]]
[[Category:Technical communication]]
[[Category:OnlineComputer helpfile formats]]
 
[[de:CHM (Dateiformat)]]
[[es:Microsoft Compiled HTML Help]]
[[fr:Microsoft Compressed HTML]]
[[it:Microsoft Compressed HTML Help]]
[[ja:Microsoft Compiled HTML Help]]
[[pl:HTML Help]]
[[pt:CHM]]
[[ru:HTMLHelp]]
[[sr:CHM]]
[[uk:Compiled HTML]]
[[vi:CHM (định dạng tập tin)]]
[[zh:Microsoft已編譯的HTML Help]]