次の方法で共有


GetNLSVersionEx 関数 (winnls.h)

name で指定されたロケールの指定された NLS 機能の現在のバージョンに関する情報を取得します。

メモ アプリケーションは、Windows Vista 以降でのみ実行するように設計されている場合は 、GetNLSVersion を優先してこの関数を呼び出す必要があります。

 

構文

BOOL GetNLSVersionEx(
  [in]           NLS_FUNCTION       function,
  [in, optional] LPCWSTR            lpLocaleName,
  [in, out]      LPNLSVERSIONINFOEX lpVersionInformation
);

パラメーター

[in] function

クエリを実行する NLS 機能。 この値はCOMPARE_STRINGする必要があります。 SYSNLS_FUNCTION列挙を参照してください。

[in, optional] lpLocaleName

ロケール名、または次のいずれかの定義済み値へのポインター。

[in, out] lpVersionInformation

NLSVERSIONINFOEX 構造体へのポインター。 アプリケーションでは、 dwNLSVersionInfoSize メンバーを に初期化する sizeof(NLSVERSIONINFOEX)必要があります。

メモ Windows Vista 以降では、関数は NLSVERSIONINFO 構造体でバージョン情報を提供することもできます。
 

戻り値

アプリケーションが lpVersionInformation で有効な値を指定した場合にのみ TRUE を返し、それ以外の場合は FALSE を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。このエラー コードは、次のいずれかのエラー コードを返すことができます。

  • ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、 正しく NULL に設定されていません。
  • ERROR_INVALID_FLAGS。 フラグに指定された値が無効です。
  • ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。

注釈

この関数を使用すると、Active Directory などのアプリケーションで、NLS の変更が特定のインデックス テーブルに使用されるロケールに影響するかどうかを判断できます。 そうでない場合は、テーブルのインデックスを再作成する必要はありません。 詳細については、「 アプリケーションでの並べ替えの処理」を参照してください。 特に、並べ替えバージョンが変更されたかどうかを確認するために、インデックスを再作成する必要があります。

  1. データの元のインデックス作成を実行するときに、 GetNLSVersionEx を使用して NLSVERSIONINFOEX 構造体を取得します。
  2. 次のプロパティをインデックスに格納して、バージョンを識別します。
    • NLSVERSIONINFOEX.dwNLSVersion。 これは、使用している並べ替えテーブルのバージョンを指定します。
    • NLSVERSIONINFOEX.dwEffectiveId。 これにより、並べ替えの有効なロケールが指定されます。 カスタム ロケールは、インボックス ロケールの並べ替えを指します。
    • NLSVERSIONINFOEX.guidCustomVersion。 これは、それらを持つカスタム ロケールの特定のカスタム並べ替えを指定する GUID です。
  3. インデックスを使用する場合は 、GetNLSVersionEx を 使用してデータのバージョンを検出します。
  4. 3 つのプロパティのいずれかが変更された場合、使用している並べ替えデータによって異なる結果が返され、インデックス作成でレコードが見つからない可能性があります。
  5. データに無効な Unicode コード ポイント (つまり、すべての文字列が IsNLSDefinedString の呼び出しを渡した) が含まれていないことがわかっている場合はdwNLSVersion の下位バイトのみが変更された場合 (上記のマイナー バージョン) は同じと見なすことができます。
これについては、ブログエントリ 「照合順序のバージョンが変更されたかどうかを確認する方法」 で詳しく説明されています(http://blogs.msdn.com/shawnste/archive/2007/06/01/how-to-tell-if-the-collation-version-changed.aspx).

この関数は、 カスタム ロケールをサポートしますlpLocaleName で補助ロケールが指定されている場合、取得されるデータは、その補足ロケールに関連付けられている並べ替え順序に適したデータになります。

Windows 8以降: アプリが Windows.Globalization 名前空間からこの関数に言語タグを渡す場合は、最初に ResolveLocaleName を呼び出してタグを変換する必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー winnls.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

GetNLSVersion

アプリケーションでの並べ替えの処理

照合順序のバージョンが変更されたかどうかを確認する方法

NLSVERSIONINFO

NLSVERSIONINFOEX

各国語サポート

各国語サポート関数

SYSNLS_FUNCTION