Aha! I found the answer. Anyone wishing to migrate their
Robohelp What's This? help from WinHelp (.hlp) file to HTML Help
(.chm) so that it works on Windows Vista should do the following:
1) If you don't already have one, create a new HTML Help
project using Robohelp HTML (main menu: File -> New Project then
choose HTML Help) and satisfy yourself that you can create a .CHM
file from that.
2) Now, under the "File" menu on the main menu you now have
the option "New What's This? Help Project...". Choose that and
you'll find yourself in "What's This? Help Composer". Hold on,
though, Robohelp HTML doesn't support "What's This? Help Composer"
does it? It doesn't appear on the set of tools and you're forced to
go back to Robohelp for Word to use it... Not true. In fact,
Robohelp HTML supports "What's This? Help Composer" if you start it
up via this "New What's This? Help Project".
3) Use "What's This? Help Composer?" in exactly the same way
you used to for WinHelp projects - that is, load up your app and
DLLs then add your help text to each dialog control, etc.
4) Now close "What's This? Help Composer" and go back to your
HTML project. You'll see that the mythical "context.txt" file
referenced in Robohelp documentation has been magically created.
Double clicking it takes you back in the composer to edit your
What's This? help.
5) Compile your HTML project to produce your .CHM file. This
includes embedded What's This? Help content (apparently the
context.txt file is actually compiled in there somewhere).
6) Nearly there. That's the What's This? help safely in the
.CHM, but how does our app get it out again? Simple. Instead of
copying MsCSH.lib into your project and linking against that, you
need a different library. Copy MsCSHtml.lib from your Robohelp HTML
installation (in my case it was in C:\Program Files\RoboHelp
Office\RoboHTML\whatsths\ProgDlls) and link against that instead of
MsCSH.lib.
7) Change the first parameter of your CSHInitialize() call at
the start of your app to use the .CHM file instead of the .HLP
file.
8) Make sure CsHtml.dll is available to your final,
release-build app at runtime (e.g. by copying it into the same
directory).
That's it! What's This? help now works on both Windows XP and
Vista (didn't try any others but I presume they work). I used
Robohelp Office X3 so we don't even need to upgrade to fix our
What's This? help for Vista.
Now... answers on the back of a postcard explaining to me why
that isn't really, really easy information to find? I couldn't find
that anywhere either on the web generally, on Adobe's site or in
Robohelp's own help (which ironically seems to be a little
lacking).
Don't get me wrong, I'm delighted we can continue to use
Robohelp for this as the other options seem far worse, but given
that many developers are currently going through the pain of fixing
their apps to work on Vista, a little help on this would have gone
a long way.
Hopefully by publishing my process here, I can save someone
else the time.
Cheers,
Matt
P.S. Oh, one thought - anyone know a way to import all the
work I did in the WinHelp What's This? Help Composer project into
my new HTML What's This? Help Composer project? Seems a shame to
have to enter it all again by hand. Is there an automated method
that anyone knows of? Thanks again.