In this article I am going to explain how to access a .NET component from a COM client and accessing COM components from .NET clients.
COM is all about how little pieces of code find other little pieces of code and how they communicate with each other. COM precisely defines how this location and communication takes place.
In the .NET world little pieces of code still find and talk with little pieces of code but they don’t use COM. Hence if you want to access a .NET component from a COM client you cannot do it directly. The solution to this is CCW (COM callable wrapper) which acts as a proxy for the .NET object. Similarly if you want to access a COM component from a .NET client you will have to create a RCW (Runtime callable wrapper).
Accessing .NET Components from COM Clients
This example demonstrates how VB6 COM client using CCW accesses a Component developed in VB.NET.
VB.NET Component (testCCW.vb)
imports system
namespace CCWComponent
public class CCWClass
public function PassStr As String
PassStr = "Hi From .NET Component"
end function
end class
end namespace
Save this code to a text file with the name testCCW.vb.
Now compile this file from the command line with the statemant
Vbc /t:library testCCW.vb
The VBC compiler will create a testCCW.dll file for you, this is the .NET assembly.
Now, the next step is to create Com Callable Wrapper proxy for the component testCCW.dll file.
The regasm utility can register the .NET component and also create a .TLB file, which can be referenced from any COM client.
If you want to just resister the .NET component with the registry, use
Regasm testCCW.dll
- It will create the required registry entries.
- It is useful when you want to create late binded clients.
Join the conversation! Your thoughts help the community grow.