IsNLSDefinedString 関数 (winnls.h)
文字列内の各文字に、指定された NLS 機能に対して定義された結果があるかどうかを判断します。
構文
BOOL IsNLSDefinedString(
[in] NLS_FUNCTION Function,
[in] DWORD dwFlags,
[in] LPNLSVERSIONINFO lpVersionInformation,
[in] LPCWSTR lpString,
[in] INT cchStr
);
パラメーター
[in] Function
クエリを実行する NLS 機能。 この値はCOMPARE_STRINGする必要があります。 SYSNLS_FUNCTION列挙を参照してください。
[in] dwFlags
関数を定義するフラグ。 0 を指定する必要があります。
[in] lpVersionInformation
バージョン情報を含む NLSVERSIONINFO 構造体へのポインター。 通常、この情報は GetNLSVersion を呼び出すことによって取得されます。 関数が現在のバージョンを使用する場合、アプリケーションはこのパラメーターを NULL に設定します。
[in] lpString
調べる UTF-16 文字列へのポインター。
[in] cchStr
lpString で示される文字列内の UTF-16 文字の数。 この数には、終端の null 文字を含めることができます。 終端の null 文字が文字数に含まれている場合、終端の null 文字は常に定義されるため、チェック動作には影響しません。
アプリケーションは、文字列が null で終わることを示すために -1 を指定する必要があります。 この場合、関数自体は文字列の長さを計算します。
戻り値
成功した場合は TRUE を返し、入力文字列が有効な場合は FALSE を返します。それ以外の場合は FALSE を 返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。このエラー コードは、次のいずれかのエラー コードを返すことができます。
- ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、 正しく NULL に設定されていません。
- ERROR_INVALID_FLAGS。 フラグに指定された値が無効です。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
解説
この関数は、定義された文字列と未定義の文字列を区別して、Active Directory などのアプリケーションが未定義のコード ポイントを持つ文字列を拒否できるようにします。 関数を使用すると、アプリケーションでデータベースのインデックスを再作成する必要性を最小限に抑えることができます。 詳細については、「 アプリケーションでの並べ替えの処理」を参照してください。
たとえば、 Function が COMPARE_STRING に設定されている場合、 IsNLSDefinedString は未定義のコード ポイント、未定義の Unicode 文字を表す サロゲート ペア 、または不適切な形式のサロゲート ペアをチェックします。 関数が特定の文字列に対して TRUE を 返す場合、 CompareString または LCMapString によって取得され、LCMAP_SORTKEY設定された結果は、対応する NLS バージョンが変更されない限り、同一であることが保証されます。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |