PlayAVIPictureBox - Playing an AVI file in a PictureBox synchronously
<System.Runtime.InteropServices.DllImport("kernel32.dll")> Shared Function _
GetShortPathName(ByVal lpszLongPath As String, _
ByVal lpszShortPath As System.Text.StringBuilder, _
ByVal cchBuffer As Integer) As Integer
End Function
' Play an AVI file in a PictureBox synchronously.
'
' fileName is a string containing the full path of the file.
' window is the PictureBox in which you want that the movie
' is played; the movie is automatically resized to the picture box's dimentions
'
' Notes: requires the ExecuteMCICommand routine
Sub PlayAVIPictureBox(ByVal fileName As String, ByVal window As PictureBox)
Const WS_CHILD = &H40000000
Dim commandString As String
Dim shortFileName As New System.Text.StringBuilder(260)
' retrieve the file name in the short format (8+3 chars)
GetShortPathName(fileName, shortFileName, shortFileName.Capacity)
fileName = shortFileName.ToString()
' open the device
commandString = "open " & fileName & " type AVIVideo alias AVIFile parent " _
& window.Handle.ToString() & " style " & CStr(WS_CHILD)
ExecuteMCICommand(commandString, False)
' resize the movie to the PictureBox size
commandString = "put AVIFile window at 0 0 " & window.Width.ToString() & _
" " & window.Height.ToString()
ExecuteMCICommand(commandString, True)
' play the file
commandString = "Play AVIFile wait"
ExecuteMCICommand(commandString, True)
' close the device
commandString = "Close AVIFile"
ExecuteMCICommand(commandString, True)
End Sub