GetStringTypeW 関数 (stringapiset.h)
指定した Unicode ソース文字列内の文字の文字型情報を取得します。 この関数は、文字列内の文字ごとに、出力配列の対応する 16 ビット要素に 1 つ以上のビットを設定します。 各ビットは、文字、数字、またはどちらも、特定の文字の種類を識別します。
構文
BOOL GetStringTypeW(
[in] DWORD dwInfoType,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out] LPWORD lpCharType
);
パラメーター
[in] dwInfoType
取得する文字型情報を指定するフラグ。 このパラメーターには、次の値を指定できます。 「解説」セクションで説明されているように、文字の種類は異なるレベルに分けられます。
フラグ | 説明 |
---|---|
|
文字型情報を取得します。 |
|
双方向レイアウト情報を取得します。 |
|
テキスト処理情報を取得します。 |
[in] lpSrcStr
文字型を取得する Unicode 文字列へのポインター。 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。 パラメーター値のいずれかが無効です。
注釈
文字列関数の使用方法の概要については、「 文字列」を参照してください。
lpSrcStr パラメーターと lpCharType パラメーターの値は同じにすることはできません。 同じ場合、関数は ERROR_INVALID_PARAMETER で失敗します。
対応する GetStringTypeA 関数で使用される Locale パラメーターは、この関数では使用されません。 パラメーターの違いにより、アプリケーションは、#define UNICODE スイッチを使用して 、GetStringType* 関数の適切な ANSI または Unicode バージョンを自動的に呼び出すことはできません。 アプリケーションでは、推奨される関数である GetStringTypeEx を使用することで、この制限を回避できます。
サポートされている文字型
文字型ビットは、複数のレベルに分割されます。 1 つのレベルの情報は、この関数の 1 回の呼び出しで取得できます。 各レベルは 16 ビットの情報に制限されているため、1 文字あたり 16 ビットの表現に制限されている他のマッピング関数でも文字型情報を返すことができます。
Ctype 1
これらの型は、ANSI C および POSIX (LC_CTYPE) 文字型指定関数をサポートしています。 dwInfoType が CT_CTYPE1 に設定されている場合、これらの値のビットごとの OR が出力バッファーの配列で取得されます。 DBCS ロケールの場合、型属性はナロー文字とワイド文字の両方に適用されます。 日本語のひらがな文字とカタカナ文字、および漢字の表意文字はすべて、C1_ALPHA属性を持っています。
名前 | 値 | 意味 |
---|---|---|
C1_UPPER | 0x0001 | 大文字 |
C1_LOWER | 0x0002 | 小文字 |
C1_DIGIT | 0x0004 | 数字 |
C1_SPACE | 0x0008 | スペース文字 |
C1_PUNCT | 0x0010 | 句読点 |
C1_CNTRL | 0x0020 | 制御文字 |
C1_BLANK | 0x0040 | 空白文字 |
C1_XDIGIT | 0x0080 | 16 進数 |
C1_ALPHA | 0x0100 | 任意の言語文字: アルファベット、音節、または表意文字 |
C1_DEFINED | 0x0200 | 定義された文字ですが、他のC1_* 型の 1 つではありません |
次の文字型は、定数型または基本型から計算可能であり、この関数でサポートされている必要はありません。
型 | 説明 |
---|---|
英数字 | アルファベット文字と数字 (C1_ALPHAとC1_DIGIT) |
印刷可能 | グラフィック文字とブランク (C1_CNTRLを除くすべてのC1_* 型) |
Ctype 2
これらの型は、Unicode テキストの適切なレイアウトをサポートします。 DBCS ロケールの場合、文字タイプはナロー文字とワイド文字の両方に適用されます。 方向属性は、Unicode によって標準化された双方向レイアウト アルゴリズムによって正確な結果が生成されるように割り当てられます。 これらの型は相互に排他的です。 これらの属性の使用方法の詳細については、「 Unicode 標準」を参照してください。
名前 | 値 | 意味 |
---|---|---|
Strong | ||
C2_LEFTTORIGHT | 0x0001 | 左から右 |
C2_RIGHTTOLEFT | 0x0002 | 右から左 |
weak | ||
C2_EUROPENUMBER | 0x0003 | ヨーロッパ数字、ヨーロッパ数字 |
C2_EUROPESEPARATOR | 0x0004 | ヨーロッパ数字の区切り記号 |
C2_EUROPETERMINATOR | 0x0005 | ヨーロッパ数字ターミネータ |
C2_ARABICNUMBER | 0x0006 | アラビア数字 |
C2_COMMONSEPARATOR | 0x0007 | 一般的な数値区切り記号 |
中立 | ||
C2_BLOCKSEPARATOR | 0x0008 | ブロック区切り記号 |
C2_SEGMENTSEPARATOR | 0x0009 | セグメント区切り記号 |
C2_WHITESPACE | 0x000A | 空白 |
C2_OTHERNEUTRAL | 0x000B | その他のニュートラル |
適用なし | ||
C2_NOTAPPLICABLE | 0x0000 | 暗黙的な方向なし (コントロール コードなど) |
Ctype 3
これらの型は、一般的なテキスト処理または標準の C ライブラリ関数に必要な POSIX 型の拡張のプレースホルダーを意図しています。 dwInfoType を CT_CTYPE3 に設定すると、これらの値のビットごとの OR が取得されます。 DBCS ロケールの場合、Ctype 3 属性は、狭い文字とワイド文字の両方に適用されます。 日本語のひらがなとカタカナ、漢字の表意文字はすべて、C3_ALPHA属性を持っています。
名前 | 値 | 意味 |
---|---|---|
C3_NONSPACING | 0x0001 | 非パッチ マーク |
C3_DIACRITIC | 0x0002 | Diacritic nonspacing mark |
C3_VOWELMARK | 0x0004 | Vowel nonspacing mark |
C3_SYMBOL | 0x0008 | Symbol |
C3_KATAKANA | 0x0010 | カタカナ文字 |
C3_HIRAGANA | 0x0020 | ひらがな文字 |
C3_HALFWIDTH | 0x0040 | 半角 (狭い) 文字 |
C3_FULLWIDTH | 0x0080 | 全角 (ワイド) 文字 |
C3_IDEOGRAPH | 0x0100 | Ideographic 文字 |
C3_KASHIDA | 0x0200 | アラビア語のカシダ文字 |
C3_LEXICAL | 0x0400 | 単語の一部としてカウントされる句読点 (kashida、ハイフン、女性/男性の序数インジケーター、等号など) |
C3_ALPHA | 0x8000 | すべての言語文字 (アルファベット、音節、およびイデオロギー) |
C3_HIGHSURROGATE | 0x0800 | Windows Vista: 上位サロゲート コード ユニット |
C3_LOWSURROGATE | 0x1000 | Windows Vista: 低サロゲート コード ユニット |
適用なし | ||
C3_NOTAPPLICABLE | 0x0000 | 適用なし |
C3_HIGHSURROGATEとC3_LOWSURROGATEは完全のためにのみ一覧表示され、この関数には指定しないでください。 これらは Unicode にのみ関連します。
Windows 8以降: GetStringTypeW は Stringapiset.h で宣言されています。 Windows 8する前は、Winnls.h で宣言されていました。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | stringapiset.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |