Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB7
Expertise: Advanced
May 12, 2003



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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
Alberto Falossi
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date