FindStringOrdinal

非言語的な比較のために Unicode 文字列(ワイド文字)を別の Unicode 文字列内で検索する。

FindStringOrdinal dwFindStringOrdinalFlags, lpStringSource, cchSource, lpStringValue, cchValue, bIgnoreCase

dwFindStringOrdinalFlags : [int] 検索操作の詳細を指定するフラグ。これらのフラグは互いに排他的で、FIND_FROMSTART がデフォルトである。アプリケーションは検索フラグの 1 つだけを指定できる。
lpStringSource : [wstr] lpStringValue で指定された文字列を関数が検索する対象のソース文字列へのポインタ。
cchSource : [int] lpStringSource が指す文字列のサイズ(終端 NULL 文字を除く文字数)。アプリケーションは通常、正の数または 0 を指定する必要がある。ソース文字列が NULL 終端で関数がサイズを自動計算すべき場合、アプリケーションは -1 を指定できる。
lpStringValue : [wstr] 関数がソース文字列内で検索する検索文字列へのポインタ。
cchValue : [int] lpStringValue が指す文字列のサイズ(終端 NULL 文字を除く文字数)。アプリケーションは通常、正の数または 0 を指定する必要がある。文字列が NULL 終端で関数がサイズを自動計算すべき場合、アプリケーションは -1 を指定できる。
bIgnoreCase : [int] 関数が大文字小文字を区別しない比較を実行する場合は TRUE、それ以外の場合は FALSE。比較は言語的な操作ではなく、すべてのロケールや言語に適しているわけではない。動作は英語に対するものと類似している。

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

解説

非言語的な比較のために Unicode 文字列(ワイド文字)を別の Unicode 文字列内で検索する。

[戻り値]
成功した場合、lpStringSource が示すソース文字列内の 0 ベースのインデックスを返す。関数が成功した場合、見つかった文字列は
lpStringValue の値と同じサイズである。戻り値 0
は、関数がソース文字列の先頭で一致を見つけたことを示す。関数が成功しなかったり検索文字列が見つからなかった場合、-1
を返す。拡張エラー情報を取得するには、アプリケーションは GetLastError
を呼ぶことができ、次のいずれかのエラーコードを返すことがある。
(以下省略)

[備考]
FindStringOrdinal
はバイナリ比較を提供するため、言語的に適切な結果を返さない。順序比較は英語のソート動作と誤認されることがある。ただし、文字が言語的に重要でない量だけ異なる場合に一致を見つけない。適切なソート関数の選択については
Sorting を参照。失敗時に 0 を返す NLS 関数とは対照的に、この関数は失敗した場合 -1 を返す。成功した場合、0
ベースのインデックスを返す。このインデックスを使用すると、関数は off-by-one エラーや 1
文字バッファオーバーランを避けられる。この関数は、成功した場合でも SetLastError を呼び出す数少ない NLS 関数の 1
つである。検索文字列に一致しなかった場合に、スレッド内の最後のエラーをクリアするためにこの呼び出しを行う。これは GetLastError
によって返される値をクリアする。Windows 8 以降: FindStringOrdinal は Libloaderapi.h
で宣言されている。Windows 8 より前では Winnls.h で宣言されていた。

情報

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