1. C# VS COM---------directly add the COM tlb as reference and then make use of com class just like native dotNet class.
2. C# VS unmanaged module------------PInvoke. More about PInvoke: System.Runtime.InteropServices Namespace
3. C++/CLI VS COM--------either #import the tlb like native C++ OR add reference to the tlb like dotNet.
4. C++/CLI VS unmanaged code--------mixed programming.