Lionel Ulmer lionel.ulmer@free.fr writes:
Anyway, what I know is that the application explicitely puts the NULL parameter, so it's not a bug upstream. So either it's something that worked on Windows95 and not anymore (as the application is quite old) or a problem in Wine.
I will try to run this application on my Win2K box to see if it works (or write a test to see if the call fails or not). I will alas not be able to test much more as I do not know th difference between a system-wide hook and another sort of hook :-)
A system-wide hook is called for all threads, as opposed to a thread-local hook that only runs in the specified thread. A system-wide hook needs a module handle because it may run in any process context, so we need a way to load the proper dll in the address space of the target process.
It may be that when the module handle is NULL Win95 falls back to a thread-local hook, or does some other strange magic; NT refuses to set a system-wide hook with a NULL module, so I'd expect your app to fail on NT (except if it does a version check, in which case it should run on Wine too if you set the Windows version to NT).