This content has been marked as final. Show 6 replies
Hi Matt and welcome to our community
There seems to be a lot of confusion over WinHelp and Vista. WinHelp is not dead. Microsoft simply made it more painful for authors to continue the WinHelp road. The 16 Bit WinHelp engine ships with Vista and works just fine. And if you choose to open a 32 bit WinHelp file, it too will work if you download the proper WinHelp viewer.
My question here is to ask if you have tested the existing setup in a Vista system? It's possible that it will work straight away with no modifications. And if that's the case, you have probably just bought yourself a few years to discover and implement a different solution.
Just a thought... Rick
Thanks for your reply and the kind welcome - really appreciated.
Regarding 16-bit WinHelp, I investigated with What's This? Help Composer and my understanding is that I can't generate a 16-bit .hlp file from that project. That's a shame as it would have been a neat solution if we could have just rebuilt a 16-bit version.
We are carefully considering the 32-bit WinHelp route on Vista. The problem we have with that is that Microsoft don't allow WinHlp32.exe to be redistributed with our product. So we can only ask our users to install WinHlp32 - we can't install it silently for them during our product install. That is a possibility but doesn't give a great user experience.
So I think the only thing we can do is to migrate our What's This? Help from WinHelp to HTML Help. Trouble is I can't find any clear instructions on what the individual steps are that one has to do to achieve this.
I'd be really grateful if someone could say what the individual steps are that you have to do to migrate the information we have already captured in our What's This? Help project to our HTML/CHM project. Is it even possible to continue using the simple system we have used up until now (link against CSH.lib, call CSHInitialize() at the start of the app and What's This? Help just works)?
Sincere thanks in advance for further advice,
Hey, Matt and welcome from me too.
I'm on the run, but have a couple of suggestions for you.
There is not much change from X3 to RH 6 or 7 as far as What's This is concerned. But all the old favorites should be there. This is the default path to the info.
C:\Program Files\Adobe\RoboHelp 6.0\RoboHELP\WhatsThs
If you go from WinHelp to HTML Help for the popups, I believe you'll have to let the developers know to use HTML Help API instead of the WinHelp API for the What's This calls.
You should also check out this excellent site for more information. Rob Chandler has an excellent topic on What's This help.
You'll find it here.
Hope this helps.
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.
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.
> 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?
Yep, even this is possible. Just copy in the majority of the files from the old Word project and it all seems to work.
Does anyone know any way to have multiple .CHM files and use the Robohelp CSH.LIB to access them?
Specifically, we have an application with associated What's This? Help (loaded via CSHInitialize() at application startup). We then have a number of DLLs that are loaded on demand and each of those has their own What's This? Help that we'd like to load dynamically too. Unfortunately, it seems you can't call CSHInitialize() again for the new DLLs. This is what we'd really like to do though.
What's This? Help composer allows you to add additional DLLs to the main application's What's This? Help but that any update to any of your DLLs then requires an update to the main help file, which cancels out the separation of DLL from main application - you can no longer update and distribute them independently.
Anyone know how to use multiple .CHM files for What's This? Help within a single application?
Many thanks in advance,