Though conversion is the best, you can use them as fantom222 stated. You will HAVE to use an interop assembly. An interop assembly is a wrapper around the COM object. All you need to do is add a new reference to your project, choose the COM tab, then find your registered COM object. VS will automatically run the tlbimp.exe program that's in the SDK directory to create the interop DLL which will live in the bin directory of your project. You will see a dll with a name matching your COM object (possibly proceeded by "Interop."). This DLL will be much smaller than the original COM DLL as it's only the wrapper for it. Remember that if you update any of the interfaces in the COM object you'll need to replace the reference inside of your .Net project so the interop can be regenerated for the updated COM. Once you have the reference in there you can just instantiate the objects in .Net the same way as any other .Net assembly (not by using the COM class ID).
I have spoken with some microsoft people while I was troubleshooting a COM interop problem and they told me something interesting about using COM classes in .Net. When you use a COM class you should dimension it and instantiate it like this (let's say our COM object is "ABC" and it has one class, "xyz"):
Dim objXYZ As ABC.xyz
objXYZ = New ABX.xyxClass
Apparently when tlbimp creates the interop, it creates the class wrapper (xyzClass) AND a class interface (xyz). MS says to dim it as the interface type, but to instantiate it as the class type. I started
another thread in this forum regarding this.
Peter