The Microchip USB stack comes with an HID keyboard demo program. This project will help you create a composite HID device with the Microchip Stack. The stack is not ready for this type of application, so this project will take you as deep as you'll never need to be in the HID application layer.
There will be as usual a theoretical and a practical part. The theoretical will focus on the enumeration, more precisely on the different descriptors needed for a USB / Human Interface Device. The practical part will make you enumerate a composite device, made of a mouse, and a keyboard with extra features. It will be a very standard keyboard and mouse, but it will use advanced Windows USB functionality such as external program launch (you know, the cool Calculator / Internet... buttons on your keyboard). You need to be used to some parts of the Microchip USB stack, especially the ones in which you modify the report descriptor and the application communication. You can use the training that makes you create a mouse as a starter.