VerifyScripts 関数 (winnls.h)
スクリプトの 2 つの列挙リストを比較します。
構文
BOOL VerifyScripts(
[in] DWORD dwFlags,
[in] LPCWSTR lpLocaleScripts,
[in] int cchLocaleScripts,
[in] LPCWSTR lpTestScripts,
[in] int cchTestScripts
);
パラメーター
[in] dwFlags
スクリプト検証オプションを指定するフラグ。
値 | 意味 |
---|---|
|
ロケール リストに含まれていない場合でも、テスト リストで "Latn" (ラテン スクリプト) を許可します。 |
[in] lpLocaleScripts
ロケール リストへのポインター。指定されたロケールのスクリプトの列挙リスト。 通常、このリストは、LCType が LOCALE_SSCRIPTS に設定された GetLocaleInfoEx を呼び出すことによって設定されます。
[in] cchLocaleScripts
lpLocaleScripts で示される文字列のサイズ (文字単位)。 文字列が null で終わる場合、アプリケーションはこのパラメーターを -1 に設定します。 このパラメーターが 0 に設定されている場合、関数は失敗します。
[in] lpTestScripts
テスト リストへのポインター。スクリプトの 2 つ目の列挙リスト。 この一覧は通常、 GetStringScripts を呼び出すことによって設定されます。
[in] cchTestScripts
lpTestScripts で示される文字列のサイズ (文字単位)。 文字列が null で終わる場合、アプリケーションはこのパラメーターを -1 に設定します。 このパラメーターが 0 に設定されている場合、関数は失敗します。
戻り値
テスト リストが空で、リスト内のすべての項目もロケール リストに含まれている場合は TRUE を返します。 ロケール リストにテスト リストよりも多くのスクリプトが含まれているが、すべてのテスト リスト スクリプトをロケール リストに含める必要がある場合、この関数は TRUE を 返します。 dwFlags でVS_ALLOW_LATINが指定されている場合、関数は "Latn;" が常にロケール リスト内にあるかのように動作します。
それ以外の場合、関数は FALSE を返します。 この戻り値は、テスト リストにロケール リストにない項目が含まれていること、またはエラーを示す可能性があることを示すことができます。 これら 2 つのケースを区別するために、アプリケーションは GetLastError を呼び出す必要があります。この場合、次のいずれかのエラー コードが返される可能性があります。
- ERROR_INVALID_FLAGS。 フラグに指定された値が無効でした。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
- ERROR_SUCCESS。 アクションは正常に完了しましたが、結果は得われませんでした。
注釈
この関数は、"Latn; などの文字列を比較します。Cyrl;"。一連の 4 文字のスクリプト名で構成され、各スクリプト名の後にセミコロンが続きます。 また、ラテン文字がネイティブではない言語やロケールでよく使用されるという事実を考慮する特別なケースもあります。
この関数は、 国際化ドメイン名 (IDN) に関連するセキュリティの問題を軽減するための戦略の一環として役立ちます。
この関数の戻り値と、さまざまなシナリオでの GetLastError の後続の呼び出しの例を次に示します。 最後の 2 つの例は、それぞれ、テスト リストに終端のセミコロン (形式が正しくない文字列) がないケースと、テスト リストが空のケースを示しています。
ロケール文字列 | Test string | dwFlags | 戻り値 | GetLastError return |
---|---|---|---|---|
ハニ;比良;かな; | ハニ; | * | TRUE | (変更なし) |
ハニ;比良;かな; | ハニ;Latn; | 0 | FALSE | ERROR_SUCCESS |
ハニ;比良;かな; | ハニ;Latn; | VS_ALLOW_LATIN | TRUE | (変更なし) |
ハニ;比良;かな; | Cyrl; | * | FALSE | ERROR_SUCCESS |
ハニ; | ハニ;比良;かな; | * | FALSE | ERROR_SUCCESS |
ハニ;比良;かな; | Cyrl | * | FALSE | ERROR_INVALID_PARAMETER |
ハニ;比良;かな; | * | TRUE | (変更なし) |
- 結果は、 dwFlags パラメーターでVS_ALLOW_LATINが渡されるか、フラグが指定されていないかにかかわらず同じです。
例
NLS: 国際化ドメイン名 (IDN) 軽減策のサンプル では、この関数の使用を示します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |