Here's how:
0. you have a ready-to-go-project in VS.net (e.g. converted "BusyBox"-sample)
1. Make sure project is "COM interop"
2. Generate a GUID
3. Put this in the control-source just before the "public class":
<GuidAttribute("E1EA727B-5D11-42C1-91CE-16BF88AAF701"), ProgIdAttribute("RenamerCtrl_NET.RenamerCtrl")> _
Be sure to change the GUID to the (2) generated one
3a. I put the following in "assembly.vb" but I'm not sure if this is necessary:
<Assembly: ComVisible(True)>
<Assembly: CLSCompliant(True)>
<Assembly: AssemblyKeyFile("")>
4. use the "regasm.exe"-tool to generate a registry-file with COM-registration-information. e.g.:
REGEDIT4
[HKEY_CLASSES_ROOT\RenamerCtrl_NET.RenamerCtrl]
@="Renamer.RenamerCtrl"
[HKEY_CLASSES_ROOT\RenamerCtrl_NET.RenamerCtrl\CLSID]
@="{E1EA727B-5D11-42C1-91CE-16BF88AAF701}"
[HKEY_CLASSES_ROOT\CLSID\{E1EA727B-5D11-42C1-91CE-16BF88AAF701}]
@="Renamer.RenamerCtrl"
[HKEY_CLASSES_ROOT\CLSID\{E1EA727B-5D11-42C1-91CE-16BF88AAF701}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="Renamer.RenamerCtrl"
"Assembly"="Renamer, Version=1.0.1427.25463, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v1.1.4322"
[HKEY_CLASSES_ROOT\CLSID\{E1EA727B-5D11-42C1-91CE-16BF88AAF701}\InprocServer32\1.0.1427.25463]
"Class"="Renamer.RenamerCtrl"
"Assembly"="Renamer, Version=1.0.1427.25463, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v1.1.4322"
[HKEY_CLASSES_ROOT\CLSID\{E1EA727B-5D11-42C1-91CE-16BF88AAF701}\ProgId]
@="RenamerCtrl_NET.RenamerCtrl"
[HKEY_CLASSES_ROOT\CLSID\{E1EA727B-5D11-42C1-91CE-16BF88AAF701}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
5. Create the usual registry-file for MC:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\JRiver\Media Jukebox\Plugins\Interface\Renamer]
"IVersion"=dword:00000001
"Company"="2via Beratung"
"Version"="1.0.01"
"URL"="http://www.2via.de"
"Copyright"="Copyright (c) 2003, 2via Beratung"
"PluginMode"=dword:00000000
"CLSID"="{E1EA727B-5D11-42c1-91CE-16BF88AAF701}"
As you might see, CLSID is the (2) generated GUID
6. make sure the two reg-files are imported into the registry when the plugin is installed (I have not found a way to do it with the VS-Setup-Tool, but you might find out)
7. now it should work - works here
HTH,
Mirko