GetStringTypeW
プラットフォーム SDK
GetStringTypeW

指定した文字列に含まれる各文字の文字種情報を取得します。文字列中のそれぞれの文字について、出力配列の対応する 16 ビットの要素を構成する 1 つ以上のビットがセットされます。各ビットは、対応する文字の特定の文字種(英字、数字、そのどちらでもないなど)を識別します。

BOOL GetStringTypeW(
  DWORD dwInfoType,  // 情報の種類を指定する値
  LPCWSTR lpSrcStr,  // 調査対象文字列のアドレス
  int cchSrc,        // 文字列に含まれる文字数
  LPWORD lpCharType  // 出力バッファのアドレス
);

パラメータ

dwInfoType
取得したい文字情報の種類を指定します。さまざまな種類がいくつかのレベルに分かれています(それぞれの種類に含まれる情報のリストを「解説」に示します)。情報の種類を表す次のいずれかの定数を指定します。
CT_CTYPE1文字種情報を取得します。
CT_CTYPE2左右文字方向情報を取得します。
CT_CTYPE3テキスト処理情報を取得します。

lpSrcStr
文字種を調べたい文字列へのポインタを指定します。cchSrc パラメータに–1 を指定すると、文字列は NULL で終わると見なされます。この文字列は、Unicode 文字列でなければなりません。
cchSrc
lpSrcStr が指す文字列のサイズ(文字数)を指定します。文字列の最後の NULL を含めると、その NULL の文字種情報も返ります。–1 を指定すると、文字列は NULL で終わると見なされ、長さが自動的に計算されます。
lpCharType
16 ビット値の配列へのポインタを指定します。この配列は、指定した文字列に含まれる文字数と同じ数の 16 ビット値を受け取るのに十分な長さでなければなりません。この配列には、指定した文字列に含まれる文字数と同じ数のワードが格納され、それぞれのワードが指定した文字列のそれぞれの文字に対応します。

戻り値

関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。GetLastError 関数は、次のいずれかのエラーコードを返します。

ERROR_INVALID_FLAGS
ERROR_INVALID_PARAMETER

解説

GetStringTypeA 関数のパラメータは、GetStringTypeW 関数より 1 つ多くなっています。GetStringTypeA 関数では、その最初の Locale パラメータに LCID を指定します。このパラメータは、GetStringTypeW 関数にはありません。この違いから、#define UNICODE によって GetStringType* の正しいバージョン(A または W)を自動的に呼び出すことができません。この制約は、GetStringTypeEx 関数を使うと回避できます。Win32 関数では、できるだけ GetStringTypeEx 関数を使ってください。

lpSrcStr パラメータと lpCharType パラメータは同じにできません。同じにすると、関数が失敗します。GetLastError 関数を呼び出すと、ERROR_INVALID_PARAMETER が返ります。
文字種ビットはいくつかのレベルに分かれています。この関数を 1 度呼び出すたびに 1 つのレベルの情報を取得できます。各レベルは 16 ビットの情報に制限されています。これは、1 文字の情報を 16 ビットで表現するよう制限された他のマッピングルーチンも文字種情報を返すことができるようにするためです。
この関数がサポートする文字種情報には次のものがあります。

Ctype 1
ANSI C と POSIX(LC_CTYPE)の文字型指定関数をサポートします。dwInfoType パラメータに CT_CTYPE1 を指定すると、lpCharType が指す配列に次の定数を結合した値が格納されます。
定数名意味
C1_UPPER0x0001大文字
C1_LOWER0x0002小文字
C1_DIGIT0x000410 進数
C1_SPACE0x0008スペース
C1_PUNCT0x0010区切り記号
C1_CNTRL0x0020制御文字
C1_BLANK0x0040未定義文字
C1_XDIGIT0x008010 進数
C1_ALPHA0x0100言語上のすべての文字(アルファベット、音節文字、表意文字)

