DownlevelGetLocaleScripts 関数

指定したロケールのスクリプトの一覧を提供します。

Note

この関数は、Windows Vista 以前のオペレーティング システムで実行されるアプリケーションでのみ使用されます。 その使用にはダウンロード パッケージが必要です。 Windows Vista 以降でのみ実行されるアプリケーションでは、LCTypeLOCALE_SSCRIPTS に設定して GetLocaleInfo を呼び出す必要があります。

 

構文

int DownlevelGetLocaleScripts(
  _In_  LPCWSTR lpLocaleName,
  _Out_ LPWSTR  lpScripts,
  _In_  int     cchScripts
);

パラメーター

lpLocaleName [in]

null で終わるロケール名へのポインター。

lpScripts [out]

ISO 15924 で使われる 4 文字の表記をこの関数で使い、スクリプトの一覧を表す null 終端の文字列を取得するバッファーへのポインター。 各スクリプト名は 4 つのラテン文字で構成され、名前はアルファベット順に取得されます。 姓を含む各名前の後にはセミコロンが続きます。

また、cchScripts が 0 に設定されている場合は、このパラメーターに NULL を含めることができます。 この場合、この関数は、スクリプト バッファーに必要なサイズを返します。

cchScripts [in]

lpScripts で示されるスクリプト バッファーのサイズ (文字数)。

また、アプリケーションでこのパラメーターを 0 に設定することもできます。 この場合、この関数で lpScripts 内の NULL を取得し、スクリプト バッファーに必要なサイズを返します。

戻り値

スクリプト バッファーで取得された文字数 (終端の null 文字を含む) を返します。 関数が成功し、cchScripts の値が 0 の場合、戻り値は、スクリプト バッファーに必要なサイズ (終端の null 文字を含む文字数) になります。

成功しなかった場合、この関数は 0 を返します。 アプリケーションで GetLastError を呼び出して、拡張エラー情報を取得できます。次のいずれかのエラー コードが返されます。

  • ERROR_BADDB。 関数はデータにアクセスできませんでした。 この状況は通常は発生しませんが、一般的に、インストールの誤りやディスクの問題などを示しています。
  • ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、誤って NULL に設定されていました。
  • ERROR_INVALID_PARAMETER。 パラメーターのいずれかが無効でした。

解説

この機能は、国際化ドメイン名 (IDN) に関連するセキュリティ問題を軽減する戦略の一環として役立ちます。

十分なバッファー サイズを想定して、この関数の入力と出力の例を次に示します。

ロケール lpLocaleName lpScripts
英語 (米国) en-US Latn;
ヒンディー語 (インド) hi-IN Deva;
日本語 (日本) ja-JP Hani;Hira;Kana;

 

リストには、ロケールに使用される書き込みシステムの重要な部分でない限り、ラテン文字スクリプトは含まれません。 ただし、ラテン文字は、外国のビジネス名のように、ネイティブではないロケールのコンテキストでよく使用されます。 上記のインドのヒンディー語の例では、取得されるスクリプトは "Deva" (Devanagari の場合) のみですが、ラテン文字はヒンディー語のテキストにも表示できます。 DownlevelVerifyScripts 関数には、そのケースに対処するための特別なフラグがあります。

必要なヘッダー ファイルと DLL は、archive.org からダウンロードできる "Microsoft 国際化ドメイン名 (IDN) 軽減 API" の一部です。

要件

要件 Value
サポートされている最小のクライアント
Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー
Windows Server 2003 (デスクトップ アプリのみ)
再頒布可能パッケージ
Windows XP (SP2 以降)、Windows Server 2003 (SP1 以降)、または Windows Vista 上の Microsoft 国際化ドメイン名 (IDN) Mitigation API
ヘッダー
Idndl.h
[DLL]
Idndl.dll

関連項目

各国語サポート

各国語サポート関数

国際化ドメイン名 (IDN) の処理

DownlevelGetStringScripts

DownlevelVerifyScripts

GetLocaleInfo