Win32: use Unicode instead of ANSI/OEM APIs
As Windows NT and above uses Unicode internally (file paths, console I/O, what else?); we should get rid of ANSI/OEM calls.
This currently means replacing all invocations of FromLocale() and ToLocale() on Win32 (other stuff might be affected that would have slipped through the LibVLC Unicode switch might also be affected, but well, it can slip through another time...). Typical replacement consists of FromWide(), WideCharToMultiByte() or MultiByteToWideChar() and a equivalent Unicode-enabled Win32 API. Hopefully, we won't need to add any further utf8_wrapper but who knows...
A single grep yields these file:
modules/gui/ncurses.c
modules/gui/wxwidgets/dialogs/vlm/vlm_panel.cpp
modules/gui/wxwidgets/dialogs/open.cpp
modules/gui/wxwidgets/dialogs/wizard.cpp
modules/gui/wxwidgets/dialogs/playlist.cpp
modules/gui/wxwidgets/interface.cpp
modules/gui/wxwidgets/wxwidgets.hpp
modules/gui/wxwidgets/dialogs.cpp
modules/gui/skins2/src/theme_loader.cpp
modules/gui/skins2/src/theme_loader.hpp
modules/gui/skins2/src/theme_repository.cpp
modules/gui/skins2/src/skin_common.hpp
modules/gui/skins2/src/dialogs.cpp
modules/gui/skins2/win32/win32_dragdrop.cpp
modules/gui/skins2/parser/builder.cpp
modules/misc/gnutls.c
modules/demux/playlist/m3u.c
modules/access/gnomevfs.c
src/misc/configuration.c
src/text/unicode.c
src/libvlc.sym
src/libvlc-common.c
NCurses and GNOME VFS are not used on Win32. wxWidgets is actually fixed and anyway unmaintained. LibVLC matches are non-Win32 (or non-NT fallback) code, and the Unicode support itself.
Skins2 has its own ticket: #831 (closed). GnuTLS is a bit more tricky (no Unicode APIs), and low priority: #1108 (closed).
So this file still need investigation:
modules/demux/playlist/m3u.c