HTML Help - Delphi Bugs

#1 The Parenting Bug
#2 Delphi COM causes access violation when Hosting HH
#3 Delphi 6/7 OnHelp event is broken

#1 The Parenting Bug

Brief:
When Delphi 3 or 4 applications host Help using the HTML Help 1.0 or 1.1 API  a serious parenting bug makes help useless.
Detail:
o Launch a CHM help file from a Delphi application (via API call).
o Now leave the help up and open a modal dialog.
   The help window is now locked between windows.

This is always a problem when accessing the same help file from different windows in an application.
Fix:
1. Upgrade to Html Help version 1.2 or later.
    http://www.microsoft.com/workshop/author/htmlhelp/
2. Launch help via a second application. EG. hh.exe or keyhh.exe.
    http://www.keyworks.net/keyhh.htm
3. Try using zero as the first parameter.. eg. htmlhelp(0, ,,);
 

#2 Delphi COM causes access violation when Hosting HH

Brief:
Get access violation when hosting HTML Help which in turn hosts a Delphi COM object.
Detail:
If a Delphi application hosts HTML Help API which in turn hosts IE which in turn hosts a Delphi ActiveX helper then an access violation occurs.

o Sometimes only seen on NT4 and Win98 machines.
o Very Serious! Can lock Windows into an endless error loop.
Fix:
1. Launch help via a second application. EG. hh.exe or keyhh.exe.
    http://www.keyworks.net/keyhh.htm
 

#3 Delphi 6/7 OnHelp event is broken

Brief:
Delphi 6/7 Form.OnHelp and Application.OnHelp events are partially broken.
Detail:
The easiest way to redirect an application's help calls is to hook the OnHelp event. All help events for the entire application are  redirected to a single function. Delphi 6 & 7 has broken the OnHelp event.
Fix:
The fix requires a Unit of code to catch the missed help events.
Download the D6/7 Fix.