FoldStringW 関数 (stringapiset.h)
1 つの Unicode 文字列を別の Unicode 文字列にマップし、指定した変換を実行します。 文字列関数の使用方法の概要については、「 文字列」を参照してください。
構文
int FoldStringW(
[in] DWORD dwMapFlags,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out, optional] LPWSTR lpDestStr,
[in] int cchDest
);
パラメーター
[in] dwMapFlags
文字列マッピング中に使用する変換の種類を指定するフラグ。 このパラメーターは、次の値と組み合わせて使用できます。
[in] lpSrcStr
関数がマップするソース文字列へのポインター。
[in] cchSrc
lpSrcStr で示されるソース文字列のサイズ (文字単位)。終端の null 文字を除きます。 アプリケーションでは、 パラメーターを負の値に設定して、ソース文字列が null で終了することを指定できます。 この場合、関数は文字列の長さを自動的に計算し、 lpDestStr で示されるマップされた文字列を null で終了します。
[out, optional] lpDestStr
この関数がマップされた文字列を取得するバッファーへのポインター。
[in] cchDest
lpDestStr で示される宛先文字列のサイズ (文字数)。 終端の null 文字のスペースが cchSrc に含まれている場合、 cchDest には終端の null 文字のスペースも含める必要があります。
アプリケーションで cchDest を 0 に設定できます。 この場合、関数は lpDestStr パラメーターを使用せず、マップされた文字列に必要なバッファー サイズを返します。 MAP_FOLDDIGITS フラグを指定した場合、実際に必要な文字数が最大サイズより小さい場合でも、戻り値は必要な最大サイズになります。 最大サイズが渡されない場合、関数は ERROR_INSUFFICIENT_BUFFER で失敗します。
戻り値
成功した場合は、翻訳された文字列の文字数 (終端の null 文字を含む) を返します。 関数が成功し、 cchDest の値が 0 の場合、戻り値は、終端の null 文字を含む、翻訳された文字列を保持するために必要なバッファーのサイズです。
成功しなかった場合、この関数は 0 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。このエラー コードは、次のいずれかのエラー コードを返すことができます。
- ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、 正しく NULL に設定されていません。
- ERROR_INVALID_DATA。 データが無効です。
- ERROR_INVALID_FLAGS。 フラグに指定された値が無効です。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
- ERROR_MOD_NOT_FOUND。 モジュールが見つかりませんでした。
- ERROR_OUTOFMEMORY。 この操作を完了するのに十分な記憶域が使用できませんでした。
- ERROR_PROC_NOT_FOUND。 必要な手順が見つかりませんでした。
注釈
lpSrcStr パラメーターと lpDestStr パラメーターの値は同じにすることはできません。 同じ場合、関数は ERROR_INVALID_PARAMETER で失敗します。
Unicode の互換性ゾーンは、文字の他のエンコード標準の文字に割り当てられているが、実際には Unicode に既に存在する文字のバリアントである0xFFEFを介して0xF900範囲内の文字で構成されます。 互換性ゾーンは、これらの標準へのラウンドトリップ マッピングをサポートするために使用されます。 アプリケーションでは、互換性ゾーン内の文字の重複をサポートしないように、MAP_FOLDCZONE フラグを使用できます。
Windows Vista 以降: この関数では、Unicode 正規化がサポートされています。 すべての Unicode 互換性文字がマップされます。
Windows Vista 以降: MAP_FOLDCZONE、MAP_PRECOMPOSED、および MAP_COMPOSITE フラグによって示される変換では、Unicode 正規化形式 KC、C、D ( NormalizeString 関数を使用) を使用してマッピングを実行します。
Windows 8 以降: 関数の ANSI バージョンは Winnls.h で宣言され、Unicode バージョンは Stringapiset.h で宣言されています。 Windows 8より前は、両方のバージョンが Winnls.h で宣言されていました。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | stringapiset.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |