指定した Unicode 文字列で使用されているスクリプトのリストを提供する。
GetStringScripts dwFlags, lpString, cchString, lpScripts, cchScripts
dwFlags : [int] スクリプト取得のオプションを指定するフラグ。 lpString : [wstr] 解析対象の Unicode 文字列へのポインタ。 cchString : [int] lpString が示す Unicode 文字列のサイズ(文字数)。Unicode 文字列が null 終端されている場合、アプリケーションはこのパラメータを -1 に設定する。アプリケーションがこのパラメータを 0 に設定すると、関数は lpScripts に null Unicode 文字列 (L"\0") を取得し、1 を返す。 lpScripts : [wstr] この関数が、ISO 15924 で使用される 4 文字表記を用いてスクリプトのリストを表す null 終端文字列を取得するバッファへのポインタ。各スクリプト名は 4 つのラテン文字で構成され、名前はアルファベット順で取得される。最後を含む各名前の後にセミコロンが続く。あるいは、cchScripts が 0 に設定されている場合、このパラメータには NULL が含まれる。その場合、関数はスクリプトバッファに必要なサイズを返す。 cchScripts : [int] lpScripts が示すスクリプトバッファのサイズ(文字数)。あるいは、アプリケーションはこのパラメータを 0 に設定できる。その場合、関数は lpScripts に NULL を取得し、スクリプトバッファに必要なサイズを返す。
(プラグイン / モジュール : kernel32.dll)
指定した Unicode 文字列で使用されているスクリプトのリストを提供する。 [戻り値] 成功して cchScripts が 0 以外の値に設定されている場合、出力バッファに取得された文字数(終端 null 文字を含む)を返す。関数は、入力文字列に COMMON または INHERITED 文字のみが含まれ、GSS_ALLOW_INHERITED_COMMON が設定されていない場合など、スクリプトが見つからなかったことを示すために 1 を返す。各検出スクリプトは 5 文字(4 文字 + 区切り文字)を追加するため、簡単な計算でスクリプト数を (return_code - 1) / 5 として求められる。関数が成功し cchScripts が 0 の場合、関数はスクリプトバッファに必要なサイズ(終端 null 文字を含む文字数)を返す。スクリプト数は前述のとおりである。成功しなかった場合、関数は 0 を返す。拡張エラー情報を取得するには、アプリケーションは GetLastError を呼ぶ。これは以下のいずれかのエラーコードを返す。 (以下省略) [備考] この関数は国際化ドメイン名 (IDN) 関連のセキュリティ問題を緩和する戦略の一部として有用である。スクリプトの判定は、未割り当ての文字が "Zyyy" (COMMON) ではなく "Zzzz" (UNASSIGNED) の値を持つことを除き、http://www.unicode.org/Public/4.1.0/ucd/Scripts.txt で Unicode コンソーシアムが公開しているスクリプト値に基づく。この関数の動作の例を以下に示す。 (以下省略)
| プラグイン / モジュール | 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 |