次の文字種は定数であるか、基本文字種から計算可能であるため、この関数でサポートする必要はありません。

文字種説明
英数字アルファベットと数字(C1_ALPHA と C1_DIGIT)
印字可能文字グラフィック文字とブランク文字(C1_CNTRL を除くすべての C1_* 文字種)

Ctype 2
Unicode テキストの正しい文字方向をサポートします。方向属性は、Unicode によって標準化されている左右文字方向アルゴリズムで正確な結果を得るように割り当てられます。次の文字種は相互に排他的です。定数を 2 つ以上同時に指定することはできません。これらの属性の詳細については、『The Unicode Standard: Worldwide Character Encoding, Volumes 1 and 2, Addison Wesley Publishing Company: 1991, 1992, ISBN 0201567881』を参照してください。
定数名意味
強い文字種
C2_LEFTTORIGHT0x0001左から右
C2_RIGHTTOLEFT0x0002右から左
強い文字種
C2_EUROPENUMBER0x0003ヨーロッパの数字
C2_EUROPESEPARATOR0x0004ヨーロッパの桁区切り記号
C2_EUROPETERMINATOR0x0005ヨーロッパの数字終了記号
C2_ARABICNUMBER0x0006アラビア数字
C2_COMMONSEPARATOR0x0007共通桁区切り記号
中間文字種
C2_BLOCKSEPARATOR0x0008ブロック区切り記号
C2_SEGMENTSEPARATOR0x0009セグメント区切り記号
C2_WHITESPACE0x000A空白
C2_OTHERNEUTRAL0x000Bその他の中間文字種
適用されない文字種
C2_NOTAPPLICABLE0x0000暗黙的な方向性のないもの(制御コードなど)

Ctype 3
一般的なテキスト処理または標準 C ライブラリ関数に必要な POSIX 型への拡張のプレースホルダとして使われます。これらの文字種は、Windows NT の現在のバージョンでサポートされます。dwInfoType パラメータに CT_CTYPE3 を指定すると、次の定数を結合した値が返ります。
定数名意味
C3_NONSPACING0x0001非スペース符号
C3_DIACRITIC0x0002分音符
C3_VOWELMARK0x0004母音字
C3_SYMBOL0x0008シンボル文字
C3_KATAKANA0x0010カタカナ
C3_HIRAGANA0x0020ひらがな
C3_HALFWIDTH0x0040半角文字
C3_FULLWIDTH0x0080全角文字
C3_IDEOGRAPH0x0100表意文字
C3_KASHIDA0x0200アラビックカシダ文字
C3_LEXICAL0x0400単語の一部と見なされる区切り記号(カシダ、ハイフン、女性/男性オーディナル、等号、その他)
C3_ALPHA0x8000言語学上のすべての文字(アルファベット、音節文字、表意文字)
適用されない文字種  
C3_NOTAPPLICABLE0x0000適用されない文字

対応情報

  Windows NT/2000:Windows NT 3.1 以降
  Windows 95/98:サポートされていません。
  ヘッダー:winnls.h 内で宣言
  インポートライブラリ:kernel32.lib を使用

参照

GetStringTypeAGetStringTypeEx

© 2009 Microsoft Corporation. All rights reserved.   使用条件 | 商標 | プライバシー
Page view tracker
ライトウェイト ライブラリについて評価してください。
x
ライトウェイトは、ユーザーの皆様からご要望をいただいた SearchBox と既定のコード言語選択の機能を追加することにより、ScriptFree (loband) に基づいています。
SearchBox は気に入りましたか。
タブ付きコード ブロックは気に入りましたか。
このトピックは役に立ちましたか。
ご意見やご感想をご自由にお書きください。
ありがとうございました。
x
MSDN Online を向上するためのご協力に感謝いたします。
フィードバック
ビューの切り替え
クラシック
ライトウェイト
ScriptFree
ビューの切り替え