1Attribute VB_Name = "MediaInfoDLL" 2Option Explicit 3 4' Include this module in your Visual Basic project for access to MediaInfo.dll and 5' keep two things in mind concerning strings for Unicode ability: 6' 7' 1. All strings (constants and variables) passed to MediaInfo must be passed with StrPtr(). 8' 2. All strings returned by MediaInfo must be converted with bstr() to a Visual Basic String. 9' 10' This module is tested and will work with Visual Basic 5 and 6 on Windows 98SE and 2000 11' (at least). 12' 13' Use at own risk, under the same license as MediaInfo itself. 14' 15' Ingo Br�ckl, May 2006 16 17#If MEDIAINFO_NO_ENUMS Then 18#Else 19 20Public Enum MediaInfo_stream_C 21 MediaInfo_Stream_General 22 MediaInfo_Stream_Video 23 MediaInfo_Stream_Audio 24 MediaInfo_Stream_Text 25 MediaInfo_Stream_Chapters 26 MediaInfo_Stream_Image 27 MediaInfo_Stream_Menu 28 MediaInfo_Stream_Max 29End Enum 30 31Public Enum MediaInfo_info_C 32 MediaInfo_Info_Name 33 MediaInfo_Info_Text 34 MediaInfo_Info_Measure 35 MediaInfo_Info_Options 36 MediaInfo_Info_Name_Text 37 MediaInfo_Info_Measure_Text 38 MediaInfo_Info_Info 39 MediaInfo_Info_HowTo 40 MediaInfo_Info_Max 41End Enum 42 43Public Enum MediaInfo_infooptions_C 44 MediaInfo_InfoOption_ShowInInform 45 MediaInfo_InfoOption_Support 46 MediaInfo_InfoOption_ShowInSupported 47 MediaInfo_InfoOption_TypeOfValue 48 MediaInfo_InfoOption_Max 49End Enum 50 51#End If 52 53Public Declare Sub MediaInfo_Close Lib "MediaInfo.dll" (ByVal Handle As Long) 54Public Declare Sub MediaInfo_Delete Lib "MediaInfo.dll" (ByVal Handle As Long) 55Public Declare Function MediaInfo_Count_Get Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal StreamKind As MediaInfo_stream_C, ByVal StreamNumber As Long) As Long 56Public Declare Function MediaInfo_Get Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal StreamKind As MediaInfo_stream_C, ByVal StreamNumber As Long, ByVal Parameter As Long, ByVal InfoKind As MediaInfo_info_C, ByVal SearchKind As MediaInfo_info_C) As Long 57Public Declare Function MediaInfo_GetI Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal StreamKind As MediaInfo_stream_C, ByVal StreamNumber As Long, ByVal Parameter As Long, ByVal InfoKind As MediaInfo_info_C) As Long 58Public Declare Function MediaInfo_Inform Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal Reserved As Long) As Long 59Public Declare Function MediaInfo_New Lib "MediaInfo.dll" () As Long 60Public Declare Function MediaInfo_New_Quick Lib "MediaInfo.dll" (ByVal File As Long, ByVal Options As Long) As Long 61Public Declare Function MediaInfo_Open Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal File As Long) As Long 62Public Declare Function MediaInfo_Open_Buffer Lib "MediaInfo.dll" (ByVal Handle As Long, Begin As Any, ByVal Begin_Size As Long, End_ As Any, ByVal End_Size As Long) As Long 63Public Declare Function MediaInfo_Option Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal Option_ As Long, ByVal Value As Long) As Long 64Public Declare Function MediaInfo_Save Lib "MediaInfo.dll" (ByVal Handle As Long) As Long 65Public Declare Function MediaInfo_Set Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal ToSet As Long, ByVal StreamKind As MediaInfo_stream_C, ByVal StreamNumber As Long, ByVal Parameter As Long, ByVal OldParameter As Long) As Long 66Public Declare Function MediaInfo_SetI Lib "MediaInfo.dll" (ByVal Handle As Long, ByVal ToSet As Long, ByVal StreamKind As MediaInfo_stream_C, ByVal StreamNumber As Long, ByVal Parameter As Long, ByVal OldParameter As Long) As Long 67Public Declare Function MediaInfo_State_Get Lib "MediaInfo.dll" (ByVal Handle As Long) As Long 68 69Private Declare Function lstrlenW Lib "kernel32" (ByVal pStr As Long) As Long 70Private Declare Sub RtlMoveMemory Lib "kernel32" (pDst As Any, pSrc As Any, ByVal bLen As Long) 71 72Public Function bstr(ptr As Long) As String 73' convert a C wchar* to a Visual Basic string 74 75 Dim l As Long 76 77 l = lstrlenW(ptr) 78 bstr = String$(l, vbNullChar) 79 80 RtlMoveMemory ByVal StrPtr(bstr), ByVal ptr, l * 2 81 82End Function 83