私は htmlhelp api (2 つのバリアントで 1 つの関数を表す大きな言葉です) をインターフェイスしようとしていますが、次のユースケースで問題があります。
多数のヘルプファイル (.CHM) を備えた単純なプログラマー用エディターがあるとします。コア ランタイム ライブラリからのものもあれば、よりエキゾチックなライブラリからのものもあります。CHM は通常どおり作成され、そのインデックスには検索したいすべてのキーワードが含まれているとします。ユーザーがエディターのキーワードで F1 を押したときに、さまざまな CHM を簡単に検索できるようにしたい
だから大まかに私は(擬似コードで)欲しい:
firstchm
while not (out of CHMs) and not Found
{
if keyword in CHM then
{
found=true;
break;
}
nextchm;
}
私は HH_HELP_TOPIC で少し遊んでみましたが、試みられたファイルごとにウィンドウがポップアップし、さらに悪いことに、CHM がキャッシュされたままにならないため、非常に遅くなります。
chmlibなどでDIYする以外に解決策は本当にありませんか? それとも、マージされた CHM ファイルを最初に調査する価値がありますか?
言語は Delphi またはクローンですが、win32/COM で多少読みやすいものであれば何でもかまいません。
(編集) ネストされたインデックス エントリの検索結果が次の問題になる可能性があります: HTML ヘルプのキーワード検索 (/編集)
更新 2 久しぶりに、別の場所で潜在的なヒントを得ました。他のすべての CHM をマージする CHM ランタイムを作成します。Windows は、すべてのスレーブ CHM の TOC とインデックスを含む CHW を生成します。ただし、すべてのスレーブ CHM に対して Binary TOC=off および Binary Index=on が必要であり、CHM コンパイラがインストールされているか利用可能である必要があります。しかし、これは CHM ワークショップのデフォルトであるため、それほど悪くはないかもしれません。