Atmel (and Microchip too I think) has a generic HID driver for their MCUs available, with full sourcecode at each end available (Client test software, and embedded HID stack).
Browsing Atmel's offering, they even have a full-blown keyboard demo board, again with source code.
It's not the simplest example (They've written their own task scheduler!), but I think it should be pretty easy to mod to do what you want.
Look in keyboard_task.c
on the above links keyboard demo (or here). It seems to be exactly what you want. A great big array of scancodes, being used to write a message to the computer by emulating a keyboard into any text editor.
The actual HID keystroke values are abstracted away using #define into a file called usb_commun_hid.h
, which seems to be not(!) included in the above download (I guess it comes with the compiler?), but they just map to plain old single byte values, so you should be able to add more all you want. (See the a00102.html
file in the above link.)
I would image Microchip has something similar, but I don't feel too much like digging through their implementation right now. If you want, I may be able to do so later.
Of course, this doesn't really do anything about how you're decoding these scancodes at the computer end, but again, Atmel does have .Net examples of how to talk to their HID devices, so something hackable should be available.