так что-то кода регистрации я здесь не вижу
в VB.NET не силен, но в C# должны быть примерно такие строчки:
[ComRegisterFunction,
ComVisible(false)]
private static void RegisterFunction(System.Type registerType)
{
string key = string.Format(@"HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID);
MxExtension.Register(key);
}
[ComUnregisterFunction,
ComVisible(false)]
private static void UnregisterFunction(System.Type registerType)
{
string key = string.Format(@"HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID);
MxExtension.Unregister(key);
}
если в настройках проекта включена галка "Register for COM-interop", этот код вызовется и зарегистрирует в реестре нужную для Desktop инфу (или при вызове regasm с соответствующими ключами)
так что нужно курить в сторону атрибутов ComRegisterFunctionAttribute и ComUnregisterFunctionAttribute