which is an elaboration of
https://en.wikipedia.org/wiki/Dynamic_Data_Exchange
A common use of COM was scripting with Visual Basic in the 1990s, for instance, ask Excel what is in cell B7, or dynamically load a GUI component out of a DLL and script it into a Visual Basic application.
This blends the boundaries between applications in that you might have a Word document that has an Excel spreadsheet embedded in it, and it really does boot up Excel and has Excel render itself in a rectangle inside the Word document.
Edit: I misremembered, that was the 90s as well because it was a later development in the Amiga ecosystem.
> A common use of COM was scripting with Visual Basic in the 1990s ...
This sounds nifty!
Want to integrate Windows Explorer in your application? COM.
Custom property pages in Windows Explorer? COM.
Custom folder view ala zip folder? COM.
Want Windows Explorer to be able to extract metadata from your custom file format, or Windows Search to search it? COM.
Want to play or manipulate video using the installed codecs? COM.
Want users to be able to drag an attachment from Outlook and drop it into your custom application? COM.
Just some examples. COM is a bit clunky, but it's a great enabler on the desktop.
https://docs.microsoft.com/en-us/windows/win32/shell/intro
https://docs.microsoft.com/en-us/windows/win32/properties/pr...
https://docs.microsoft.com/en-us/windows/win32/directshow/di...
https://docs.microsoft.com/en-us/windows/win32/shell/dragdro...
Want to play video games? DirectX is a COM API too.