指定したソース文字列内の文字の文字種情報を取得する。
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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |