---
name: "MultiByteToWideChar"
section: "3w"
platform: "linux"
package: "libwine-dev"
version: "1.4.1-4"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/MultiByteToWideChar"
---

# MultiByteToWideChar(3w)

## NAME

**MultiByteToWideChar** (KERNEL32.@)

## SYNOPSIS

INT MultiByteToWideChar\
  (\
   UINT   *page*,\
   DWORD  *flags*,\
   LPCSTR *src*,\
   INT    *srclen*,\
   LPWSTR *dst*,\
   INT    *dstlen*\
  )

## DESCRIPTION

Convert a multibyte character string into a Unicode string.

## PARAMS

*page* **\[In\]**  Codepage character set to convert from.

*flags* **\[In\]**  Character mapping *flags*.

*src* **\[In\]**  Source string buffer.

*srclen* **\[In\]**  Length of *src* (in bytes), or **-1** if *src* is **NUL** terminated.

*dst* **\[Out\]**  Destination buffer.

*dstlen* **\[In\]**  Length of *dst* (in WCHARs), or **0** to compute the required length.

## RETURNS

**Success:** If *dstlen* \> **0**, the number of characters written to *dst*. If *dstlen* == **0**, the number of characters needed to perform the conversion. In both cases the count includes the terminating **NUL**.

**Failure:** **0.** Use **[GetLastError(3w)](/GetLastError/3w.md)** to determine the cause. Possible errors are **ERROR\_INSUFFICIENT\_BUFFER**, if not enough space is available in *dst* and *dstlen* != 0; **ERROR\_INVALID\_PARAMETER**, if an invalid parameter is passed, and **ERROR\_NO\_UNICODE\_TRANSLATION** if no translation is possible for *src*.

## IMPLEMENTATION

Declared in **"winnls.h"**.

Implemented in **"dlls/kernel32/locale.c"**.

Debug channel **"nls"**.
