Проблемы с ToUnicodeEx

Привет! При написании одной программы я столкнулся с проблемой. Я использую Hook для перехвата клавиш и ToUnicodeEx для преобразования VirtualKey в unicode символ. С латиницей справляется хорошо, но другие раскладки превращает в бессмыслицу. Подскажите, ошибка кроется в вызове самой функции или сохранении содержимого буфера в файл?

Вызов ToUnicodeEx:

char keyBuff[256];

ToUnicodeEx((UINT)kbdStruct.vkCode,
                                  (UINT)kbdStruct.scanCode,
                                  keyState,
                                  (LPWSTR) keyBuff,
                                  sizeof(keyBuff) / 16,
                                  0,
                                  layout
                                  );

Вызов WriteFile:

WriteFile(OUTPUT_FILE, keyBuff, strlen(keyBuff), &dwTemp, NULL);

Можно с помощью ToUnicodeEx преобразовывать символ в нужный регистр? Если нет, то как это сделать - создавать таблицы символов для каждой раскладки?

Заранее спасибо за ответ.