si no me equivoco:
1.- Devuelve Datos segun el comando
2.- Longitud Maximo de los Datos que se semiten en el 1ro
3.- es un Callback a un proceso si el string lo amerita
Te voy a poner un ejemplo de mcisenstrin completoo para ver si lo entiendes mejor:
Crea un nuevo proyecto y solo has esto
solo nesesitas un formulario y un timer con nombre timer1
cambia la ruta del archivo multimedio
Option Explicit
Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" _
(ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Error As Long
Private Reproduccion As String
Private archivo As String
Private TipoArchivo As String
Private alias As String
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
archivo = "E:\Mi música\Slayer\slayer - reign in blood - jesus saves(2).mp3" ' puede ser una imagen, video o musica (video y musica nesesitan los codecs instalados)
alias = "music"
TipoArchivo = "mpegvideo" ' Esto no importa tanto sea cual sea el tipo lo reproducira xP
Error = mciSendString("open " & Chr(34) & archivo & Chr(34) & " type " & TipoArchivo & " alias " & alias & " ", 0, 0, 0)
Debug.Print ChecarError
Error = mciSendString("play " & alias, 0, 0, 0) ' si es video o imagen puedes espesificar el HDC donde se reproducira icho elemento de lo contrio sera en una ventanilla emergente nueva
Debug.Print ChecarError
End Sub
Public Function ChecarError() As String
ChecarError = Space$(255)
mciGetErrorString Error, ChecarError, Len(ChecarError)
End Function
Private Sub Form_Unload(Cancel As Integer)
' All cierra Todo lo que este abierto por mci
'Error = mciSendString("close All", 0, 0, 0)
Error = mciSendString("close " & alias, 0, 0, 0)
Debug.Print ChecarError
End Sub
Private Sub Timer1_Timer()
Dim Data As String * 128
Error = mciSendString("status " & alias & " mode", Data, 128, 0)
Debug.Print ChecarError
Reproduccion = Left(Data, 7)
If Reproduccion = "playing" Then
Caption = "Reproduciendo"
Else
Caption = "Detenido"
End If
End Sub
P.D.: Si gustas te paso una Dll (InfraMedia.dll
Ir al Post) que hace esto y mucho mas!¡, tecnicamente esta dll es la que use para
Mi Reproductor de musica, solo que la dll es un compilado externo y en el reproductor esta source code mas no como dll.
Dulces Lunas!¡.