Outside of legacy code, is there a reason to use COM (Component Object Model) C++ in 2020 if you're programming on Windows? Is there an alternative from Microsoft? My impression was that COM died off after Microsoft went all in on .NET, but now C++ seems to be having a resurgence within Microsoft. But whenever I look up a COM guide, it's from at least a decade ago. Does Microsoft recommend we use COM, Modern C++, or a mix of the two when developing on Windows, and do they have a guide somewhere?
COM is still the only binary object-to-object cross language interface on Windows. Late-binding COM is <i>still</i> a good thing.<p>What is somewhat dead is the idea of building server-side enterprise middle-tier in COM (COM+). That died when the dastardly Pet Store Wars ended and distributed transactions lost their hype.<p>What are you building?
A lot of Windows Internals are still relying on COM, especially those relative to Drivers, Authentication and Networking.<p>Take also for example GUIs made with ATL/MFC: these are using COM classes, especially in IPC.