CompareStringW

CompareStringW (Unicode) 関数 (stringapiset.h) は、識別子で指定されたロケールについて 2 つの文字列を比較する。

CompareStringW Locale, dwCmpFlags, lpString1, cchCount1, lpString2, cchCount2

Locale : [int] 比較に使用するロケールのロケール識別子。MAKELCID マクロを使ってロケール識別子を作成することも、以下の定義済み値のいずれかを使うこともできる。
dwCmpFlags : [int] 2 つの文字列の比較方法を示すフラグ。詳細な定義は CompareStringEx の dwCmpFlags パラメータを参照。
lpString1 : [wstr] 比較する 1 つ目の文字列へのポインタ。
cchCount1 : [int] lpString1 が示す文字列の長さ(終端 null 文字を除く)。この値は関数の ANSI 版ではバイト数、Unicode 版ではワイド文字数を表す。文字列が null 終端の場合、アプリケーションは負の値を指定できる。その場合、関数が長さを自動的に決定する。
lpString2 : [wstr] 比較する 2 つ目の文字列へのポインタ。
cchCount2 : [int] lpString2 が示す文字列の長さ(終端 null 文字を除く)。この値は関数の ANSI 版ではバイト数、Unicode 版ではワイド文字数を表す。文字列が null 終端の場合、アプリケーションは負の値を指定できる。その場合、関数が長さを自動的に決定する。

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

解説

CompareStringW (Unicode) 関数 (stringapiset.h) は、識別子で指定されたロケールについて 2
つの文字列を比較する。

[戻り値]
CompareStringEx で説明された値を返す。

[備考]
備考は CompareStringEx を参照。アプリケーションが CompareString の ANSI
版を呼ぶ場合、関数は与えられたロケールの既定のコードページでパラメータを変換する。そのため、アプリケーションは CompareString
を使って UTF-8 テキストを処理することはできない。通常、大文字小文字を無視する比較では、CompareString
はロケールがトルコ語やアゼルバイジャン語であっても小文字の "i" を大文字の "I"
にマップする。NORM_LINGUISTIC_CASING
フラグはトルコ語やアゼルバイジャン語ではこの動作を上書きする。このフラグをトルコ語やアゼルバイジャン語と組み合わせて指定した場合、LATIN
SMALL LETTER DOTLESS I (U+0131) が LATIN CAPITAL LETTER I (U+0049)
の小文字形式、LATIN SMALL LETTER I (U+0069) が LATIN CAPITAL LETTER I WITH
DOT ABOVE (U+0130) の小文字形式となる。Windows 8 以降: 関数の ANSI 版は Winnls.h
で、Unicode 版は Stringapiset.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