You use the resulting string from WToUtf8 in this way once (the only time it's used, so you never check the return code boolean).  You use the bool from Utf8ToW as a check 2 out of 3 times, and the 3rd time you do a check based on the emptiness of the returned string (which is OK in that case).

It doesn't really matter either way - just something I noticed that looked a bit ugly. :)

The problem with reference to bool is you can't ignore it completely (when you don't care about errors) without having an ugly wrapper.