The USB ID Repository
Device class is identified by a single byte. It is stored as 2 hexadecimal digits (all in lowercase). They can be examined here.
A device class is divided into subclasses. Each subclass is identified in a same way as a device class, by single byte represented by 2 hexadecimal letters.
A subclass can have different program interfaces. An interface is identified by a single byte represented by 2 hexadecimal letters.
You can have a look at USB devices.