@Sven Groot: Yes.
Further, WinRT (which is COM++ and one could argue where Microsoft is moving at the client app layer...) is exception-based (HRESULTS are used only at the lowest layer...). The problem is not the language, evildictaitor... COM is a foreign object model to C++ (this is why we created C++/CX: we don't want C++ developers to have to use HRESULTS in their WinRT apps/components....).
HRESULT has nothing to do with C++, as you well know...
In terms of exceptions versus error codes, that's a religious debate more than it is a technical one (modern exceptions aren't that expensive and of course the price of using exceptions is always related to what you're doing and where/how you're using them....).