Say you’ve written a big complicated application in C++, composed of a large number of COM objects that chat to each other through custom interfaces declared in IDL.
After a decade or so of this, you’re not getting any younger and you don’t want to spend another decade looking at such ugly code. Or maybe you want to open up your product for extension by third parties but you want them to be able to use “modern” (.NET) languages. Either way, the interop support of the CLR is just what you need.
However, when you start reading about it, a question might occur to you. Well, it ought to, even if it doesn’t. How does garbage collection interact with COM reference counting?