> Er... I thought UTF8 *is* a form of Unicode?

Well, kind of..


Looks like you are trying to convert UTF8 to UTF16, for what reason?

Because there're lots of API that expect "real" unicode, i.e. wide-character strings (wchar_t *).
But after thinking about it again... all the places, where I need it converted, are in windows-specific code anyway, so I'd better keep it as is, and where needed I'll just use MultiByteToWideChar().