[ Home | About | Licence | About author | Contact ]

Written by Oleksandr Gavenko (AKA gavenkoa), compiled at 2015-10-05 from rev 764bb173578d.

CHM.

Spec.

http://www.nongnu.org/chmspec/
HTML Help Projects.
http://chmspec.nongnu.org/
HTML Help Projects.
http://chmspec.nongnu.org/latest/
Unofficial (Preliminary) HTML Help Specification.
http://savannah.nongnu.org/projects/chmspec
Unofficial CHM Specification.
http://www.speakeasy.org/~russotto/chm/chmformat.html
Matthew Russotto’s Microsoft’s HTML Help format description.
http://msdn.microsoft.com/en-us/library/ms669980.aspx
HTML Help Frequently Asked Questions.
http://kb.helpwaregroup.com/ms-html-help/hh_info
HH Info, version history
http://kb.helpwaregroup.com/ms-html-help/hh-faq
FAQ

Microsoft HTML Help under Debian.

Set Wine’s Windows version to Windows 2000 (or above) via winecfg.

Install necessary dependency:

$ winetricks mfc40

Alternatively manually download and install Microsoft Foundation Classes update:

$ wget http://activex.microsoft.com/controls/vc/mfc40.cab
$ cabextract mfc40.cab
$ wine mfc40.exe

Download Microsoft HTML Help Workshop and install it as (from non-noexec FS!!):

$ wine htmlhelp.exe

Install itircl.dll and itss.dll from hhupd.exe which available in installer or in ~/.wine/drive_c/Program Files/HTML Help Workshop/redist:

cabextract -F hhupd.exe htmlhelp.exe
cabextract -F itircl.dll hhupd.exe
cabextract -F itss.dll hhupd.exe
cp -a itircl.dll ~/.wine/drive_c/windows/system32/
cp -a itss.dll ~/.wine/drive_c/windows/system32/

You must add exception for hhc.exe and hhw.exe to use native variant of itss.dll via winecfg. Note: don’t set itss.dll to native by default becase then wine hh wouldn’t work.

See:

Viewer.

$ sudo apt-get install xchm
$ sudo apt-get install gnochm

$ wine hh $FILE

Decompiler.

For Windows:

cmd> hh.exe -decompile %OUTDIR% %INFILE%.chm
cmd> 7z x -o%OUTDIR% %INFILE%.chm

Under Linux:

$ 7z x -o$OUTDIR $INFILE.chm

$ sudo apt-get install libchm-bin
$ extract_chmLib $INFILE.chm $OUTDIR

Cyrillic CHM files.

In order to show Cyrillic tests in hh.exe or xchm:

  • Use cp1251 or cp866 encoding for .html files.

  • Place corresponding:

    <meta http-equiv="Content-Type" content="text/html; charset=cp1251">
    

    or:

    <meta http-equiv="Content-Type" content="text/html; charset=cp866">
    

    into into <head> tag of your .html files.

  • Use cp1251 encoding for .hhc and .hhk and .stp files.

  • Add correcponding settings into your .hhp file:

    [OPTIONS]
    Language=0x419 Russian
    

<meta charset="cp1251"> works for hh.exe but not for xchm.

Because cp1251 contains all Cyrillic letters while cp866 only Russian and content/index file require only cp1251 I recommend to use only cp1251 for .html files.

See: