MultiByteToWideChar
does not "translate". It converts between different character encodings.
Calling it like with your example code will convert strings using the specified codepage (1255 = ANSI Hebrew) to UTF-16LE (the Unicode encoding used internally by Windows). Character encoding means that binary codes are assigned to specific characters. The conversion just looks up the UTF-16LE codes for the codes of the input string according to the passed code page.
With 8-bit code pages like 125x ANSI, the lower 128 characters are mapped as they are (the high byte of the UTF-16LE output is zero) and the upper 128 characters are looked up. Example:
Character | ANSI-1255 | UTF-16LE |
---|
A | 0x41 | 0x0041 |
א | 0xE0 | 0x05D0 |
You are probably looking for a translation or transliteration. Windows does not provide such functions. So you have to write it yourself or search the web for existing code.