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