NormalizeString

Unicode 4.0 TR#15 に従ってテキスト文字列の文字を正規化する。詳細は「Unicode 正規化を使った文字列表現」を参照。

NormalizeString NormForm, lpSrcString, cwSrcLength, lpDstString, cwDstLength

NormForm : [int] 使用する正規化形式。NORM_FORM は標準の Unicode 正規化形式を指定する。
lpSrcString : [wstr] 非正規化の変換元文字列へのポインタ。
cwSrcLength : [int] 変換元文字列を格納するバッファの長さ(文字数)。文字列が null 終端されているとみなして長さを自動計算させたい場合、この引数を -1 に設定できる。
lpDstString : [wstr] 関数が変換先文字列を取得するバッファへのポインタ。あるいは cwDstLength が 0 の場合、この引数は NULL とする。注: 終端の null 文字を含めずに入力文字列長が明示的に指定されている場合、関数は文字列を null 終端しない。出力文字列を null 終端するには、入力文字列について -1 を指定するか、終端の null 文字を明示的に長さに含める。
cwDstLength : [int] 変換先文字列を格納するバッファの長さ(文字数)。あるいは、必要なバッファサイズを関数に返させたい場合は、この引数を 0 に設定することもできる。

(プラグイン / モジュール : kernel32.dll)

解説

Unicode 4.0 TR#15 に従ってテキスト文字列の文字を正規化する。詳細は「Unicode 正規化を使った文字列表現」を参照。

[戻り値]
変換先バッファ内の正規化された文字列の長さを返す。cwDstLength が 0
に設定されている場合、関数は実際の変換を行うのに必要なバッファ長の見積りを返す。入力バッファ内の文字列が null 終端されているか
cwSrcLength が -1 の場合、変換先バッファに書き込まれる文字列は null 終端され、返される文字列長には終端の null
文字が含まれる。成功しなかった場合、関数は 0 以下の値を返す。拡張エラー情報を取得するには、アプリケーションは GetLastError
を呼ぶことができ、次のいずれかのエラーコードを返すことがある。
(以下省略)

[備考]
一部の Unicode 文字は、結合文字や合成 Unicode 文字の集合からなる複数の等価なバイナリ表現を持つ。Unicode
標準は、文字の等価なバイナリ表現のいずれかを与えた場合に 1
つのバイナリ表現を返す、正規化と呼ばれる処理を定義している。正規化は、「Unicode
正規化を使った文字列表現」で述べられるように、異なる規則に従う正規化形式と呼ばれるいくつかのアルゴリズムで実行できる。Win32 および
.NET Framework は現在、Unicode Standard Annex #15: Unicode
正規化形式で定義されている正規化形式 C、D、KC、KD
をサポートする。正規化された文字列は通常、順序比較で評価される。次のコードはバッファ長推定の使用例を示す。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs