GetStringTypeA 関数 (winnls.h)
非推奨になりました。 指定したソース文字列内の文字の文字型情報を取得します。 この関数は、文字列内の文字ごとに、出力配列の対応する 16 ビット要素に 1 つ以上のビットを設定します。 各ビットは、文字、数字、またはどちらも、特定の文字の種類を識別します。
構文
BOOL GetStringTypeA(
[in] LCID Locale,
[in] DWORD dwInfoType,
[in] LPCSTR lpSrcStr,
[in] int cchSrc,
[out] LPWORD lpCharType
);
パラメーター
[in] Locale
ロケール を指定するロケール識別子。 MAKELCID マクロを使用してロケール識別子を作成するか、次のいずれかの定義済み値を使用できます。
Windows Vista 以降: 次のカスタム ロケール識別子もサポートされています。[in] dwInfoType
取得する文字型情報を指定するフラグ。 使用可能なフラグ値については、GetStringTypeW の dwInfoType パラメーターを参照してください。 文字型ビットの詳細については、「 GetStringTypeW の備考」を参照してください。
[in] lpSrcStr
文字型を取得する ANSI 文字列へのポインター。 指定されたロケールが DBCS に適している場合、このストリングは 2 バイト文字セット (DBCS) ストリングにすることができます。 cchSrc が負の値に設定されている場合、文字列は null で終わると見なされます。
[in] cchSrc
lpSrcStr で示される文字列のサイズ (文字数)。 サイズに終端の null 文字が含まれている場合、関数はその文字の文字型情報を取得します。 アプリケーションでサイズを負の整数に設定した場合、ソース文字列は null で終わると見なされ、関数は null 終端の追加文字を使用してサイズを自動的に計算します。
[out] lpCharType
16 ビット値の配列へのポインター。 この配列の長さは、ソース文字列内の文字ごとに 1 つの 16 ビット値を受け取るのに十分な大きさにする必要があります。 cchSrc が負の数でない場合、lpCharType は cchSrc 要素を持つ単語の配列である必要があります。 cchSrc が負の数に設定されている場合、lpCharType は lpSrcStr + 1 要素を持つ単語の配列です。 関数が戻るときに、この配列には、ソース文字列内の各文字に対応する 1 つの単語が含まれます。
戻り値
成功した場合は 0 以外の値を返し、それ以外の場合は 0 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。このエラー コードは、次のいずれかのエラー コードを返すことができます。
- ERROR_INVALID_FLAGS。 フラグに指定された値が無効です。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
注釈
文字列関数の使用方法の概要については、「 文字列」を参照してください。
この関数は、ソース文字列を Unicode に変換し、対応する GetStringTypeW 関数を呼び出します。 したがって、出力バッファー内の単語は、元の ANSI 文字列ではなく、Unicode に相当します。 ANSI から Unicode への変換により、文字列の長さが変更される場合があります。たとえば、ANSI 文字のペアを 1 つの Unicode 文字にマップできます。 したがって、出力バッファー内の単語と元の ANSI 文字列内の文字の対応は、マルチバイト文字列など、すべてのケースで 1 対 1 ではありません。 したがって 、GetStringTypeA は、複数の文字列に対して限定的に使用されます。 代わりに、GetStringTypeW 関数と GetStringTypeEx をお勧めします。
この関数を Unicode のみのロケール識別子と共に使用すると、オペレーティング システムがシステム コード ページを使用するため、関数は成功する可能性があります。 ただし、システム コード ページで未定義の文字は、文字列に疑問符 (?) として表示されます。
lpSrcStr パラメーターと lpCharType パラメーターの値は同じにすることはできません。 同じ場合、関数は ERROR_INVALID_PARAMETER で失敗します。
Locale パラメーターは、Unicode への文字列変換を実行するためにのみ使用されます。 アプリケーションによって提供される CTYPE* 値とは関係ありません。 これらの値は Unicode コード ポイントによってのみ決定され、ロケールによって異なるわけではありません。 たとえば、ギリシャ文字は Locale の任意の値に対してC1_ALPHAとして指定されます。
Locale パラメーターは、対応する GetStringTypeW 関数では使用されません。 パラメーターの違いにより、アプリケーションは、#define UNICODE スイッチを使用して 、GetStringType* 関数の適切な ANSI または Unicode バージョンを自動的に呼び出すことはできません。 アプリケーションでは、推奨される関数である GetStringTypeEx を使用することで、この制限を回避できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |