Unfortunately it is not that simple. I used to think it was, but turned out it was not. I haven't played with it myself, but you at least need to call SetConsoleOutputCP() to set the console to Unicode. See http://msdn.microsoft.com/en-us/library/ms686036(VS.85).aspx .
You can also browse the net for examples. I once read a blog about this, but I could not find it.
Just had a look at the CRT code. _setmode() is not calling SetConsoleOutputCP()
In fact, there is not sign of a (direct) call to SetConsoleOutputCP() (or SetConsoleCP()) in the CRT (well, grep doesn't find one), so it appears there using their own parallel mechanism.
The call is setting an internal flag.
Also, there's a comment warning that "the CRT codepage is different from the Console codepage".
Andy
P.S. I have Visual Studio 2008 Professional, which includes the CRT source (etc) for reference. Though it is prob. a bit outdated thanks to Microsoft update.