Hi Lars,

On your first question, WinRT will be at least part of the answer for you. You will increasingly see component and library vendors (including us) publish their goods at WinRT components (or, at least, with WinRT wrappers). WinRT is good for these component/library scenarios because it is:

  1. High-performance because it's native (it's basically modern COM).
  2. Equally accessible from C++, .NET, and JavaScript
  3. The ABI is rich enough to represent a modern, well-factored, composable library in all of the above languages (classes, interfaces, generics, exception model, etc.)

This will result in more components/libraries available in all languages, including C++, because vendors can spend more time writing the code that matters and less time trying to target or tune to a particular programming language audience.

I said "at least part of the answer" earlier because WinRT handles the case of running on Windows 8 really well, but it doesn't solve the problem more generally down-level or cross-platform for C++. For this, there are some efforts just getting underway to improve the collection of standard (both de jure and de facto) C++ libraries, which Herb originally motivated in his talk at the GoingNative conference and has been leading since then.

As to your second question, you should check out Casablanca at http://msdn.microsoft.com/en-us/devlabs/casablanca.aspx. I think you'll find it includes much of what you're looking for, and we're taking on this work in a way that we expect to be palatable to both cross-platform implementations as well as eventual standardization of all or parts.

I hope that helps.

Steve