chm.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 18 Sep 2015 16:08:00 +0300
changeset 1757 bf335700acbe
parent 1753 05aa5edc58f8
child 1759 6f62f6dccf2c
permissions -rw-r--r--
how fix "err:virtual:map_image failed to set 60000020 protection on section .text, noexec filesystem?"

.. -*- coding: utf-8; -*-
.. include:: HEADER.rst

======
 CHM.
======
.. contents::

Spec.
=====

  http://www.nongnu.org/chmspec/
    HTML Help Projects.
  http://www.nongnu.org/chmspec/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.

Alternatives.
=============

  http://www.imendio.com/projects/devhelp/
                DevHelp is a GNOME based online help system aimed toward developers
  http://en.wikipedia.org/wiki/MHTML
                MHTML, short for MIME HTML

Microsoft HTML Help.
====================

  http://msdn.microsoft.com/en-us/library/ms669985
                Microsoft HTML Help Downloads
  http://support.microsoft.com/kb/269766/
                INFO: Limited Unicode Support in HTML Help

Microsoft HTML Help under Debian.
=================================

Set Wine's Windows version to Windows 2000 (or above), and add an override to
use the native itss.dll, both via ``winecfg``::

  wine winecfg

Download `Microsoft HTML Help Workshop
<https://msdn.microsoft.com/en-us/library/ms669985.aspx>`_ and install it as
(from non-``noexec`` FS!!)::

  wine htmlhelp.exe

Install ``itircl.dll`` and ``itss.dll`` as::

  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/
  wine regsvr32 /s 'C:\WINDOWS\SYSTEM32\itircl.dll'
  wine regsvr32 /s 'C:\WINDOWS\SYSTEM32\itss.dll'

Download `Microsoft Foundation Classes update
<http://activex.microsoft.com/controls/vc/mfc40.cab>`_, extract it, and install
it as::

  wget http://activex.microsoft.com/controls/vc/mfc40.cab
  cabextract mfc40.cab
  wine mfc40.exe
  wget -N http://activex.microsoft.com/controls/vc/mfc40.cab
  cabextract -F mfc40.exe mfc40.cab
  cabextract -F mfc40.dll mfc40.exe
  cp -a mfc40.dll ~/.wine/drive_c/windows/system32/

Or just::

  $ winetricks mfc40

See:

 * http://code.google.com/p/htmlhelp/wiki/HHW4Wine

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