<Return[C]><Top>

CompareString

Declare Function Api_CompareString& Lib "kernel32" Alias "CompareStringA" (ByVal Locale&, ByVal dwCmpFlags&, ByVal lpString1$, ByVal cchCount1&, ByVal lpString2$, ByVal cchCount2&)

Declare Function CompareString Lib "kernel32" Alias "CompareStringA" (ByVal Locale As Long, ByVal dwCmpFlags As Long, ByVal lpString1 As String, ByVal cchCount1 As Long, ByVal lpString2 As String, ByVal cchCount2 As Long) As Long

指定されたロケールを使って、2 つの文字列を比較する。

パラメータ
Locale
    比較に使うべきロケールを指定する。あらかじめ定義されている次のロケール識別子のいずれかを指定する。

    値                                              

意味                                               

    LOCALE_SYSTEM_DEFAULT

システムの既定のロケール

    LOCALE_USER_DEFAULT

現在のユーザーの既定のロケール

    MAKELCID マクロを使って作成したロケール識別子を指定することもできる。
dwCmpFlags
    この関数が 2 つの文字列を比較する方法を表すオプションを指定する。既定では、どのフラグも指定されていない。

    0、または、次の値の組み合わせを指定する。

    値                                          

意味                                                                                                                

    NORM_IGNORECASE

欧文の大文字と小文字を区別しない。

    NORM_IGNOREKANATYPE

日本語のひらがなとカタカナを区別しない。

 

対応関係にあるひらがなとカタカナ(たとえば、「あ」と「ア」)を等しいものと見なす。

    NORM_IGNORENONSPACE

場所を取らない文字を区別しない。

 

濁音記号や半濁音記号の有無(は、ば、ぱ)や、アクセント記号の有無。

    NORM_IGNORESYMBOLS

記号を無視する。英文などのアポストロフィ(')がこれに該当する。

    NORM_IGNOREWIDTH

1 バイト文字と、それに対応する 2 バイト文字を区別しない。

 

たとえば、半角の「1」と全角の「1」が同じ文字として扱われる。

    SORT_STRINGSORT

句読点を記号として扱う。

lpString1
    比較に使われる、最初の文字列へのポインタを指定する。
cchCount1
    lpString1 パラメータが指す文字列の文字数を TCHAR 単位で指定する。

    この長さには、終端の NULL を含めない。

    -1 を指定すると、文字列は NULL で終わっているものと見なされ、長さが自動的に計算される。
lpString2
    比較に使われる、2 番目の文字列へのポインタを指定する。
cchCount2
    lpString2 パラメータが指す文字列の文字数を TCHAR 単位で指定する。

    この長さには、終端の NULL を含めない。

    -1 を指定すると、文字列は NULL で終わっているものと見なされ、長さが自動的に計算される。


戻り値
    関数が成功すると、次の値のいずれかが返る。

    値                                    

意味                                                                                                           

    CSTR_LESS_THAN

lpString1 が指す文字列は、lpString2 が指す文字列よりも辞書順で前にある。

    CSTR_EQUAL

lpString1 が指す文字列は、lpString2 が指す文字列と辞書順で同じ位置にある。

    CSTR_GREATER_THAN

lpString1 が指す文字列は、lpString2 が指す文字列よりも辞書順で後にある。

    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

    GetLastError は、次のエラーコードのいずれかを返すことがある。
    ERROR_INVALID_FLAGS
    ERROR_INVALID_PARAMETER