@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The AVIStreamReadFormat function reads the stream format data. !!!!C# Signature: [DllImport("avifil32.dll")] static extern int AVIStreamReadFormat(IntPtr pavi, int lPos, out WAVEFORMATEX lpFormat, out int lpcbFormat); !!!!VB Signature: 'Read the format for a Video stream <DllImport("avifil32.dll", entrypoint:="AVIStreamReadFormat")> _ Public Shared Function AVIStreamReadFormat(ByVal aviStream As IntPtr, ByVal lPos As Int32, ByRef lpFormat As BITMAPINFOHEADER, ByRef cbFormat As Int32) As Integer End Function 'Read the format for a audio stream <DllImport("avifil32.dll")> _ Public Shared Function AVIStreamReadFormat(ByVal aviStream As IntPtr, ByVal lPos As Int32, ByRef lpFormat As PCMWAVEFORMAT, ByRef cbFormat As Int32) As Integer End Function !!!!VB Structure: Public Structure BITMAPINFOHEADER Public biSize As Int32 Public biWidth As Int32 Public biHeight As Int32 Public biPlanes As Int16 Public biBitCount As Int16 '<MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> Public biCompression As Char() ' for recup directly char (string) FOURCC Public biCompression As Int32 Public biSizeImage As Int32 Public biXPelsPerMeter As Int32 Public biYPelsPerMeter As Int32 Public biClrUsed As Int32 Public biClrImportant As Int32 End Structure Public Structure PCMWAVEFORMAT Public wFormatTag As Short Public nChannels As Short Public nSamplesPerSec As Integer Public nAvgBytesPerSec As Integer Public nBlockAlign As Short Public wBitsPerSample As Short Public cbSize As Short End Structure !!!!VB BITMAPINFOHEADER Warning Public Shared Function AVIStreamReadFormat2(ByVal aviStream As IntPtr, ByVal lPos As Int32, ByRef lpFormat As BITMAPINFOHEADER, ByRef cbFormat As Int32) As Integer Dim hr As Integer = AVIStreamReadFormat(aviStream, lPos, lpFormat, cbFormat) If lpFormat.biBitCount > 24 Then lpFormat.biBitCount = 32 ElseIf lpFormat.biBitCount > 16 Then lpFormat.biBitCount = 24 ElseIf lpFormat.biBitCount > 8 Then lpFormat.biBitCount = 16 ElseIf lpFormat.biBitCount > 4 Then lpFormat.biBitCount = 8 ElseIf lpFormat.biBitCount > 0 Then lpFormat.biBitCount = 4 End If Return hr End Function !!!!Alternative Managed API: Do you know one? Please contribute it! !!!!Notes: None. !!!!Tips & Tricks: Please add some! !!!!Sample Code: Please add some! Documentation: AVIStreamReadFormat@msdn on MSDN
Edit avifil32.AVIStrea...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.