The wave/out device class consists of audio devices for low-level wave audio output. You access these devices by using the wave functions, which are described in the Platform SDK. Devices in this class are associated with line devices that support the LINEMEDIAMODE_AUTOMATEDVOICE media mode, which is specified in the dwMediaModes member of the LINEDEVCAPS structure for the line device.
The lineGetID and phoneGetID functions fill a VARSTRING structure, setting the dwStringFormat member to the STRINGFORMAT_BINARY value and appending this additional member:
DWORD DeviceId; // identifier of audio device
The DeviceId member is the identifier of a closed audio device. You use this identifier in a call to the waveOutOpen function to open the device for output. You can use the resulting device handle to play digitized audio data at the line or phone device.
Although a "wave" device class also exists for low-level wave audio devices, you should always use the wave/out device class for low-level wave output.