Microsoft Speech SDK Version 5.1
ISpMMSysAudio::SetDeviceId
ISpMMSysAudio::SetDeviceId sets the multimedia device ID.
HRESULT SetDeviceId(
UINT uDeviceId
);
Parameters
- uDeviceId
[in] The device ID of the device to set.
Return values
Value | Description |
---|---|
S_OK | Function completed successfully. |
SPERR_DEVICE_BUSY | Object is not in the SPAS_CLOSED state. |
SPERR_ALREADY_INITIALIZED | Object was created using an object token. |
E_INVALIDARG | uDeviceId is invalid. It is not set to WAVE_MAPPER or device does not exist. |
Remarks
This method works only on audio objects that were not created using an object token, and only when the object is in the SPAS_CLOSED state. This method should not be used in normal application development. SAPI provides tokens for all the available sound devices in a computer and these can be used to create an initialized SpMMSysAudio object. This method is available for non-standard multimedia audio devices. See the Simple Telephony sample for an example of when this method is useful.
Example
The following code snippet illustrates the use of ISpMMSysAudio::SetDeviceId.
// Declare local identifiers:
HRESULT hr = S_OK;
CComPtr<ISpMMSysAudio> cpMMSysAudio;
UINT ALTERNATE_MM_DEVICE = 1;
// Create the multimedia output object.
hr = cpMMSysAudio.CoCreateInstance(CLSID_SpMMAudioOut);
if (SUCCEEDED (hr))
{
// Set the output device to an alternate multimedia
// device (for example, the modem).
hr = cpMMSysAudio->SetDeviceId(ALTERNATE_MM_DEVICE);
}
if (SUCCEEDED(hr))
{
// Do stuff here.
}