mciSendString (winmm)
Last changed: -95.49.24.22

.
Summary
> The mciSendString function sends a command string to an MCI device. The device that the command is sent to is specified in the command string

C# Signature:

[DllImport("winmm.dll")]
static extern Int32 mciSendString(String command,
   StringBuilder buffer, Int32 bufferSize, IntPtr hwndCallback);

OR

[DllImport("winmm.dll")]
static extern Int32 mciSendString(String command,
   StringBuilder buffer, Int32 bufferSize, long hwndCallback);

VB Signature:

Declare Function mciSendStringA Lib "winmm.dll" (command As String, _
   buffer As StringBuilder, bufferSize As Int32, _
   hwndCallback As IntPtr) As Int32

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

// Open CD-ROM Drive Door
public void OpenCD()
{
    IntPtr ptr = IntPtr.Zero;
    StringBuilder returnstring = new StringBuilder();
    mciSendString("set CDAudio door open", returnstring,127, IntPtr.Zero);
}
// =========================================
// Open Media File
string sCommand = "open \"" + strFilePath + "\" type mpegvideo alias MediaFile";
mciSendString(sCommand, null, 0, 0);

// Play the Media File
sCommand = "play MediaFile notify";
// _frmObject is your form that will handle the nofificaiton messages
mciSendString(sCommand, null, 0, _frmObject.Handle.ToInt64());

// Declare the nofify constant
public const int MM_MCINOTIFY = 953;

// Override the WndProc function in the form
protected override void WndProc(ref Message m)
{
    if (m.Msg == MM_MCINOTIFY)
    {
        // The file is done playing, do whatever
    }

    base.WndProc(ref m);
}

VB SAMPLE

// Open the CD door in VB
Public Sub OpenCDDoor
    Dim intPtr As IntPtr = intPtr.Zero
    Dim returnstring As New StringBuilder(127)
    mciSendStringA("set CDAudio door open", returnstring, 127, intPtr)
End Sub

Alternative Managed API:

Do you know one? Please contribute it!

Documentation