<Return[MN]><Top>

MultiByteToWideChar

Declare Function Api_MultiByteToWideChar& Lib "kernel32" Alias "MultiByteToWideChar" (ByVal CodePage&, ByVal dwFlags&, ByVal lpMultiByteStr$, ByVal cchMultiByte&, ByVal lpWideCharStr$, ByVal cchWideChar&)

Declare Function MultiByteToWideChar Lib "kernel32" Alias "MultiByteToWideChar" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long) As Long

文字列をワイド文字列(Unicode)にマップする。この関数によってマップした文字列がマルチバイト文字セットに含まれるとは限らない。

パラメータ
CodePage
    変換に使うコードページを指定する。

    システムにインストールされているコードページ、またはシステムがサポートするコードページを指定することができる。

    または、次のいずれかの定数を指定する。

    定数                         

意味                                             

    CP_ACP

ANSI コードページ

    CP_MACCP

Macintosh コードページ

    CP_OEMCP

OEM コードページ

    CP_SYMBOL

シンボルコードページ(42)

    CP_THREAD_ACP

現在のスレッドの ANSI コードページ

    CP_UTF7

UTF-7 を使った変換

    CP_UTF8

UTF-8 を使った変換

dwFlags
    一連のビットフラグをセットする。

    構成済みワイド文字または合成ワイド文字のどちらに変換するか、制御文字の代わりにグリフ文字を使うかどうか、無効な文字をどのように

    処理するかを指定する。次のフラグ定数を組み合わせて指定することができる。

    定数                                       

意味                                                                                                        

    MB_PRECOMPOSED

 

常に構成済み文字(基本文字と送りなし文字の文字値が同じ文字)を使う。

これが既定の変換方法である。MB_COMPOSITE は同時にセットできない。

    MB_COMPOSITE

 

常に合成文字(基本文字と送りなし文字の文字値が異なる文字)を使う。

MB_PRECOMPOSED は同時にセットできない。

    MB_ERR_INVALID_CHARS

 

無効な入力文字があったときは関数が失敗し、GetLastError 関数を呼び出すと

ERROR_NO_UNICODE_TRANSLATION が返る。

    MB_USEGLYPHCHARS

制御文字の代わりにグリフ文字を使う。

    合成文字は、それぞれが異なる文字値を持つ基本文字と送りなし文字とで構成される。

    構成済み文字は、基本文字と送りなし文字の 1 つの組み合わせに 1 つの文字値が対応する。

    e という文字の場合、e が基本文字で綴り字記号(アクサングラーブ)が送りなし文字である。
    関数の既定の動作は、構成済み形式への変換である。構成済み形式が存在しない場合は合成形式への変換を試みる。
    MB_PRECOMPOSED と MB_COMPOSITE は同時にセットできない。

    MB_USEGLYPHCHARS と MB_ERR_INVALID_CHARS は、他のフラグの状態に関係なくセットすることができる。
lpMultiByteStr
    変換する文字列へのポインタを指定する。
cchMultiByte
    lpMultiByteStr が指す文字列のサイズをバイト単位で渡す。

    -1 を指定すると、文字列は NULL で終わっていると見なされ、長さが自動的に計算される。
lpWideCharStr
    変換後の文字列を受け取るバッファへのポインタを指定する。
cchWideChar
    lpWideCharStr が指すバッファのサイズをワイド文字数の単位で指定する。

    0 を指定すると、必要なバッファのサイズ(ワイド文字数)が返り、lpWideCharStr が指すバッファは使われない。
 

戻り値
    cchWideChar に 0 以外の値を指定し、関数が成功すると、lpWideCharStr が指すバッファに書き込まれたワイド文字の数が返る。
    cchWideChar に 0 を指定し、関数が成功すると、変換後の文字列を受け取るバッファに必要なサイズ(ワイド文字数)が返る。
    関数が失敗すると、0 が返る。

    拡張エラー情報を取得するには、GetLastError 関数を使う。GetLastError 関数は、次のいずれかのエラーコードを返す。
    ERROR_INSUFFICIENT_BUFFER
    ERROR_INVALID_FLAGS
    ERROR_INVALID_PARAMETER
    ERROR_NO_UNICODE_TRANSLATION