CPINFO 構造体 (winnls.h)

コード ページに関する情報が含まれます。 この構造体は 、GetCPInfo 関数によって使用されます。

構文

typedef struct _cpinfo {
  UINT MaxCharSize;
  BYTE DefaultChar[MAX_DEFAULTCHAR];
  BYTE LeadByte[MAX_LEADBYTES];
} CPINFO, *LPCPINFO;

メンバー

MaxCharSize

コード ページ内の文字の最大長 (バイト単位)。 長さは、1 バイト文字セット (SBCS) の場合は 1、2 バイト文字セット (DBCS) の場合は 2、他の文字セット型の場合は 2 より大きい値にすることができます。 ISCII または ISO-2022-xx コード・ページの使用など、他の要因により、この関数はサイズを使用して SBCS または DBCS を他の文字セットと区別できません。

DefaultChar[MAX_DEFAULTCHAR]

文字列を特定のコード ページに変換するときに使用される既定の文字。 この文字は、明示的な既定の文字が指定されていない場合に WideCharToMultiByte 関数によって使用されます。 通常、既定値はコード ページの "?" 文字です。

LeadByte[MAX_LEADBYTES]

リード バイト範囲の数が可変である、リード バイト範囲の固定長配列。 コード ページにリード バイトがない場合、配列のすべての要素は NULL に設定されます。 コード ページにリード バイトがある場合、配列は各範囲の開始値と終了値を指定します。 範囲は包括的で、コード ページの範囲の最大数は 5 です。 配列では、2 バイトを使用して各範囲を記述し、最後の範囲の後にターミネータとして 2 つの null バイトを指定します。

メモ 一部のコード ページでは、リード バイトと他のエンコード メカニズムの組み合わせを使用します。 通常、このメンバーは、何らかの形式でリード バイトを使用するコード ページのサブセットに対してのみ設定されます。 詳細については、「解説」を参照してください。
 

解説

リード バイトは、256 文字を超える DBCS コード ページに固有です。 リード・バイトは、DBCS 内の 2 バイト文字の最初のバイトです。 各 DBCS コード・ページで、リード・バイトはバイト値の特定の範囲を占有します。 この範囲は、コード ページごとに異なります。

リード バイト情報は、ほとんどのコード ページではあまり役に立ちません。また、UTF-8 やGB18030など、多くのマルチバイト エンコーディングに対しても提供されません。 アプリケーションでは、この情報を使用して MultiByteToWideChar または WideCharToMultiByte 関数が何を行うかを予測することはお勧めしません。 リード バイトの後のバイトが想定どおりにでない場合、関数は既定の文字を使用するか、その他の既定の動作を実行する可能性があります。

GetCPInfoEx 関数によって使用される CPINFOEX は、この構造体の拡張バージョンを提供します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header winnls.h (Windows.h を含む)

こちらもご覧ください

CPINFOEX

GetCPInfo

MultiByteToWideChar

各国語サポート構造

WideCharToMultiByte