SUMMARY
MultiByteToWideChar() maps a character string to a wide-character string.
The declaration of this application programming interface (API) is as
follows:
int MultiByteToWideChar(uCodePage, dwFlags, lpMultiByteStr,
cchMultiByte, lpWideCharStr, cchWideChar)
UINT uCodePage; /* codepage */
DWORD dwFlags; /* character-type options */
LPCSTR lpMultiByteStr; /* address of string to map */
int cchMultiByte; /* number of characters in string */
LPWSTR lpWideCharStr; /* address of wide-character buffer */
int cchWideChar; /* size of wide-character buffer */
The first parameter, uCodePage, specifies the codepage to be used when
performing the conversion. This discussion applies to the first parameter
of WideCharToMultiByte() as well. The codepage can be any valid codepage
number. It is a good idea to check this number with IsValidCodepage(), even
though MultiByteToWideChar() returns an error if an invalid codepage is
used. The codepage may also be one of the following values:
CP_ACP ANSI codepage
CP_OEMCP OEM (original equipment manufacturer) codepage
CP_ACP instructs the API to use the currently set default Windows ANSI
codepage. CP_OEMCP instructs the API to use the currently set default OEM
codepage.
If Win32 ANSI APIs are used to get filenames from a Windows NT system, use
CP_ACP when converting the string. Windows NT retrieves the name from the
physical device and translates the OEM name into Unicode. The Unicode name
is translated into ANSI if an ANSI API is called, then it can be translated
back into Unicode with MultiByteToWideChar().
If filenames are being retrieved from a file that is OEM encoded, use
CP_OEMCP instead.