Windows Vistaの標準ではWindowsヘルプは表示できないということで、HTMLヘルプなどに移行する必要があります。
何度かとまどった経験があるので自分でも忘れないよう、簡単な移行手順をまとめてみました。
-
現在のWindowsヘルプ。
これをHTMLヘルプに移行してみる。

-
まずは「HTML Help Workshop」を起動。
[スタート]→[すべてのプログラム]→
→[HTML ヘルプワークショップ]メニューを選択。
3.
「HTML Help Workshop」の画面から、[File]→[New]メニューを選択。
「New」ダイアログが表示されるので「Project」を選択し、新規プロジェクトを作成する。
4.
WinHelpからの変換するため、「New Project」ダイアログで「Convert WinHelp project」をチェック。
5.
「New Project -- Source and Destination Project Files」で、既存のWinHelpプロジェクトファイル、新規作成するHtmlHelpプロジェクトファイル名を指定する。
7.
すると、とりあえずHtmlHelp用のプロジェクトが作成される。
8.
試しに[File]→[Compile]メニューでコンパイルしてみる。
9.
「Create a compiled file」で[Compile]ボタンをクリック。
10.
出来上がったHtmlHelpファイル(*.chm)を見るために、[View]→[Compiled File]メニューを選択。
11.
「View compiled file」でHtmlHelpファイル(*.chm)を選択し[View]ボタンをクリック。
12.
すると、とりあえずHtmlHelpが表示される。
見ての通り文字化けしてたり、目次が無かったり散々なヘルプが作成される。
13.
まず、文字化けから直してみる。
プロジェクトを作成したフォルダ配下に"html"フォルダが作成されている。
14.
"html"フォルダ配下のHTMLをテキストエディタ(メモ帳でもOK)で開いてみる。
METAタグで指定されているcharset属性の値が"Windows-1252"になっているので、
これを"Shift_JIS"に修正する。
変更前:
[html gutter="false"]
<META HTTP-EQUIV=”Content-Type” Content=”text/html; charset=Windows-1252“>
変更後:
<META HTTP-EQUIV=”Content-Type” Content=”text/html; charset=Shift_JIS“>
ちなみに、直接影響は無いと思われるが
<TITLE>?????</TITLE>
htmlフォルダ配下全てのHTMLを変換(テキストエディタの全置換を使うと便利)する。
-
再びHtml Help Workshopに戻り、コンパイル&表示してみる(上記、8.~11.)。
すると、文字化けは解消されている(筈)。

-
今度は目次を付けてみる。
WinHelpで作成していた目次構成を真似してHtmlHelpの目次を作成してみる。

WinHelpと同じ目次構成で作成してみる。

-
再びHtml Help Workshopに戻り、[Contents]タブを選択すると「Table of Contents Not Specified」ダイアログが表示される。
ここで「Create a new contents file」を選択し[OK]ボタンをクリック。

すると、ファイル名を聞いてくるので適当に名前を付けて保存する。
(ファイル名はデフォルトの"Table of Contents.hhc"のままでもOK) -
まず、「はじめに」の部分を作成。
[Insert a heading]ボタン(フォルダアイコン)をクリック。

-
「Table of Contents Entry」ダイアログが表示されるので、[Entry title:]テキストボックスに"はじめに"と入力し[OK]ボタンクリック。

-
すると"はじめに"フォルダが追加される。
次に[Insert a page]ボタンをクリック。

-
"Do you want to insert this entry at the beginning of the table of contents?"と聞かれてくるので挿入しないよう[いいえ]を選択。

-
「Table of Eontents Entry」ダイアログの[Entry title:]に、二番目の項目"MemMeterについて"を入力し、[Add]ボタンをクリック。

-
「Path or URL」で対象のHTMLを選択し[OK]をクリック。
ここでは"MemMeterについて"を選択。

-
「Table of Contents Entry」ダイアログの「File/URLs and their infomation types:」に先ほど選択したHTMLが追加される。
確認したら、[OK]をクリック。

-
すると「Contents」に"MemMeterについて"が追加される。

-
試しに、この時点でコンパイルし出来上がりを見てみる。
上記で説明したように、[File]→[Compile]メニューでコンパイル。
[View]→[Compiled File]メニューで作成したHTMLヘルプを表示。
すると、無事「目次」タブが追加されている。

-
後は、応用を利かせて全ての目次を作成する。
GUIでの操作が面倒&HTMLの知識がある人ならContents作成で保存したファイル("Table of Contents.hhc"など)を直接編集する方法もあり。
中身は↓こんな感じになっているので- タグ内をコピペしながら編集しよう。
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML//EN”>
<HTML>
<HEAD>
<meta name=”GENERATOR” content=”Microsoft® HTML Help Workshop 4.1″>
<!– Sitemap 1.0 –>
</HEAD><BODY>
<OBJECT type=”text/site properties”>
<param name=”ImageType” value=”Folder”>
</OBJECT>
<UL>
<LI> <OBJECT type=”text/sitemap”>
<param name=”Name” value=”はじめに”>
</OBJECT>
<UL>
<LI> <OBJECT type=”text/sitemap”>
<param name=”Name” value=”MemMeterについて”>
<param name=”Local” value=”html\memm15f8.htm”>
</OBJECT>
</UL>
</UL>
</BODY>
</HTML>
できあがり。

-
おまけに、目次のアイコンの変更方法。
「HTML Help Workshop」(メイン画面)で[Contents]タブを選択した状態で、左側にある鉛筆マークのボタン[Edit Selection]をクリック。
「Table of Contents Entry」ダイアログが表示されるので[Advanced]タブを選択。
下側にある[Image Index:]を変更するとアイコンが切り替わる。

後はリコンパイルすればOK。 -
できあがり。

-
これでWindowsヘルプからHTMLヘルプへの移行は完了。

-
あとは呼び出すプログラム側の変更するのみ。
HTMLヘルプ呼出し方法の例をまとめてみた。
VC++:
#include <htmlhelp.h>
HtmlHelp(
NULL,
”MemMeter.chm::/html/memm2abc.htm”,
HH_DISPLAY_TOPIC,
0);
C#:
using System.Windows.Forms;
Help.ShowHelp(this, “MemMeter.chm”, @”html\memm2abc.htm”);
VB6:
Global Const HH_DISPLAY_TOPIC = &H0
Global Const HH_CLOSE_ALL = &H12
Declare Function HTMLHelp Lib “hhctrl.ocx” Alias _
“HtmlHelpA” (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal _
wCommand As Long, ByVal dwData As Long) As Long
HTMLHelp Me.hwnd, “MemMeter.chm::/html/memm2abc.htm”, HH_DISPLAY_TOPIC, 0&
これで呼び出しもOK。