Hi all,
Following Code will allow you to run any AVI file in a Picture Box.
Comment and Rate it!
API Declarations
Module CODE
Using in a Form
Regards
>> ALI <<
Following Code will allow you to run any AVI file in a Picture Box.
Comment and Rate it!
API Declarations
Code:
Const WS_CHILD = &H40000000 Private Declare Function mciSendString Lib "[url="http://www.andreavb.com/API_WINMM.html"]winmm.dll[/url]" 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 "[url="http://www.andreavb.com/API_WINMM.html"]winmm.dll[/url]" Alias _ "mciGetErrorStringA" (ByVal dwError As Long, _ ByVal lpstrBuffer As String, ByVal uLength As Long) As Long Private Declare Function GetShortPathName Lib "[url="http://www.andreavb.com/API_KERNEL32.html"]kernel32.dll[/url]" Alias _ "GetShortPathNameA" (ByVal lpszLongPath As String, _ ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Code:
' 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
Using in a Form
Code:
'Create a Form with a PictureBox and a Command Button Option Explicit Private Sub Command1_Click() PlayAVIPictureBox "c:\winnt\clock.avi", Picture1 End Sub
>> ALI <<
Comment