FindNLSStringEx

名前で指定されたロケールに対して、Unicode 文字列(ワイド文字)またはその等価物を別の Unicode 文字列内で検索する。注意: 非常に異なるバイナリ表現を持つ文字列が同一として比較される可能性があるため、この関数は特定のセキュリティ上の懸念を引き起こすことがある。詳細は Security Considerations:_International Features 内の比較関数の説明を参照。

FindNLSStringEx lpLocaleName, dwFindNLSStringFlags, lpStringSource, cchSource, lpStringValue, cchValue, pcchFound, lpVersionInformation, lpReserved, sortHandle

lpLocaleName : [wstr] ロケール名へのポインタ、または以下の定義済み値のいずれか。
dwFindNLSStringFlags : [int] 検索操作の詳細を指定するフラグ。これらのフラグは互いに排他的で、FIND_FROMSTART がデフォルトである。アプリケーションは、次の表で定義されているフィルタリングフラグのいずれかと共に検索フラグの 1 つだけを指定できる。アプリケーションがフラグを指定しない場合、関数は指定されたロケールのデフォルト比較を使用する。Handling Sorting in Your Applications で説明されているように、バイナリ比較モードはない。
lpStringSource : [wstr] lpStringValue で指定された文字列を関数が検索する対象のソース文字列へのポインタ。
cchSource : [int] lpStringSource が指す文字列のサイズ(終端 NULL 文字を除く文字数)。アプリケーションはこのパラメータに 0 や -1 以外の負の数を指定できない。ソース文字列が NULL 終端で関数がサイズを自動計算すべき場合、アプリケーションは -1 を指定する。
lpStringValue : [wstr] 関数がソース文字列内で検索する検索文字列へのポインタ。
cchValue : [int] lpStringValue が指す文字列のサイズ(終端 NULL 文字を除く文字数)。アプリケーションはこのパラメータに 0 や -1 以外の負の数を指定できない。検索文字列が NULL 終端で関数がサイズを自動計算すべき場合、アプリケーションは -1 を指定する。
pcchFound : [var] 関数が見つけた文字列の長さを含むバッファへのポインタ。文字列は検索文字列より長くも短くもなりうる。関数が検索文字列を見つけられなかった場合、このパラメータは変更されない。関数はこのパラメータに NULL を取得することができる。この場合、関数は見つかった文字列の長さがソース文字列の長さと異なるかどうかを示さない。pcchFound の値はしばしば cchValue で提供された値と同じだが、次の場合に異なることがある。
lpVersionInformation : [var] 予約。NULL でなければならない。
lpReserved : [intptr] 予約。NULL でなければならない。
sortHandle : [intptr] 予約。0 でなければならない。

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

解説

名前で指定されたロケールに対して、Unicode 文字列(ワイド文字)またはその等価物を別の Unicode 文字列内で検索する。注意:
非常に異なるバイナリ表現を持つ文字列が同一として比較される可能性があるため、この関数は特定のセキュリティ上の懸念を引き起こすことがある。詳細は
Security Considerations:_International Features 内の比較関数の説明を参照。

[戻り値]
成功した場合、lpStringSource が示すソース文字列内の 0 ベースのインデックスを返す。pcchFound
の値と組み合わせて、このインデックスはソース文字列内の見つかった文字列全体の正確な位置を提供する。戻り値 0
はソース文字列内のエラーフリーなインデックスであり、一致した文字列はソース文字列のオフセット 0 にある。関数が成功しなかった場合、-1
を返す。拡張エラー情報を取得するには、アプリケーションは GetLastError
を呼ぶことができ、次のいずれかのエラーコードを返すことがある。
(以下省略)

[備考]

この関数は検索方向、文字等価フィルタリング、ロケール固有のフィルタリングを含むさまざまな検索オプションを提供する。等価性は関数の呼び出しで指定されたロケールとフラグに依存する。フィルタリングフラグは検索結果を変更することがある。たとえば、関数が大文字小文字や発音記号を無視して検索を実行する場合、潜在的な一致が増える。デフォルトでは、Locale
パラメータが Turkish (Turkey) や Azerbaijani (Azerbaijan)
を指定している場合でも、この関数は小文字 "i" を大文字 "I" にマップする。Turkish や Azerbaijani
でこの動作を上書きするには、アプリケーションは NORM_LINGUISTIC_CASING
を指定すべきである。このフラグを正しいロケールで指定すると、"?"(小文字ドットレス I)は "I"(大文字ドットレス
I)の小文字形となり、"i"(小文字ドット I)は "?"(大文字ドット I)の小文字形となる。
多くのスクリプト(特にラテン文字スクリプト)では、NORM_IGNORENONSPACE は
LINGUISTIC_IGNOREDIACRITIC と一致し、NORM_IGNORECASE は
LINGUISTIC_IGNORECASE と一致するが、次の例外がある。
(以下省略)

情報

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