On Sun, 19 May 2002, Arjen Nienhuis wrote:
> >Right. dinput.h defines it as: > > > >#define DI_OK S_OK > > > >so it's the canonical return value from DirectInput methods. > > > DI_NOTOK whould be better. Oh, is that what you meant. Yeah, I suppose it should have returned something like that, but the original code didn't, and I wasn't trying to overhaul the code beyond what was necessary to get the job done. > It is not possible to use memcopy when dodsize != sizeof(DeviceObjectData). Hmm. Right. The < sanity check for dodsize should probably have been a != check. Not sure where it came from. > >It works in WineX since map mode 3 is actually implemented there. I may be > >able to submit the patch that implements it if you want, it's not a very > >big patch. > > > > > Is map mode mode 3 not dependant on the NumLock state then? DInput > isn't. But on the other hand, it only mathers when someone acquires the > device while a key is pressed. The problem I wanted to solve with map mode 3 was distinguishing left and right shift keys. I'm not sure about numlock. > Well here is my new patch. I only used the Hook idea and the critical > sections. It is better now, and shorter. OK, maybe the WineX code will be replaced with your code eventually, then.