This is one of the things about Microsoft APIs that gets me. They all depend on each other in weird ways that have less to do with practicality than they do with getting people on board to use the various Microsoft APIs. For example, DirectX depends on COM. It doesn't have to, but they're both Microsoft technologies so why not? You're going to need to learn how to use COM anyway; it's the future. Systemd is designed this way too; that's why I hate it, despite the fact that it won. It seems architected with a "getting people on board with using certain tools" mindset rather than orthogonally providing functionality.
But this... this takes the dependency tangle to whole new levels of comedy.
But this... this takes the dependency tangle to whole new levels of comedy.