Another option - the one they chose - was to provide a way of getting at a specific API handle for use with an existing or future media API. The API handle could then be used in subsequent calls to the media API. This doesn't require ISVs to learn new APIs nor does it require TAPI to change when a new media type is developed. Instead, if a device supports a specific kind of media, it simply provides an API handle for that media type when asked.
Media types are described by device classes. A device class is a description of a device that provides access to a specific type of media. A device class name is simply a string identifying a specific device class. The device classes defined for TAPI are:
|comm/datamodem||Modem through a communications port.|
|wave/in||Wave audio device for input only.|
|wave/out||Wave audio device for output only.|
|midi/in||Midi sequencer for input only.|
|midi/out||Midi sequencer for output only.|