Sergey Khodych wrote:
...
hr = SysKeyboardWImpl_GetObjectInfo( (LPDIRECTINPUTDEVICE8W)iface , &didoi,
ps->diph.dwObj, ps->diph.dwHow );
You mixing unicode and ascii. Also if you are implementing SysKeyboardAImpl_GetProperty you should also implement it's unicode counterpart SysKeyboardWImpl_GetProperty.
Realization of GetProperty for keyboard device for unicode and ascii do not differ at this time.
In ascii function you are calling unicode function and copying it's output (unicode string) to the ascii string buffer. This is wrong. Also because these functions deal with strings you have to implement both ascii and unicode functions at the same time. You can't forward one to the other.
Vitaliy.