IsNLSDefinedString

文字列内の各文字が、指定した NLS 機能について定義された結果を持つかを判定する。

IsNLSDefinedString Function, dwFlags, lpVersionInformation, lpString, cchStr

Function : [int] 問い合わせる NLS 機能。この値は COMPARE_STRING でなければならない。SYSNLS_FUNCTION 列挙体を参照のこと。
dwFlags : [int] 関数を定義するフラグ。0 でなければならない。
lpVersionInformation : [var] バージョン情報を含む NLSVERSIONINFO 構造体へのポインタ。通常、この情報は GetNLSVersion を呼んで取得する。現在のバージョンを使わせる場合、アプリケーションはこのパラメータを NULL に設定する。
lpString : [wstr] 検査する UTF-16 文字列へのポインタ。
cchStr : [int] lpString が示す文字列内の UTF-16 文字数。終端 null 文字を含めてもよい。終端 null 文字は常に定義済みとして扱われるので、カウントに含めてもチェック動作に影響しない。文字列が null 終端の場合はアプリケーションから -1 を指定すべきであり、この場合は関数自身が文字列長を計算する。

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

解説

文字列内の各文字が、指定した NLS 機能について定義された結果を持つかを判定する。

[戻り値]
成功し、かつ入力文字列が有効な場合のみ TRUE を返し、そうでなければ FALSE
を返す。拡張エラー情報を取得するには、アプリケーションから GetLastError を呼ぶ。次のいずれかのエラーコードが返ることがある:
(以下省略)

[備考]
この関数は定義済み文字列と未定義文字列を区別するので、Active Directory のようなアプリケーションが未定義コード
ポイントを含む文字列を拒否できる。この関数を使うと、アプリケーションがデータベースを再インデックスする必要性を最小限にできる。詳細は
Handling Sorting in Your Applications を参照のこと。例えば Function に
COMPARE_STRING を指定した場合、IsNLSDefinedString は未定義コード ポイント、未定義 Unicode
文字を表すサロゲート ペア、または不正な形式のサロゲート ペアをチェックする。特定の文字列に対して関数が TRUE
を返す場合、CompareString または LCMAP_SORTKEY を指定した LCMapString で取得した結果は、対応する
NLS バージョンが変わらない限り同一であることが保証される。

情報

プラグイン / モジュール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