テキスト オブジェクト モデルについて
テキスト オブジェクト モデル (TOM) は、リッチ エディット コントロールなど、いくつかの Microsoft テキスト ソリューションによってさまざまな程度でサポートされるテキスト操作インターフェイスのセットを定義します。 このトピックは、TOMの概要を示しています。 それは、次のトピックを検討します。
- TOM バージョン 2 オブジェクト
- TOM インターフェイス規則
- tomBool 型
- 数値演算のビルドアップとビルドダウン
- TOM RTF
- リッチ テキストの検索
- TOM アクセシビリティ
- 文字一致セット
TOM バージョン 2 オブジェクト
TOM バージョン 2 (TOM 2) は、元のテキスト オブジェクト モデルを拡張します。新しいインターフェイスは古いインターフェイスから派生します。 更新された TOM API には、新しい文字と段落の書式プロパティ、テーブル モデル、複数選択、数学と Ruby のインライン オブジェクトのサポートが含まれています。
最上位レベルの TOM2 オブジェクトは、オブジェクト階層の下位にあるオブジェクトを作成および取得するためのメソッドを持つ ITextDocument2 インターフェイスによって定義されます。 単純なプレーンテキスト処理の場合は、 ITextDocument2 オブジェクトから ITextRange2 オブジェクトを取得し、それを使用してほとんどの処理を行うことができます。 リッチ テキストの書式設定を追加する必要がある場合は、 ITextRange2 オブジェクトから ITextFont2 オブジェクトと ITextPara2 オブジェクトを取得できます。 ITextFont2 は、Microsoft Word の書式フォント ダイアログと同等のプログラミングを提供し、 ITextPara2 は Word の書式段落ダイアログと同等の機能を提供します。
これら 3 つの下位レベルのオブジェクトに加えて、TOM 2 には選択オブジェクト (ITextSelection2) があります。これは、選択の強調表示と一部の UI 指向メソッドを持つ ITextRange2 オブジェクトです。
範囲オブジェクトと選択オブジェクトには、画面上のテキストまたは画面にスクロールできるテキストをプログラムで調べることができる画面指向のメソッドが含まれます。 これらの機能は、視覚障害のあるユーザーがテキストにアクセスできるようにするのに役立ちます。
2 サフィックスを持つ各インターフェイスは、2 つのサフィックスを持たない対応するインターフェイスから継承されます。 たとえば、 ITextDocument2 は ITextDocument から継承します。
TOM 2 オブジェクトの階層は次のとおりです。
ITextDocument2 Top-level editing object
ITextRange2 Primary text interface: a range of text
ITextFont2 Character-attribute interface
ITextPara2 Paragraph-attribute interface
ITextRow Table interface
ITextSelection2 Screen highlighted text range
ITextRange2 Selection inherits all range methods
ITextDisplays Displays collection (not yet defined)
ITextStrings Rich-text strings collection
ITextStoryRanges2 Enumerator for stories in document
ITextDocument2 オブジェクトは、 ストーリー と呼ばれる 1 つ以上の連続したテキスト範囲を表します。 ストーリーは、ドキュメントのメインテキスト、ヘッダーとフッター、脚注、注釈、リッチ テキスト スクラッチ パッドなど、ドキュメントのさまざまな部分を表します。 スクラッチ パッド ストーリーは、線形形式の数式と組み込みフォームの間で翻訳するときに使用されます。 スクラッチ パッド ストーリーは、コンテンツが変更される現在のコピー ソースである範囲の内容を保存するときにも使用されます。
ITextRange2 オブジェクトは、開始位置と終了位置のオフセットとストーリー オブジェクトによって定義されます。 テキストはクリップボードまたは他のターゲットにコピーできますが、親ストーリー オブジェクトとは独立して存在しません。 テキスト範囲オブジェクトは、他の種類のオフセットによって定義されるスプレッドシートや他の範囲オブジェクトとは異なります。たとえば、行/列やグラフィックスの位置 (x、y) などです。 テキスト範囲オブジェクトは、さまざまな方法で自身を変更し、それ自体の複製を返すことができます。また、開始位置と終了文字位置、および現在の選択範囲へのストーリー ポインターをコピーするようにコマンドを実行できます。
ITextRange オブジェクトは常に特定のストーリーを表すために作成できるため、明示的なストーリー オブジェクトは必要ありません。 特に、 ITextDocument オブジェクトは、 ITextStoryRanges オブジェクトを生成し、完全なストーリーを記述する開始文字位置と終了文字位置の値 (0 や tomForwardなど) の範囲で、ドキュメント内のストーリーを列挙することができます。
ITextStoryRanges2 オブジェクトでは、各ストーリーは ITextRange2 オブジェクトによって記述されるため、明示的なストーリー オブジェクトは必要ありません。 特に、 ITextDocument2 オブジェクトは、 ITextStoryRanges2 オブジェクトを生成して、完全なストーリーを記述する開始文字位置と終了文字位置の値 (0 や tomForwardなど) の範囲で、ドキュメント内のストーリーを列挙することができます。
ITextRange::Move メソッドおよび ITextRange::Expand メソッドと共に ITextRow インターフェイスを使用すると、テーブルの挿入、クエリ、変更を行うことができます。
TOM インターフェイス規則
すべての TOM メソッドは HRESULT 値を返します。 一般に、TOM メソッドは次の標準値を返します。
- E_OUTOFMEMORY
- E_INVALIDARG
- E_NOTIMPL
- E_FILENOTFOUND
- E_ACCESSDENIED
- E_FAIL
- CO_E_RELEASED
- NOERROR (S_OKと同じ)
- S_FALSE
ITextRange などの TOM オブジェクトに関連付けられている編集インスタンスが削除されると、TOM オブジェクトは役に立たなくなり、すべてのメソッドは CO_E_RELEASED を返します。
HRESULT 戻り値に加えて、多くのメソッドには、値を返すために使用されるポインターである out パラメーターが含まれています。 すべてのインターフェイスについて、すべてのポインター パラメーターをチェックして、それらを使用する前に 0 以外であることを確認する必要があります。 有効なポインターを必要とするメソッドに null 値を渡すと、メソッドはE_INVALIDARGを返します。 null 値を持つ省略可能な out ポインターは無視されます。
Get プレフィックスと Set プレフィックスを持つメソッドを使用して、プロパティを取得および設定します。 ブール変数は、 FALSE の場合は tomFalse (0)、 TRUE の場合は tomTrue (-1) を使用します。
TOM定数は、 tomConstants 列挙型で定義され、プレフィックス tom (例: tomWord) で始まります。
tomBool 型
多くの TOM メソッドでは、バイナリ状態のリッチ テキスト属性に "tomBool" という特殊な型の変数が使用されています。 tomBool 型は、 tomTrue、 tomFalse、 tomToggle、 tomUndefinedの 4 つの値を受け取ることができるため、 ブール 型とは異なります。 tomTrue 値と tomFalse 値は true と false を示します。 tomToggle 値は、プロパティの切り替えに使用されます。 従来 NINCH と呼ばれる tomUndefined 値は、longs、floats、 COLORREFで動作する特別な入力なし、変更なし値です。 文字列の場合、 tomUndefined (または NINCH) は null 文字列で表されます。 プロパティ設定操作の場合、 tomUndefined を使用してもターゲット プロパティは変更されません。 プロパティ取得操作の場合、 tomUndefined は、範囲内の文字の値が異なることを意味します (プロパティ ダイアログ ボックスの灰色のチェック ボックスが表示されます)。
数値演算のビルドアップとビルドダウン
ITextRange2::BuildUpMath メソッドを使用すると、線形形式の数式を組み込みバージョンに変換できます。 ITextRange2::Linearize メソッドは、線形化またはビルドダウンと呼ばれる逆の変換を実行して、組み込みバージョンの数式を線形形式に変換します。 数式のビルド ダウン機能は、プレーン テキストをエクスポートする必要がある場合や、特定の種類の編集を有効にする必要がある場合に便利です。
TOM RTF
TOM では、リッチ テキスト交換は、明示的なメソッド呼び出しのセットまたはリッチ テキスト形式 (RTF) でのリッチ テキストの転送によって実現できます。 このセクションでは、段落プロパティと文字プロパティの RTF コントロール ワードの表を示します。
TOM RTF 段落コントロールワード
制御語 | 意味 |
---|---|
\ fi n | 1 行目のインデント (既定値は 0)。 |
\ keep | 段落をそのまま保持します。 |
\ keepn | 次の段落に進んでください。 |
\ li n | 左インデント (既定値は 0)。 |
\ noline | 行番号の表示なし |
\ nowidctlpar | ウィドウ/オーファンコントロールをオフにします。 |
\ pagebb | 段落の前に改ページします。 |
\ par | 新しい段落。 |
\ pard | 既定の段落プロパティにリセットします。 |
\ ql | 左揃え (既定値)。 |
\ qr | 右揃え。 |
\ qj | 正当化。 |
\ qc | 中央揃え。 |
\ ri n | 右インデント (既定値は 0)。 |
\ s n | スタイル n. |
\ sa n | 後のスペース (既定値は 0)。 |
\ sb n | 前のスペース (既定値は 0)。 |
\ sl n | 存在しない場合、または n=1000 の場合、行間は行の最も高い文字 (1行の間隔) によって決定されます。 n> が 0 の場合、少なくとも、このサイズが使用されます。 n が < 0 の場合、正確に |n| が使用されます。 \ slmult 1 が続く場合、行間は複数行の間隔になります。 |
\ slmult m | \ sl に従います。 m = 0: \ sl n で説明されているように、少なくとも行間または正確な行間。 m = 1: 行間 = n/240 回の単一行間隔。 |
\ tb n | 左余白からのバー タブの位置 (twip 単位)。 |
\ tldot | タブ リーダーのドット。 |
\ tleq | タブリーダーの等号 |
\ tlhyph | タブ リーダーハイフン。 |
\ tlth | タブ リーダーの太線。 |
\ tlul | タブ リーダーの下線。 |
\ tqc | 中央揃えタブ。 |
\ tqdec | [10 進] タブ。 |
\ tqr | 右揃えタブ。 |
\ tx n | 左余白からのタブの位置 (twip 単位)。 |
TOM RTF 文字書式制御語
制御語 | 意味 |
---|---|
\ アニメーション n | アニメーションの種類を n に設定します。 |
\b | 太字。 |
\ caps | すべての大文字。 |
\ cf n | 前景色 (既定値は tomAutocolor)。 |
\ cs n | 文字スタイル n. |
\ dn n | 半角の下付き位置 (既定値は 6)。 |
\ embo | エンボス。 |
\ f n | フォント番号 n はフォント テーブル内のエントリを参照します。 |
\ fs n | フォントサイズを半ポイント単位で指定します(デフォルトは24)。 |
\ 強調表示 n | 背景色 (規定値は tomAutocolor)。 |
\ i | 斜体。 |
\ impr | インプリント。 |
\ lang n | 文字に言語を適用します。 n は言語に対応する数値です。 \ プレーンコントロールワードは、言語プロパティをドキュメントプロパティの\deflang n で定義された言語にリセットします。 |
\ nosupersub | 上付き文字または下付き文字をオフにします。 |
\ outl | 枠線。 |
\ plain | 文字書式プロパティを、アプリケーションによって定義された既定値にリセットします。 関連する文字書式プロパティ (RTF 仕様の「関連文字プロパティ」セクションで説明) もリセットされます。 |
\ scaps | スモールキャピタル |
\ shad | シャドウ。 |
\ strike | 取り消し線。 |
\ sub | テキストに下付き文字を適用し、フォント情報に従ってポイント サイズを小さくします。 |
\ super | テキストに上付き文字を適用し、フォント情報に従ってポイント サイズを小さくします。 |
\ ul | 連続下線。 \ ul0 では、すべての下線がオフになります。 |
\ uld | 鎖線の下線 |
\ uldb | 二重下線。 |
\ ulnone | すべての下線を停止します。 |
\ ulw | Word の下線。 |
\ up n | 半角の上付き位置 (既定値は 6)。 |
\v | 非表示のテキスト。 |
リッチ テキストの検索
TOM メソッドを使用すると、テキストの範囲で定義されているリッチ テキストを検索できます。 このようなリッチ テキストを正確に見つけることは、ワープロで必要になることがよくありますが、"表示される内容は何を得る" (WYSIWYG) ワード プロセッサで満たされたことはありません。 一部の文字書式設定プロパティを無視 (または段落の書式設定やオブジェクト コンテンツを含める) を可能にするリッチ テキスト 照合のメインは明らかに大きくなりますが、このような一般化は、このセクションの範囲外です。
この機能の 1 つの目的は、リッチ テキスト 検索 ダイアログ ボックスを使用して、ドキュメント内で検索するリッチ テキストを定義することです。 ダイアログ ボックスは豊富な編集コントロールを使用して実装され、TOM メソッドを使用してドキュメントを検索します。 文書から目的のリッチ テキストを 検索 ダイアログ ボックスにコピーするか、 検索 ダイアログ ボックスで直接入力して書式設定することができます。
次の例は、TOM メソッドを使用して、正確な文字書式の組み合わせを含むテキストを検索する方法を示しています。 このアルゴリズムでは、一致範囲のプレーン テキストが検索されます。これには pr1
という名前が付けられています 。 プレーンテキストが見つかった場合は、評価版の範囲によって指されます。これは pr2
という名前が付けられています 。 次に、2 つの挿入ポイント範囲 (prip1
および prip2
) を使用して、その文字の書式設定と > の pr1
文字書式を比較する試用範囲を確認します。 それらが正確に一致する場合、 ppr
で与えられる入力範囲が評価版範囲のテキストを指すように更新され、関数は一致した範囲内の文字数を返します。 2 つの ITextFont オブジェクト、 pf1
と pf2
が文字書式設定の比較に使用されます。 これらは、挿入ポイント範囲 prip1
と prip2
に添付されます。
LONG FindRichText (
ITextRange **ppr, // Ptr to range to search
ITextRange *pr1) // Range with rich text to find
{
BSTR bstr; // pr1 plain-text to search for
LONG cch; // Text string count
LONG cch1, cch2; // tomCharFormat run char counts
LONG cchMatch = 0; // Nothing matched yet
LONG cp; // Handy char position
LONG cpFirst1; // pr1 cpFirst
LONG cpFirst2; // pr2 cpFirst
ITextFont * pf1, *pf // Fonts corresponding to IPs prip1 and prip2
ITextRange *pr2; // Range duplicate to search with
ITextRange *prip1, *prip // Insertion points to walk pr1, pr2
if (!ppr || !*ppr || !pr1)
return E_INVALIDARG;
// Initialize range and font objects used in search
if ((*ppr)->GetDuplicate(&pr2) != NOERROR ||
pr1->GetDuplicate(&prip1) != NOERROR ||
pr2->GetDuplicate(&prip2) != NOERROR ||
prip1->GetFont(&pf1) != NOERROR ||
prip2->GetFont(&pf2) != NOERROR ||
pr1->GetText(&bstr) != NOERROR )
{
return E_OUTOFMEMORY;
}
pr1->GetStart(&cpFirst1);
// Keep searching till rich text is matched or no more plain-text hits
while(!cchMatch && pr2->FindText(bstr, tomForward, 0, &cch) == NOERROR)
{
pr2->GetStart(&cpFirst2); // pr2 is a new trial range
prip1->SetRange(cpFirst1, cpFirst1); // Set up IPs to scan match
prip2->SetRange(cpFirst2, cpFirst2); // and trial ranges
while(cch > 0 &&
pf1->IsEqual(pf2, NULL) == NOERROR) // Walk match & trial ranges
{ // together comparing font
prip1->GetStart(&cch1); // properties
prip1->Move(tomCharFormat, 1, NULL);
prip1->GetStart(&cp);
cch1 = cp - cch1; // cch of next match font run
prip2->GetStart(&cch2);
prip2->Move(tomCharFormat, 1, NULL);
prip2->GetStart(&cp);
cch2 = cp - cch2; // cch of next trial font run
if(cch1 < cch) // There is more to compare
{
if(cch1 != cch2) // Different run lengths:
break; // no formatting match
cch = cch - cch1; // Matched format run
}
else if(cch2 < cch) // Trial range format run too
break; // short
else // Both match and trial runs
{ // reach at least to match
pr2->GetEnd(&cp); // text end: rich-text match
(*ppr)->SetRange(cpFirst2, cp) // Set input range to hit
cchMatch = cp - cpFirst2; // coordinates and return
break; // length of matched string
}
}
}
pr2->Release();
prip1->Release();
prip2->Release();
pf1->Release();
pf2->Release();
SysFreeString(bstr);
return cchMatch;
}
TOM アクセシビリティ
TOM では、 ITextSelection インターフェイスと ITextRange インターフェイスを介したアクセシビリティ サポートが提供されます。 このセクションでは、アクセシビリティに役立つメソッドと、プログラムがオブジェクトの x、 y 画面の位置を決定する方法について説明します。
UI ベースのアクセシビリティ プログラムは通常、画面とマウスで動作するため、一般的な懸念事項は、現在のマウス位置 (画面座標) に対応する ITextDocument インターフェイスを見つけることです。 次のセクションでは、適切なインターフェイスを決定する 2 つの方法について説明します。
- 実行中のオブジェクト テーブルを使用する
- クライアントが同じプロセス空間に存在する場合は、ウィンドウ化されたリッチエディット インスタンスに対して機能する EM_GETOLEINTERFACE メッセージを使用します (マーシャリング は必要ありません)
詳細については、Microsoft Active Accessibility 仕様を参照してください。 画面位置からオブジェクトを取得した後、 ITextDocument インターフェイスに使用し、 RangeFromPoint メソッドを呼び出して、画面の位置に対応する cp で空の範囲オブジェクトを取得できます。
実行中のオブジェクト テーブルからのインターフェイス
実行中のオブジェクト テーブル (ROT) は、アクティブなオブジェクト インスタンスを示します。 このテーブルに対してクエリを実行すると、オブジェクトが既に実行されているときに、クライアントをオブジェクトに接続するプロセスを高速化できます。 実行中のオブジェクト テーブルを介してプログラムから TOM インターフェイスにアクセスするには、ウィンドウがある TOM インスタンスをモニカーを使用して ROT に登録する必要があります。 モニカーは、その HWND の 16 進値を含む文字列から構築します。 次のコードサンプルは、これを行う方法を示しています。
// This TOM implementation code is executed when a new windowed
// instance starts up.
// Variables with leading underscores are members of this class.
HRESULT hr;
OLECHAR szBuf[10]; // Place to put moniker
MONIKER *pmk;
hr = StringCchPrintf(szBuff, 10, "%x", _hwnd);
if (FAILED(hr))
{
//
// TODO: write error handler
//
}
CreateFileMoniker(szBuf, &pmk);
OleStdRegisterAsRunning(this, pmk, &_dwROTcookie);
....................
// Accessibility Client:
// Find hwnd for window pointed to by mouse cursor.
GetCursorPos(&pt);
hwnd = WindowFromPoint(pt);
// Look in ROT (running object table) for an object attached to hwnd
hr = StringCchPrintf(szBuff, 10, "%x", hwnd);
if (FAILED(hr))
{
//
// TODO: write error handler
//
}
CreateFileMoniker(szBuf, &pmk);
CreateBindContext(0, &pbc);
pmk->BindToObject(pbc, NULL, IID_ITextDocument, &pDoc);
pbc->Release();
if( pDoc )
{
pDoc->RangeFromPoint(pt.x, pt.y, &pRange);
// ...now do whatever with the range pRange
}
ウィンドウ メッセージからのインターフェイス
EM_GETOLEINTERFACE メッセージは、特定の画面位置にあるオブジェクトの IUnknown インターフェイスを取得する別の方法を提供します。 実行中のオブジェクト テーブルからのインターフェイス で説明したように、画面位置の HWND を取得し、このメッセージをその HWND に送信します。 EM_GETOLEINTERFACE メッセージはリッチ エディット固有であり、 lParam によってアドレス指定される変数内の IRichEditOle インターフェイスへのポインタを返します。
ヒント ポインターが返された場合 (メッセージを送信する前に、 lParam が指すオブジェクトを null に設定してください)、その IUnknown::QueryInterface メソッドを呼び出すことで、 ITextDocument インターフェイスを取得できます。 次のコード サンプルに、この方法を示します。
HWND hwnd;
ITextDocument *pDoc;
ITextRange *pRange;
POINT pt;
IUnknown *pUnk = NULL;
GetCursorPos(&pt);
hwnd = WindowFromPoint(pt);
SendMessage(hwnd, EM_GETOLEINTERFACE, 0, (LPARAM)&pUnk);
if(pUnk &&
pUnk->QueryInterface(IID_ITextDocument, &pDoc) == NOERROR)
{
pDoc->RangeFromPoint(pt.x, pt.y, &pRange);
// ... continue with rest of program
}
アクセシビリティ指向メソッド
一部の TOM メソッドは画面内を移動するのに特に役立ちますが、他の TOM メソッドは、関心のある場所に到着したときに実行できる操作を強化します。 次の表では、最も便利なメソッドを説明します。
Method | アクセシビリティを向上させる方法 |
---|---|
GetSelection | このメソッドは、テキストの強調表示やスクロールなど、さまざまなビュー指向の目的で使用できるアクティブな選択を取得します。 |
RangeFromPoint | アクティブな選択範囲で使用する場合、このメソッドは特定のビューに関連付けられた範囲を取得することが保証されます。 |
展開 | テキスト範囲を拡大して、テキストに含まれる部分単位が完全に含まれるようにします。 たとえば、 Expand(tomWindow) は範囲を展開して、範囲のストーリーの表示部分を含めます。 |
GetDuplicate | アクティブな選択範囲で使用する場合、このメソッドは特定のビューに関連付けられた範囲を取得することが保証されます。 RangeFromPoint の説明を参照してください。 |
GetPoint | テキスト範囲内の開始位置または終了文字位置の画面座標を取得します。 |
ScrollIntoView | テキスト範囲をスクロールして表示します。 |
SetPoint | 指定したポイントの上または上にあるテキストを選択します。 |
文字一致セット
MoveWhile や MoveUntil など、 ITextRange のさまざまな Move* メソッドの バリアント パラメーターは、明示的な文字列または文字一致セットの 32 ビット インデックスを受け取ることができます。 インデックスは、Unicode 範囲または GetStringTypeEx 文字セットによって定義されます。 n から始まり、長さ l (< 32768) の Unicode 範囲は、インデックス n + (l << 16) + 0x80000000によって指定されます。 たとえば、基本的なギリシャ文字は CR_Greek = 0x805f0370 で定義され、印刷可能な ASCII 文字は CR_ASCIIPrint = 0x805e0020 で定義されます。 さらに、 MoveWhile メソッドと MoveUntil メソッドを使用すると、 GetStringTypeEx 文字セットまたはこれらの文字セットに含まれていない文字のスパンで、一連の文字をすばやくバイパスできます。
GetStringTypeEx セットは、 Ctype1、 Ctype2、および Ctype3 の値で指定され、次のように定義されます。
Cset | 意味 |
---|---|
Ctype1 | CT_CTYPE1型の組み合わせ。 |
Ctype2 + tomCType2 | 任意のCT_CTYPE2型。 |
Ctype3 + tomCType3 | CT_CTYPE3型の組み合わせ。 |
具体的には、 Ctype1 は、以下の任意の組み合わせとすることができる。
Ctype1 名 | Value | 意味 |
---|---|---|
C1_UPPER | 0x0001 | 大文字。 |
C1_LOWER | 0x0002 | 小文字。 |
C1_DIGIT | 0x0004 | 10進数。 |
C1_SPACE | 0x0008 | 空白文字。 |
C1_PUNCT | 0x0010 | 句読点。 |
C1_CNTRL | 0x0020 | 制御 文字 |
C1_BLANK | 0x0040 | 空白文字。 |
C1_XDIGIT | 0x0080 | 16進数 |
C1_ALPHA | 0x0100 | 任意の言語文字 (英字、音節、または表意)。 |
C1_DEFINED | 0x0200 | 定義された文字ですが、他のC1_* 型の 1 つではありません。 |
Ctype2 型は、Unicode テキストの適切なレイアウトをサポートします。 方向属性が割り当てられ、Unicode によって標準化された双方向レイアウト アルゴリズムによって正確な結果が生成されます。 これらの型を同時に指定することはできません。 これらの属性の使用方法の詳細については、「 Unicode 標準: ワールドワイド文字エンコード、ボリューム 1 および 2、Addison-Wesley Publishing Company: 1991、1992」を参照してください。
CType2 名前 | Value | 意味 |
---|---|---|
[強固]。 | ||
C2_LEFTTORIGHT | 0x1 | 左から右。 |
C2_RIGHTTOLEFT | 0x2 | 右から左。 |
Weak: | ||
C2_EUROPENUMBER | 0x3 | ヨーロッパ数字、ヨーロッパ番号。 |
C2_EUROPESEPARATOR | 0x4 | ヨーロッパ数字の区切り記号。 |
C2_EUROPETERMINATOR | 0x5 | ヨーロッパ数字ターミネータ。 |
C2_ARABICNUMBER | 0x6 | アラビア数字。 |
C2_COMMONSEPARATOR | 0x7 | 一般的な数値区切り記号。 |
中立: | ||
C2_BLOCKSEPARATOR | 0x8 | ブロック区切り記号。 |
C2_SEGMENTSEPARATOR | 0x9 | セグメント区切り文字。 |
C2_WHITESPACE | 0xA | 空白。 |
C2_OTHERNEUTRAL | 0xB | その他のニュートラル。 |
適用外: | ||
C2_NOTAPPLICABLE | 0x0 | 暗黙的な方向はありません。 |
Ctype3 型は、一般的なテキスト処理または標準の C ライブラリ関数に必要な POSIX 型の拡張のためのプレースホルダーです。
CType3 名前 | Value | 意味 |
---|---|---|
C3_NONSPACING | 0x1 | ノンスペーシングマーク。 |
C3_DIACRITIC | 0x2 | 付加記号ノンスペーシングマーク。 |
C3_VOWELMARK | 0x4 | 母音ノンスペーシングマーク。 |
C3_SYMBOL | 0x8 | シンボル。 |
C3_KATAKANA | 0x10 | カタカナ文字。 |
C3_HIRAGANA | 0x20 | ひらがな文字。 |
C3_HALFWIDTH | 0x40 | 半角文字。 |
C3_FULLWIDTH | 0x80 | 全角文字。 |
C3_IDEOGRAPH | 0x100 | 表意文字。 |
C3_KASHIDA | 0x200 | アラビア語の樫田文字。 |
C3_ALPHA | 0x8000 | すべての言語文字 (英字、音節、および表意)。 |
C3_NOTAPPLICABLE | 0x0 | 該当なし。 |
開発キットの編集 (EDK) には、Unicode 標準で説明されている次の範囲の pVar インデックス定義を含めることができます。
文字セット | Unicode 範囲 | 文字セット | Unicode 範囲 |
---|---|---|---|
ASCII | 0x0 — 0x7f | ANSI | 0x0 — 0xff |
ASCIIPrint | 0x20—0x7e | Latin1 | 0x20—0xff |
Latin1Supp | 0xa0—0xff | LatinXA | 0x100 — 0x17f |
LatinXB | 0x180 — 0x24f | IPAX | 0x250 - 0x2af |
SpaceMod | 0x2b0 — 0x2ff | 組み合わせ | 0x300 — 0x36f |
ギリシャ語 | 0x370 — 0x3ff | BasicGreek | 0x370 — 0x3cf |
GreekSymbols | 0x3d0 — 0x3ff | キリル文字 | 0x400 — 0x4ff |
アルメニア語 | 0x530 — 0x58f | ヘブライ語 | 0x590 — 0x5ff |
BasicHebrew | 0x5d0 — 0x5ea | HebrewXA | 0x590 — 0x5cf |
HebrewXB | 0x5eb — 0x5ff | アラビア語 | 0x600 — 0x6ff |
BasicArabic | 0x600 — 0x652 | ArabicX | 0x653 — 0x6ff |
デヴァンガリ | 0x900 — 0x97f | バングラ語 (旧ベンガル語) | 0x980 — 0x9ff |
グルムキー | 0xa00 — 0xa7f | グジャラート語 | 0xa80 — 0xaff |
オディア (旧オリヤ) | 0xb00 — 0xb7f | タミル語 | 0xb80 — 0xbff |
Teluga | 0xc00 — 0xc7f | カンナダ語 | 0xc80 — 0xcff |
マラヤーラム語 | 0xd00 — 0xd7f | タイ語 | 0xe00 — 0xe7f |
ラオス語 | 0xe80 — 0xeff | GeorgianX | 0x10a0 — 0xa0cf |
BascGeorgian | 0x10d0 — 0x10ff | 字母 | 0x1100 — 0x11ff |
LatinXAdd | 0x1e00 — 0x1eff | GreekX | 0x1f00 — 0x1fff |
GenPunct | 0x2000 — 0x206f | 上付き | 0x2070 — 0x207f |
下付き | 0x2080 — 0x208f | SuperSubscript | 0x2070 — 0x209f |
通貨 | 0x20a0 — 0x20cf | CombMarkSym | 0x20d0 — 0x20ff |
LetterLike | 0x2100 — 0x214f | NumberForms | 0x2150 — 0x218f |
矢印 | 0x2190 — 0x21ff | MathOps | 0x2200 — 0x22ff |
MiscTech | 0x2300 — 0x23ff | CtrlPictures | 0x2400 — 0x243f |
OptCharRecog | 0x2440 — 0x245f | EnclAlphaNum | 0x2460 — x24ff |
BoxDrawing | 0x2500 — 0x257f | BlockElement | 0x2580 — 0x259f |
GeometShapes | 0x25a0 — 0x25ff | MiscSymbols | 0x2600 — 0x26ff |
Dingbats | 0x2700 — 0x27bf | CJKSymPunct | 0x3000 — 0x303f |
ひらがな | 0x3040 — 0x309f | カタカナ | 0x30a0 — 0x30ff |
注音符号 | 0x3100 — 0x312f | HangulJamo | 0x3130 — 0x318f |
CJLMisc | 0x3190 — 0x319f | EnclCJK | 0x3200 — 0x32ff |
CJKCompatibl | 0x3300 - 0x33ff | ハン語 | 0x3400 — 0xabff |
ハングル | 0xac00 — 0xd7ff | UTF16Lead | 0xd800 — 0xdbff |
UTF16Trail | 0xdc00 — 0xdfff | PrivateUse | 0xe000 — 0xf800 |
CJKCompIdeog | 0xf900 — 0xfaff | AlphaPres | 0xfb00 — 0xfb4f |
ArabicPresA | 0xfb50 — 0xfdff | CombHalfMark | 0xfe20 — 0xfe2f |
CJKCompForm | 0xfe30 — 0xfe4f | SmallFormVar | 0xfe50 — 0xfe6f |
ArabicPresB | 0xfe70 — 0xfefe | HalfFullForm | 0xff00 - 0xffef |
特殊文字 | 0xfff0 — 0xfffd |