ISpMMSysAudio::SetDeviceId

Microsoft Speech SDK

The Microsoft.com Speech website Microsoft Speech SDK SAPI 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.

    HRESULT hr = S_OK;

    // create the multimedia output object
    hr = cpMMSysAudio.CoCreateInstance(CLSID_SpMMAudioOut);
    // Check hr

    // set the output device to an alternate multimedia device (e.g. modem)
    hr = cpMMSysAudio->SetDeviceId(ALTERNATE_MM_DEVICE);
    // Check hr