I have the following COM object installed on one of our servers that I need to rewrite ... some old code uses the object as follows:
Set oEmail = CreateObject("SSDSCommunicator.EmailClass") oEmail.Send(szFrom, szRecipients, szSubject, szEmailBody, SMTPServer, szErr, "", , , , True)
I followed suit in this , but I'm struggling to register a COM component.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Mail; using System.Runtime.InteropServices; namespace SSDSCommunicator { [InterfaceType(ComInterfaceType.InterfaceIsDual), Guid("DB38A91C-9EB6-4472-9A49-40722431E096")] public interface IEmailClass { void launch(); bool Send(string szFrom, string szTo, string szSubject, string szMessage, string szSMTPServer, ref object szError, string szAttachments = "", string szReplyTo = "", string szCC = "", string szBCC = "", bool bHTMLBody = false); } [ClassInterface(ClassInterfaceType.None), Guid("A00C16DA-1791-4A3A-8D16-4765A9FAD060"), ProgId("SSDSCommunicator.EmailClass")] public class EmailClass : IEmailClass { private string path = null; public void launch() { Console.WriteLine("I launch scripts for a living."); } public bool Send(string szFrom, string szTo, string szSubject, string szMessage, string szSMTPServer, ref object szError, string szAttachments = "", string szReplyTo = "", string szCC = "", string szBCC = "", bool bHTMLBody = false) { ... } } }
The project is successfully completed. How to register a dll as a COM object so that the old VB6 code works?
I marked the register for COM interoperability and will make COM assemblies visible in the project settings.
I was not lucky with regsvr32 (no entry point) or regasm ...
The COM object looks like this on the old server:

Edit
Should I see a COM object in component services after running the regasm command?
regasm C:\...\SSDSCommunicator.dll /CodeBase