I've checked what the problem could be..
On the primary i am running Ethereal , to check packets between Primary and secondary..
I noticed that byte 10 in some of the packet contains the character in Scan code if byte 14 is equal to 00 or 02 () 00 for keydown , and 02 for keyup .
I also noticed that the media related buttons generate virtual-key codes if byte 14 is 01 or 03 , again , 01 for keydown and 03 for key up..
So far so good , the server instance of multiplicity is apparently sending the relevant information to the client instance..
But , once there , when those keys end up in the Kb queue , they end up mapped as FF virtual-key strokes (all of them)...
(i did this by making a very small program that calls GetKeyboardState() every 1/10 of a second and displays all 256 values on screen... , i ran it on primary and secondary to see the difference )
So , somewhere in the client instance , when getting a 01 or 03 on byte 14 from the packets ,
Could the programmer in question try using a SendInput with a keyboardinput structure using wVk , instead of wScan values.. that would probably fix it .
.I'll also try and make a fix for myself , maybe with some kind of helper app that plays port proxy , or maybe some little client-server thing that runs parallel to multiplicity ..
When i have something , I'll make it available here (don't hold your breath ppl , lol)
It would be really cool if this could be fixed tho.. for VK_MEDIA_PLAY_PAUSE for example the server side app sends a nice code B3 , but the client side does something strange with it when it gets it .. Sigh...
Oh well , I'm sure the guys at multiplicity are all hard workers , and it will get fixed eventually..
I can also see that this little tool is probably not their primary concern compared to games etc..
Kind regards.
Tournicoti