Is there any hope of creating DMXControl plugins in .Net? I tried to do this but I've hit some major problems.
SUCCESS:
I was able to add a reference to DMXCTypeLib.dll without a problem.
SUCCESS:
I was able to import and implement the IDMXCPlugin and IDMXCModule interfaces without a problem.
PROBLEM:
Type_Module_Info.Messages did NOT seem to translate to .Net correctly. It is imported as type VBA.Collection and I can't add any items to the collection or create a new collection instance. Without this, I can't specify which messages I want to process.
SUCCESS:
I am able to register my .Net class for COM interop.
SUCCESS:
I believe I am able to specify the needed class name using the ProgID attribute.
PROBLEM:
Whenever DMXControl loads it tries to register the .Net .dll with COM. Internally this calls DllRegisterServer, which does not exist for .Net assemblies. .Net assemblies are registered using RegAsm.exe. .Net components can be created using their ProgID but cannot be registered in the way that DMXControl is attempting to register them.
The plugin I'm trying to write is an output plugin for the Rock Band stage kit, a cheap lighting kit for home use ($99 USD). The picture at that link shows a serial port, but serial is NOT supported in the retail kits. These kits connect to an XBOX 360 USB port and I have started reverse engineering the protocol on Windows using XNA (.Net). Light data is sent to these kits as controller vibration data. So I can control various lights by calling GamePad.SetVibration.
For more information about my hacking attempt, see here:
So, any thoughts? Will there ever be a way to load a .Net class as a plugin and allow that class to specify the messages it wants to recieve?