Hi All,
If anybody is looking for a small project, I've got just the thing for you!
hh.exe and hhctrl.ocx are two components of the Microsoft HTML help engine. hh.exe is a small wrapper around hhctrl.ocx, which is the HTML help viewer.
hhctrl.ocx embeds IE and feeds it HTML documents decoded from .chm files with itss.dll (the Infotech storage system). Implementing hhctrl.ocx would make an excellent test case for IE embedding that Jacek is working on, and for itss.dll.
So most of the components are already in place (or will be soon) to make HTML help work... any takers to fill in the dots?
The reward is, like most of Wine code, to say "I made that work" :)
Let me know if you're interested.
Mike
Hello.
I think it will be great to have it done. I'd like to point out one thing for the way to implement it: the most important is to have it working with native shdocvw.dll and mshtml.dll. It won't work with built in in the current state of them, but it will be fixed soon and I believe it can be in CVS even if it doesn't work without these dlls. While implementing then we shouldn't pay too much attention to get it working with Mozilla ActiveX Control - it will never work perfectly and I hope to get rid of its dependency soon. Of course you may do it working, but, as my tests show, it's far from compatible with MS. Also, we need to use itss.dll, which is impossible with Mozilla ActiveX (I'm not sure if Mozilla has support for chm protocol, but even if so it's worse to use it).
About implementing hh.exe... it seams to be pretty easy. Attached is (not tested) implementation:-)
Another related idea is, as I have spoken with Mike on irc, to use html help in winecfg. It looks like a nice way to have a complex and integrated help. This would mean that we need to implement the chm compiler. To do so we may use chmlib: http://66.93.236.84/~jedwin/projects/chmlib/ that Mike used in itss to decompress chm.
As a conclusion: it would be really good to have this working in Wine. It uses most of IE related API (I didn't mension URLMoniker here, which also needs some work) and getting it to work out of box will be a great test for Wine.
Thanks, Jacek
I forgot to attach hh.exe...
#include <windows.h>
typedef int WINAPI DOWINMAIN(HMODULE hMod, LPSTR cmdline);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmdshow) { HMODULE hModule; DOWINMAIN *doWinMain;
hModule = LoadLibrary("hhctrl.ocx"); doWinMain = GetProcAddress(hModule, "doWinMain");
return doWinMain(hInst, cmdline); }