Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

How to run an AVI inside a PictureBox control

Total Hit ( 1856)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


API Declarations

Click here to copy the following block
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

Click here to copy the following block
' 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

Click here to copy the following block
'Create a Form with a PictureBox and a Command Button
Option Explicit

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


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.