VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "Plugin"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Public Type BASS_PLUGININFO
    Version As Long       ' version (same form as BASS_GetVersion)
    formatc As Long       ' number of formats
    formats() As Long       ' the array of formats
End Type

Private Declare Function BASS_PluginFree Lib "bass.dll" (HandlePlugin As Long) As Boolean
Private Declare Function BASS_PluginLoad Lib "bass.dll" (ByRef filename As String, flags As Long) As Long
Private Declare Function BASS_PluginGetInfo Lib "bass.dll" (HandlePlugin As Long) As BASS_PLUGININFO

Private mHandle As Long

Function PluginFree() As Boolean
PluginFree = BASS_PluginFree(mHandle)
End Function

Sub PluginLoad(ByRef filename As String, Optional flags As Long = BASS_UNICODE)
mHandle = BASS_PluginLoad(filename, flags)
End Sub

Function PluginGetInfo() As BASS_PLUGININFO
PluginGetInfo = BASS_PluginGetInfo(mHandle)
End Function

Property Get Handle() As Long
Handle = mHandle
End Property
