C++/CX is a set of language extensions to C++ that was created to make it easier to consume Microsoft’s most recent form of the Window’s API.
This API is exposed as a set WinRT classes.
These classes can be used from within a variety of languages.
While there are some C++/CX features to support consuming WinRT classes, it turns out that consuming them in C++ can be handled mostly the same way as consuming other COM classes.
But creating new C++ classes that can be consumed by other languages is harder.
These classes are COM classes under the covers, so all the reasons that make implementing regular COM implementations hard still apply: writing IDL, requiring MIDL, implementing IUknown, class factories, and registration.
Plus, there are new restrictions on interface definitions, three new methods that every class has to implement (IInspectable), and new activation requirements.
C++/CX hides all the COM complexity from the class implementer.
The developer can write a WinRT class almost as easily as writing a regular C++ class and, just by designating it as a ref class, the compiler generates everything necessary to consume the class in any other supported language.