[DllImport("avifil32.dll")]
static extern int AVIFileOpen(out IntPtr ppfile, string szFile, uint mode, int pclsidHandler);
Private Declare Function AVIFileOpen Lib "avifil32" Alias "AVIFileOpenA" (ByRef ppfile As Integer, ByVal szFile As String, ByVal mode As Integer, ByVal pclsidHandler As Integer) As Integer
Structure AVIInfo
Dim dwMaxBytesPerSec As Long
Dim dwFlags As Long
Dim dwCaps As Long
Dim dwStreams As Long
Dim dwSuggestedBufferSize As Long
Dim dwWidth As Long
Dim dwHeight As Long
Dim dwScale As Long
Dim dwRate As Long
Dim dwLength As Long
Dim dwEditCount As Long
<VBFixedString(64), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=64)> Public szFileType As String
End Structure
Do you know one? Please contribute it!
None.
Please add some!
Structure AVIInfo
Dim dwMaxBytesPerSec As Long
Dim dwFlags As Long
Dim dwCaps As Long
Dim dwStreams As Long
Dim dwSuggestedBufferSize As Long
Dim dwWidth As Long
Dim dwHeight As Long
Dim dwScale As Long
Dim dwRate As Long
Dim dwLength As Long
Dim dwEditCount As Long
<VBFixedString(64), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=64)> Public szFileType As String
End Structure
'if a valid file, return the AVIFILEINFO structure
public Function Avi_Lenght(ByVal sAVIFile as String) as int32
Dim hFile As Long
Dim AFI As AVIFILEINFO
'initialize the AVIFile library
AVIFileInit()
If AVIFileOpen(hFile, sAVIFile, OF_SHARE_DENY_WRITE, 0&) = 0 Then
Dim aviFileInfo_lsize = Marshal.SizeOf(GetType(AVIFILEINFO))
AVIFileInfo(Instance, AFI , aviFileInfo_lsize)
Else
'Your Error handling Here
end If
AVIFileExit()
Return System.Math.Round(AFI .dwLength / ((AFI .dwRate / AFI .dwScale)), 3)
End Function
A full working version is located here http://ess-image.com/Graphic/Video/AviInfo.aspx Reading AVI information In VB .net
This sample as well as other image procssing source code provided by http://Ess-image.com">Ess-image.com
microsoft.public.dotnet.framework.interop has a working example code to call AVIInit, AVIExit, and AVIFileInfo.