Try this:
http://msdn.microsoft.com/vbrun/vbfu...t/default.aspx
"Mike Sharpe" <MikeSharpe@discussions.microsoft.comwrote in message
news:5A070168-261D-44E9-9628-3BD626567D25@microsoft.com...
Quote:
We have many old COM classes that are still in use. They were written in
VB6. We are now starting to do some things in C# however we cannot just
throw away everything from COM and start over. Our migration to C# will
be
Quote:
multi-phase and right now we just need proof of concept. Here's our
situation:
>
1. We need to create a DLL/TLB in C# that works in VB6
2. C# class needs to implement a VB6 class interface
3. C# class needs to be exported to COM TLB for use in VB6
>
>
>
Here is my basic code:
>
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
>
>
namespace UserBV
{
[ComVisible(true)]
public class UserBVInput: AlfaBVIO.BVInput
{
>
[ComVisible(true)]
void AlfaBVIO._BVInput.Initialize(ref DSDataObjects.DSDataType
iSettings)
{
>
}
>
[ComVisible(true)]
void AlfaBVIO._BVInput.GetScenarios(string iFileName, ref
System.Array oScenarios)
{
>
}
>
>
public BVInput()
{
>
}
>
~BVInput()
{
>
}
}
>
>
[ComVisible(true)]
public class BVOutput : AlfaBVIO.BVOutput
{
>
public BVOutput()
{
>
}
>
~BVOutput()
{
>
}
>
[ComVisible(true)]
void AlfaBVIO._BVOutput.Initialize(ref DSDataObjects.DSDataType
iSettings)
{
>
}
>
[ComVisible(true)]
void AlfaBVIO._BVOutput.Add(ref DSDataObjects.DSDataType
iFileHeader, ref DSDataObjects.DSDataType iBVSeries)
{
>
}
>
[ComVisible(true)]
void AlfaBVIO._BVOutput.Save()
{
>
}
}
}
>
>
>
I have the project file set according to "Register for COM interop" as
well
Quote:
as "Make assembly COM visible". I am able to reference the built TLB file
in
Quote:
a VB6 project but there are no public methods. The VB6 interface that I
must
Quote:
implement from is called AlfaBVIO.BVInput
>
Can someone please help me? I'm sure to anyone that has experienced this
before it is a no-brainer. This is just the first time I've ever had to
do
Quote:
something as odd as this.