![]()
3.アプリケーションから HTML Help を呼び出す
アプリケーションからヘルプを呼び出すには HtmlHelp のAPI を用います。
HWND HtmlHelp( HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD dwData) ;
| HWND hwndCalle | 呼び出すアプリケーションのウインドウハンドル | |
| LPCSTR pszFile | ヘルプファイル名 | |
| UINT uCommand | API コマンド | |
| DWORD dwData | コマンドパラメータなどのデータ |
詳しくは HTML WorkShop のヘルプを見ていただくとして、一般的に呼び出すだけなら
h_wnd = HtmlHelp(::GetDesktopwindow(), chmfile.chm, HH_DISPLAY_TOC, NULL) ;
でできます。
ウインドウハンドルにアプリケーションのウインドウハンドルを渡すと親子関係が発生し、ヘルプは必ずそのアプリケーションの上に表示されます。この例ではウインドウハンドルをデスクトップから取得しています。これを行うと呼び出したアプリケーションとは何ら関係なくなりますので、常にアプリケーションのウインドウの上にヘルプが表示される、という状況が解除されます。
アプリケーションが終了すると自動的にヘルプも終了しますので、別途記述は不要です。
最近の処理系はどうなっているかよくわからないのですが、HTML
Help Workshop に入っている htmlhelp.lib および
htmlhelp.h を用いれば VC++ からは簡単に呼び出すことができます。
たぶん、C++ Builder とか Delphi の最新版は呼び出しに対応しているのではないのでしょうか。