SetThreadLocale changes the locale used by MultiByteToWideChar when the CodePage parameter is set to CP_THREAD_ACP. It can be set per thread, but I believe you have to call _configthreadlocale(_ENABLE_PER_THREAD_LOCALE); first
SetThreadLocale
MultiByteToWideChar
CodePage
CP_THREAD_ACP
_configthreadlocale(_ENABLE_PER_THREAD_LOCALE);