I'm having trouble turning a .NET EXE that invokes a VB6 COM DLL that invokes a .NET DLL into a side by side application. I've created a COM Visible .NET DLL in .NET (called COMVisibleDotNetDLL.dll):
<ComClass(TestClass.ClassId, TestClass.InterfaceId, TestClass.EventsId)> _
Public Class TestClass
#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. If you change them, existing
' clients will no longer be able to access the class.
Public Const ClassId As String = "e8b39720-c4a5-466e-b58d-6906026b6a1d"
Public Const InterfaceId As String = "b3c49fd4-5adb-4d71-b5a0-e9d22d8b4b8c"
Public Const EventsId As String = "f2b6e8a2-3344-4968-86c7-4cdcf07ab81d"
' A creatable COM class must have a Public Sub New()
' with no parameters, otherwise, the class will not be
' registered in the COM registry and cannot be created
' via CreateObject.
Public Sub New()
Public Sub HelloWorld()
MsgBox("This is COMVisibleDotNetDLL.TestClass.HelloWorld() saying ""Hello!""")
I've then created a VB6 COM DLL (called VB6DLLCallingDotNet.dll) that invokes this COM Visible .NET DLL:
Public Sub CallDotNet()
MsgBox "This is
View Complete Post