Understanding COM automation on Windows
Since learning about Windows in the late 90s, I have been fascinated by the automation and binary sharing technologies that Microsoft has created. At onepoint, ActiveX was a powerful piece of technology – although it wasn't so great for security.
The technology that enables these scenarios is called COM. It's a binary interoperability technology. You can write code in C++ and the exposed functionality can then be invoked by any other technology or scripting language that supports COM. This includes languages such as C#, Python, or PowerShell, besides others.
On Windows, a lot of things are implemented as COM objects underneath the surface. HTML rendering (Internet Explorer), Word, Excel, and even the .NET runtime is a COM object. This means that if you have a language that can create and invoke methods on a COM object, you can host the .NET runtime in your own applications. Do you want to run some VBScript? Well, there...