<Return[F]><Top>

FoldString

Declare Function Api_FoldString& Lib "kernel32" Alias "FoldStringA" (ByVal dwMapFlags&, ByVal lpSrcStr$, ByVal cchSrc&, ByVal lpDestStr$, ByVal cchDest&)

Declare Function FoldString Lib "kernel32" Alias "FoldStringA" (ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long

文字列に対して指定した変換を実行し、別の文字列にマップする。

パラメータ
dwMapFlags
    マップ時に行う変換を指定する一連のビットフラグセットを指定する。次のビットフラグ定数を組み合わせて指定する。
 

    定数                                         

意味                                                                                                                           

    MAP_FOLDCZONE

互換性ゾーン文字を標準 Unicode 文字に変換する。

    MAP_FOLDDIGITS

すべての数字を Unicode 文字の 0〜9 にマップする。

    MAP_PRECOMPOSED

 

アクセント付き文字を、アクセントと基本文字を組み合わせて単一の文字値にした構成済み文字にマップする。MAP_COMPOSITE と同時にはセットできない。

    MAP_COMPOSITE

 

アクセント付き文字を、アクセントと基本文字を 2 つの文字値で表した合成文字にマップする。MAP_PRECOMPOSED と同時にはセットできない。

    MAP_EXPAND_LIGATURES

 

すべての合字を 2 文字で表現する。たとえば、‘諱fを‘a’と‘e’の 2 文字にする。MAP_PRECOMPOSED、MAP_COMPOSITE と同時にはセットできない。

lpSrcStr
    マップ元文字列へのポインタを指定する。
cchSrclpSrcStr
    パラメータが指す文字列のサイズを、バイト単位(ANSI 版)、または文字単位(Unicode 版)で指定する。cchSrc に -1 を指定すると、

    lpSrcStr は NULL で終わる文字列へのポインタと見なされ、長さが自動的に計算される。lpDestStrマップ先文字列を格納するバッファへ

    のポインタを指定する。cchDestlpDestStr パラメータが指すバッファのサイズを、バイト単位(ANSI 版)、または文字単位(Unicode 版)で指

    定する。0 を指定すると、マップ先文字列を保持するために必要なバイト数または文字数が返され、lpDestStr パラメータが指すバッファは

    使われない。

戻り値
    関数が成功すると、マップ先文字列用バッファに書き込まれたバイト数(ANSI 版)、または文字数(Unicode 版)が返る。cchDest パラメータ

    に 0 を指定した場合は、マップ先文字列を保持するために必要なバイト数(または文字数)が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。GetLastError 関数は次のいずれかのエラー

    コードを返す。
    ERROR_INSUFFICIENT_BUFFER
    ERROR_INVALID_FLAGS
    ERROR_INVALID_PARAMETER

解説
    マップ元文字列が NULL で終わる場合は、マップ先文字列も NULL で終わる。
    lpSrcStr パラメータと lpDestStr パラメータには、同じ値を指定できない。同じ値を指定すると関数が失敗し、GetLastError 関数が

    ERROR_INVALID_PARAMETER を返す。
    Unicode の互換性ゾーンは、他の文字符号化規格の文字に割り当てられ、しかも Unicode にすでに含まれている文字の変形である、

    0xF900〜0xFFEF の範囲の文字から構成される。MAP_FOLDCZONE フラグを使えば、互換性ゾーンにある文字を重複してサポートしな

    いようにすることができる。