borderAndreaVB free resources for Visual Basic developersborder

AndreaVB Visual Basic and VB.NET source code resources - Copyright © 1999-2008 Andrea Tincani
:: How to run an AVI inside a PictureBox control

Author  

svs nagesh

Language  

VB5, VB6

Operating Systems  

Windows 9x, NT, Me, 2000, XP
API Declarations

Const WS_CHILD = &H40000000

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 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 GetShortPathName Lib "kernel32.dll" Alias _
    "GetShortPathNameA" (ByVal lpszLongPath As String, _
    ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Module

' 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


Sub PlayAVIPictureBox(FileName As String, ByVal Window As PictureBox)
    Dim RetVal As Long
    Dim CommandString As String
    Dim ShortFileName As String * 260
    Dim deviceIsOpen As Boolean

    
' Retrieve short file name format
    RetVal = GetShortPathName(FileName, ShortFileName, Len(ShortFileName))
    FileName = Left$(ShortFileName, RetVal)
    
    
' Open the device
    CommandString = "Open " & FileName & " type AVIVideo alias AVIFile parent " & _
    CStr(Window.hWnd) & " style " & CStr(WS_CHILD)
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal Then GoTo error
        
' remember that the device is now open
        deviceIsOpen = True
        
' Resize the movie to PictureBox size
        CommandString = "put AVIFile window at 0 0 " & CStr _
        (Window.ScaleWidth / Screen.TwipsPerPixelX) & " " & _
        CStr(Window.ScaleHeight / Screen.TwipsPerPixelY)
        RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal <> 0 Then GoTo error
   
    
' Play the file
    CommandString = "Play AVIFile wait"
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal <> 0 Then GoTo error
    
    
' Close the device
    CommandString = "Close AVIFile"
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal <> 0 Then GoTo error

    Exit Sub
    
error:
    
' An error occurred.
    ' Get the error description

    Dim ErrorString As String
    ErrorString = Space$(256)
    mciGetErrorString RetVal, ErrorString, Len(ErrorString)
    ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)

    
' close the device if necessary
    If deviceIsOpen Then
        CommandString = "Close AVIFile"
        mciSendString CommandString, vbNullString, 0, 0&
    End If

    
' raise a custom error, with the proper description
    Err.Raise 999, , ErrorString

End Sub

Usage
'Create a Form with a PictureBox and a Command Button
Option Explicit

Private Sub Command1_Click()
    PlayAVIPictureBox "c:\winnt\clock.avi", Picture1
End Sub
:: Navigation

Home

Video, Bitmaps and Colors Tips

Previous Tip

Next Tip

:: Search this site
Google
:: Related Topics
icon 10-03-2006 Re: I want to have a nested scrollable area (with buttons and controls) inside a dialog. by GeoffS
icon 30-04-2005 Re: how to make label sizes dynamic within a frame by maheeru
icon 06-02-2004 Re: Reduce flickering by Goran
icon 12-11-2003 Re: Clickable Line Control by vbgen
icon 28-02-2003 Re: HELP! (Again) This time on screen resolution... lol by JLRodgers
:: Sponsored Links



Partners: Il portale per lui e lei | Download Actual Software | Free Software Download
borderAndreaVB free resources for Visual Basic developersborder

borderAndreaVB Visual Basic and VB.NET source code resources - Copyright © 1999-2008 Andrea Tincaniborder