Citez de pe codeproject(http://www.codeproject.com/Articles/262 ... ndamentals)
You can just directly use regular C++/COM to write WinRT applications. You could think of C++/CX being high-level WinRT access and regular COM as low-level access. But it's going to be a fairly large amount of work to get that working. You'll have to do all the stuff that the compiler does for you in high-level mode, such as creating the activation factory, implementing IUnknown and IInspectable. Manually deal with HSTRING. Make sure you handle ref-counts correctly. The QueryInterface part of doing things will be the least of your worries. And lastly, since COM does not really do inheritance the C++ way, WinRT uses a form of composition to emulate inheritance. So when you have multi-level object models, you'd end up writing even more code just to get it all to compile and run. Outside of an academic exercise, it makes no sense to subject any developer to those extremes.
There is an alternative though. It's called the Windows Runtime Library (or WRL for short). At the moment there is very little (zero in fact) documentation on MSDN (or anywhere else). It's basically the ATL equivalent for WinRT. WRL seems to be owned by the SDK team rather than the VC++ team, and you'll find the header files in this location (in the dev preview) : Program Files (x86)\Windows Kits\8.0\Include\winrt\wrl. I'd guess that at least parts of WinRT was developed using WRL, so it should be fairly bug-free by the time it RTMs. So if you absolutely want to avoid C++/CX then WRL should be your best option (straight COM most certainly would be an utter impracticality).
Intrebarea care o pun este urmatoarea: de ce nu au creat arhitectii de la Microsot asa ceva mai din timp?
De ce prefera sa creeze o tehnologie foarte complexa si apoi sa o simplifice? Adica dupa 15 ani de la Visual C++
aduc o simplificare si o automatizare tehnologiei COM. Nu inteleg unde apare un overhead adus de WinRT fata de folosirea ATL.