Winhelp
From Wine-Wiki
Contents |
[edit] Introduction
Winhelp is used to view or read for help files. You can recognise these files because they end with .hlp.
as of Feb 06 Winhelp works with most help files but has some more progress to go.
[edit] Mailing List Comments
[Dec 07 wine bug 5503] K Smirnov: Currently there are five main issues with winhelp:
- Very slow processing. Now winhelp reads entire file into memory and decompresses all topics in the file. It takes a lot of time with large files
- Lack of index and contents. These most important features are missing.
- Now winhelp uses its own renderer instead of richedit. Since help files are compiled from rtf, it is naturally to use riched20 library to display help. Unfortunately, riched20 is not complete. (Also usage of riched20 allows to select and copy text).
- Lots of undocumented features to support. The most complete documentation of this format i use (by Manfred Winterhoff at http://www.geocities.com/mwinterhoff) is still incomplete and misleading in some places (e.g. TOPICPOS).
- winhelp is very obsolete help format to support. Even Vista itself does not support .hlp files.
I'm going to fix some of these bugs (maybe index/contents) in the near future..
Anon: This would be welcome news for those running Office 97.
[Oct 06] A programmer announced: I intend to implement winhlp32 utility looks like native one (font size changing, GID and CNT files support, etc...). Please, share your opinion, has this idea any sense, or *.hlp died long ago and only few persons need it? Inspired by bug http://bugs.winehq.org/show_bug.cgi?id=5926
E. Pouch: there's still need to winhelp & winhlp32 (our support is still shaky), but that's not a top priority IMO, we don't need two apps but we could make most apps believe both winhelp & winhlp32 are present and put all effort into a single application we should also re implement winhelp based on richedit for the rendering wine archive
The programmer reported back: there is a mess in winhelp and winhlp32 in "Context" and "Topic" concept: what winhelp calls "topic", winhlp32 calls "context", and what winhelp calls "Context" winhlp32 calls "Topic without CNT section". So, the buttons are messed too. I suspect there are other "features". [...]
E. Pouch: well, this still could be possible, even if it's a bit more complex to handle IMO, the differences are, in most of the cases, cosmetics (name of buttons, positions of menu), but also in MS way, new features only in winhlp32 so I was calling for a unified tool that would be doing what the two original programs were doing, even if the user interface doesn't match everything perfectly. [...] winhelp/winhlp32 requests a good rtf renderer (lots of layout stuff is still missing from winhelp), so this needs some work. richedit is a rtf renderer/editor so it's easier to add the missing stuff to richedit rather than reinventing the wheel in winhelp [..] FWIW, winhelp.exe is a 16-bit executable in Win XP. If I had to guess why, I'd say it's for compatibility: iirc you can call DLL functions from help files; so the 16-bit winhelp is kept to allow 16-bit .hlp files using DLLs to continue to work.
[edit] Troubleshooting
[edit] Could not open help
A user noted [Feb 06]: I have been trying to get the Winhelp to work for weeks now. [...] Derive is using winhelp with an extension RoboEx32 [1]. Derive reports "could not open help" and on the console I see [errors...]. Is winhelp supposed to be able to handle these help files?
E. Pouech: no. basically, the external DLL registers back into winhelp to get some extended support that we don't provide yet. Basically, most of the core logic is here, but we have to wrap it into the APIs designed for those winhelp plugin DLLs. You also it some bugs in the decompression scheme for help files. Basically, all of this is rather low priority, but if someone wants to jump in, I can boot strap him on those issues. wine archive
[edit] Dll overrides
A user asked [Feb 06]: As we do own Windows 98 licenses, it would be no problem to use real Windows 98 DLLs. Is there a chance to get any further with this approach? Of Which DLLs or programs should I try to use the native ones?
E. Pouech: run native winhelp.exe (or winhlp32.exe) depending on which exe your app loads wine archive
[edit] Wine Links
- http://www.winehq.org/?interview=5 Interview with E. Pouech Comments on winhelp
- http://wiki.winehq.org/EricPouech To Do List for E. Pouech
- http://winehq.org/site/status_todo Official Developer wiki to do list
- http://www.kerneltraffic.org/wine/wn20010816_102.html#5 Winhelp status 2001

