Adding a reference to MediaMonkey
Here you can find resources related to automating MediaMonkey in .NET (C#/VB.NET), including very simple beginners tips & tricks.
Adding a reference to MediaMonkey
- Choose Add Reference
- Go to the COM Tab
- Choose "MediaMonkey Library"
The base Namespace for MediaMonkey is SongsDB:
using SongsDB;
Subscribing to events
Subscribing to events does not work with external applications, like .NET applications if they make the connection to the MediaMonkey application. See:
A solution is presented in:
Walkthrough
This solution is based on making your assembly ComVisible, registering it and letting an auto-script in MediaMonkey create your application object. This can be accomplished by creating a class along the lines under.
- First build and run your program, then call the RegisterCOM() Method to register your application with COM.
(continued after C#-code)
using System.Reflection;
using System.Runtime.InteropServices;
using SongsDB;
namespace SomeNamespace {
[ComVisible(true)] // this overrides [assembly: ComVisible(false)] (is set by project options dialog) so registry don't get bloated with unneeded types
public class EventTest {
public SDBApplication SDB { get; private set; }
public static void RegisterCOM() {
RegistrationServices rs = new RegistrationServices();
rs.RegisterAssembly(Assembly.GetExecutingAssembly(),
AssemblyRegistrationFlags.SetCodeBase);
}
public static void UnRegisterCOM() {
RegistrationServices rs = new RegistrationServices();
rs.UnregisterAssembly(Assembly.GetExecutingAssembly());
}
public void Init(SDBApplication mm) {
this.SDB = mm;
this.SDB.set_Objects(Assembly.GetExecutingAssembly().GetName().Name, this);
this.SDB.OnPlay += () => { System.Windows.MessageBox.Show("OnPlay event fired!"); };
}
}
}
- Add an autoscript-to mediamonkey (ie. a file in ...\MediaMonkey\Scripts\Auto) named SomeScript.vbs that starts your application and runs the Init function. It's contents should be like this:
Sub OnStartup
Set o = CreateObject("SomeNamespace.EventTest")
o.Init(SDB)
End Sub
- When you now start MediaMonkey it will connect to your application and event firing will work.