The documentation is a bit lacking, as it appeared with WinRT, then we had UAP, and finally UWP. While it all boils down to the same, those marketing changes, did cause the documentation to keep changing.
Alongside C++/CX, there was the low level "Windows Runtime C++ Template Library (WRL)", which was basically an evolution of ATL, with MDIL 2.0.
https://docs.microsoft.com/en-us/uwp/winrt-cref/winrt-type-s...
The documentation is a bit lacking, as it appeared with WinRT, then we had UAP, and finally UWP. While it all boils down to the same, those marketing changes, did cause the documentation to keep changing.
Alongside C++/CX, there was the low level "Windows Runtime C++ Template Library (WRL)", which was basically an evolution of ATL, with MDIL 2.0.
https://docs.microsoft.com/en-us/cpp/cppcx/wrl/windows-runti...
Eventually MIDL improved to 3.0, as the work on C++/WinRT progressed.
https://docs.microsoft.com/en-us/uwp/midl-3/
https://channel9.msdn.com/Shows/ifdefWINDOWS/MIDL3-with-Larr...
Here are some technical documents and sessions related to WinRT.
"The Windows Runtime"
https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Th...
"Windows Runtime internals: understanding "Hello World""
https://channel9.msdn.com/events/Build/BUILD2011/PLAT-875T
The C++/WinRT talks from Kenny Kerr, related how they migrated from C++/CX language extensions to the C++17 compliant WinRT in chronological order.
"CppCon 2017: Scott Jones & Kenny Kerr “C++/WinRT and the Future of C++ on Windows”"
https://www.youtube.com/watch?v=7TdpWB_vRZM
"Effective C++/WinRT for UWP and Win32"
https://www.youtube.com/watch?v=nOFNc2uTmGs
"Meet C++/WinRT 2.0: Faster and smarter in the open"
https://www.youtube.com/watch?v=X41j_gzSwOY
Uff, hope this sheds some light on your questions and anyone else that wants to get a clearer picture of COM and its evolution into UWP.