This article describes how to set the WaveAudio device (soundcard) used by
the Multimedia Control (MCI32.ocx) using Visual Basic.
To set the WaveAudio device (soundcard) used by the Multimedia Control, you
must use the mciSendCommand API. The Multimedia Control does not directly
provide a method to let you set the device used for playing or recording.
The following Visual Basic sample code shows how to use mciSendCommand to
specify the device used for WaveAudio output.
Following are the required definitions and declarations. Place these in a
Public Const MMSYSERR_NOERROR = 0
Public Const MCI_SET = &H80D
Public Const MCI_WAVE_OUTPUT = &H800000
dwCallback As Long
dwTimeFormat As Long
dwAudio As Long
wInput As Long
wOutput As Long
wFormatTag As Integer
wReserved2 As Integer
nChannels As Integer
wReserved3 As Integer
nSamplesPerSec As Long
nAvgBytesPerSec As Long
nBlockAlign As Integer
wReserved4 As Integer
wBitsPerSample As Integer
wReserved5 As Integer
Declare Function mciGetErrorString Lib "winmm.dll" _
Alias "mciGetErrorStringA" (ByVal dwError As Long, _
ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
Declare Function mciSendCommand Lib "winmm.dll" Alias _
"mciSendCommandA" (ByVal wDeviceID As Long, _
ByVal uMessage As Long, ByVal dwParam1 As Long, _
ByRef dwParam2 As Any) As Long
The following code sets the output device. This code assumes that you have
a Multimedia Control called "MMControl1." This code should be called after
the wave file to be played has been opened by MMControl1.
Dim parms As MCI_WAVE_SET_PARMS
Dim rc As Long
' Specify the soundcard. This specifies the soundcard with a deviceID
' of 0. If you have a single soundcard, then this will open it. If you
' have multiple soundcards, the deviceIDs will be 0, 1, 2, etc.
parms.wOutput = 0
' Send the MCI command to set the output device.
rc = mciSendCommand(MMControl1.DeviceID, MCI_SET, _
if (rc <> MMSYSERR_NOERROR) then
' The command failed.
See the mciSendCommand documentation in the Win32 SDK documentation.
Article ID: 180032 - Last Review: November 21, 2006 - Revision: 3.2
- Microsoft Win32 Application Programming Interface, when used with:
- Microsoft Windows 95
- Microsoft Windows NT 4.0