Information about system-wide DirectSound device properties can be obtained from an object of class CLSID_DirectSoundPrivate (11AB3EC0-25EC-11d1-A4D8-00C04FC28ACA). This class supports the IKsPropertySet interface. The CLSID and properties are defined in Dsconf.h.
The CLSID_DirectSoundPrivate object supports one property set, DSPROPSETID_DirectSoundDevice (84624F82-25EC-11d1-A4D8-00C04FC28ACA). This property set exposes the following three read-only properties.
This property retrieves the DirectSound device GUID corresponding to a specified Windows Multimedia device name.
Property data is contained in a DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA structure, available in ANSI and Unicode versions. This structure has the following members.
Member | Type | Description |
---|---|---|
DeviceName | String | [in] Name of device |
DataFlow | DIRECTSOUNDDEVICE_DATAFLOW | [in] Direction of data flow, either DIRECTSOUNDDEVICE_DATAFLOW_RENDER or DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE |
DeviceID | GUID | [out] DirectSound device ID |
This property retrieves a full description of a DirectSound device specified by GUID.
Property data is contained in a DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA structure, available in ANSI and Unicode versions. This structure has the following members.
Member | Type | Description |
---|---|---|
Type | DIRECTSOUNDDEVICE_TYPE | [out] Device type: DIRECTSOUNDDEVICE_TYPE_EMULATED, DIRECTSOUNDDEVICE_TYPE_VXD or DIRECTSOUNDDEVICE_TYPE_WDM |
DataFlow | DIRECTSOUNDDEVICE_DATAFLOW | [in, out] Direction of data flow, either DIRECTSOUNDDEVICE_DATAFLOW_RENDER or DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE |
DeviceID | GUID | [in] DirectSound device GUID, or NULL for the default device of the type specified by DataFlow |
Description | String | [out] Description of DirectSound device |
Module | String | [out] Module name of the DirectSound driver |
Interface | String | [out] PnP device interface name |
WaveDeviceID | ULONG | [out] Identifier of the corresponding Windows Multimedia device |
This property enumerates all DirectSound render or capture devices.
Property data is contained in a DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA structure, available in Ansi and Unicode versions. This structure has the following members.
Member | Type | Description |
---|---|---|
Callback | LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK | [in] Application-defined callback function. When IKsPropertySet::Get is called, this function is called once for each device enumerated. It takes as parameters a DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA structure describing the enumerated device, and the value in Context. |
Context | LPVOID | [in] User-defined value to be passed to the callback function for each device enumerated. |