GetStringTypeExW

指定したソース文字列内の文字の文字種情報を取得する。

GetStringTypeExW Locale, dwInfoType, lpSrcStr, cchSrc, lpCharType

Locale : [int] ロケールを指定するロケール識別子。この値は ANSI コードページを一意に定義する。MAKELCID マクロを使用してロケール識別子を作成するか、以下の定義済み値のいずれかを使用できる。
dwInfoType : [int] 取得する文字種情報を指定するフラグ。可能なフラグ値については GetStringTypeW の dwInfoType パラメータを参照。文字種ビットの詳細は GetStringTypeW の備考を参照。
lpSrcStr : [wstr] 文字種を取得する文字列へのポインタ。cchSrc が任意の負の値に設定されている場合、文字列は null 終端されているとみなされる。
cchSrc : [int] lpSrcStr が示す文字列のサイズ(文字数)。サイズは関数の ANSI 版ではバイト数、Unicode 版ではワイド文字数を指す。サイズに終端 null 文字が含まれている場合、関数はその文字に対する文字種情報を取得する。アプリケーションがサイズを負の整数に設定した場合、ソース文字列は null 終端されているとみなされ、関数は null 終端のための追加文字とともに自動的にサイズを計算する。
lpCharType : [var] 16 ビット値の配列へのポインタ。この配列の長さは、ソース文字列の各文字に対して 1 つの 16 ビット値を受け取るのに十分な大きさでなければならない。cchSrc が負の数でない場合、lpCharType は cchSrc 個の要素を持つワード配列であるべきである。cchSrc が負の数に設定されている場合、lpCharType は lpSrcStr + 1 個の要素を持つワード配列となる。関数が戻ったとき、この配列にはソース文字列の各文字に対応する 1 つのワードが含まれる。

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

解説

指定したソース文字列内の文字の文字種情報を取得する。

[戻り値]
成功した場合は 0 以外、それ以外の場合は 0 を返す。拡張エラー情報を取得するには、アプリケーションは GetLastError
を呼ぶ。これは以下のいずれかのエラーコードを返す。
(以下省略)

[備考]
文字列関数の使用の概要については Strings を参照。指定されたロケールの ANSI コードページを使用して、この関数はソース文字列を
ANSI から Unicode に変換する。次に各 Unicode 文字を文字種情報について解析する。この関数の ANSI
版はソース文字列を Unicode に変換し、対応する GetStringTypeW
関数を呼ぶ。したがって、出力バッファ内のワードはオリジナルの ANSI 文字列ではなく、その Unicode 等価物に対応する。ANSI
から Unicode への変換は文字列の長さを変える可能性がある。たとえば、ANSI 文字のペアは単一の Unicode
文字にマップされうる。したがって、出力バッファ内のワードとオリジナルの ANSI
文字列内の文字との対応は、たとえばマルチバイト文字列の場合、すべてのケースで 1 対 1 とは限らない。よって、この関数の ANSI
版はマルチ文字文字列に対しては有用性が限定される。代わりに Unicode 版が推奨される。この関数は、GetStringTypeA と
GetStringTypeW のパラメータの違いによる制約を回避する。パラメータの違いのため、アプリケーションは #define
UNICODE スイッチを使用して GetStringType* 関数の適切な ANSI または Unicode
版を自動的に呼び出すことができない。一方、GetStringTypeEx
はそのスイッチに関して適切に動作する。よって推奨される関数である。
Unicode 専用ロケール識別子と共にこの関数の ANSI
版を使用する場合、オペレーティングシステムがシステムコードページを使用するため関数は成功し得る。ただし、システムコードページで未定義の文字は文字列内で疑問符
(?) として現れる。lpSrcStr と lpCharType パラメータの値は同じであってはならない。同じである場合、関数は
ERROR_INVALID_PARAMETER で失敗する。Locale パラメータは Unicode
への文字列変換を行うためにのみ使用される。アプリケーションが提供する CTYPE* 値とは無関係である。これらの値は Unicode
コードポイントによってのみ決定され、ロケール単位で変化することはない。たとえば、ギリシャ文字は Locale の任意の値に対して
C1_ALPHA として指定される。

情報

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