Тебе нужно преобразовать твою WideChar строку в мильтибайт строку в чарсете UTF-8.
т.е. все что нужно это заменить вызова макроса W2A на вызов функции WideCharToMultibyte и соответствующими параметрами.
Макрос W2A кстати тоже ее вызывает, но конвертирает в пультибайт строку в чарсете, который у тебя в реестре прописан на дефолтный (скорее всего 1251 иои 1252.)