テキスト オブジェクト モデル (TOM) は、リッチ エディット コントロールなど、いくつかの Microsoft テキスト ソリューションによってさまざまな程度でサポートされるテキスト操作インターフェイスのセットを定義します。 このトピックでは、TOM の概要について説明します。 ここでは、次のトピックについて説明します。
- TOM バージョン 2 オブジェクト
- TOM インターフェイス規則
- tomBool 型
- 数値演算のビルドアップとビルドダウン
- TOM RTF
- リッチ テキストの検索
- TOM アクセシビリティ
- 文字パターングループ
TOM バージョン 2 オブジェクト
TOM バージョン 2 (TOM 2) は、元のテキスト オブジェクト モデルを拡張します。新しいインターフェイスは古いインターフェイスから派生します。 更新された TOM API には、新しい文字と段落の書式プロパティ、テーブル モデル、複数選択、数学と Ruby のインライン オブジェクトのサポートが含まれています。
最上位の TOM 2 オブジェクトは、オブジェクト階層の下位にあるオブジェクトを作成および取得するためのメソッドを持つ 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型はBoolean型とは異なり、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)。 |
\保つ | 段落をそのまま保持します。 |
キープン | 次の段落に進んでください。 |
\ li n | 左インデント (既定値は 0)。 |
\ noline | 行番号なし。 |
\ nowidctlpar | 未亡人/孤立コントロールをオフにします。 |
\ pagebb | 段落の前に改ページします。 |
\平価 | 新しい段落。 |
\ pard | 既定の段落プロパティにリセットします。 |
\ ql | 左揃え (既定値)。 |
\ qr | 右揃え。 |
\ qj | 正当 化。 |
\ qc | 中央揃え |
\ ri n | 右インデント (既定値は 0)。 |
\ s n | スタイル n. |
\ sa n | 後のスペース (既定値は 0)。 |
\ sb n | 前のスペース (既定値は 0)。 |
\ sl n | 存在しない場合、または n=1000 の場合、行間は行の最も高い文字 (1 行の間隔) によって決定されます。 n> ゼロの場合は、少なくともこのサイズが使用されます。 n がゼロ < 場合は正確に |n|が使用されます。 \ slmult 1 が続く場合、行間は複数行の間隔になります。 |
\ slmult m | 次の \ sl. m = ゼロの場合: \ sl n によって説明されているように、行間は少なくともまたは正確に調整されます。m = 1 の場合: 行間 = n/240 倍の単一行間隔。 |
\ tb n | 左余白からのバー タブの位置 (twip 単位)。 |
\ tldot | タブ リーダーのドット。 |
\ tleq | タブリーダーとしての等号 |
\ tlhyph | タブ リーダーのハイフン |
\ tlth | タブ リーダーの太線。 |
\ tlul | タブ リーダーの点線下線。 |
\ tqc | 中央揃えタブ |
\ tqdec | 小数点タブ。 |
\ tqr | 右揃えタブ。 |
\ tx n | 左余白からのタブ位置 (twip 単位)。 |
TOM RTF 文字書式制御語
制御語 | 意味 |
---|---|
\ アニメーション n | アニメーションの種類を n に設定します。 |
\ b | 太字。 |
\キャップ | すべての大文字。 |
\ cf n | 前景色 (既定値は tomAutocolor)。 |
\ cs n | 文字スタイル n. |
\ dn n | 下付き文字の位置は半ポイント(既定値は6ポイント)。 |
\ embo | エンボス。 |
\ f n | フォント番号 n は、フォント テーブル内のエントリを参照します。 |
\ fs n | 半角のフォント サイズ (既定値は 24)。 |
\ highlight n | 背景色 (既定値は tomAutocolor)。 |
\私 | イタリック。 |
\ impr | インプリント。 |
\ lang n | 文字に言語を適用します。 n は言語に対応する数値です。 \ プレーンコントロールワードは、言語プロパティをドキュメントプロパティの\deflang n で定義された言語にリセットします。 |
\ nosupersub | 上付き文字または下付き文字をオフにします。 |
\ outl | 概要。 |
\シンプル | 文字書式プロパティを、アプリケーションによって定義された既定値にリセットします。 関連する文字書式プロパティ (RTF 仕様の「関連文字プロパティ」セクションで説明) もリセットされます。 |
\ scaps | スモールキャピタルズ |
\シャッド | 影。 |
\打つ | 取り消し線。 |
\サブ | テキストに下付き文字を適用し、フォント情報に従ってポイント サイズを小さくします。 |
\超 | テキストに上付き文字を適用し、フォント情報に従ってポイント サイズを小さくします。 |
\ ul | 連続下線。 \ ul0 では、すべての下線がオフになります。 |
\ uld | 点線の下線。 |
\ uldb | 二重下線。 |
\ ulnone | すべての下線を解除します。 |
\ ulw | Word の下線。 |
上へn | 上付き文字の位置を半ポイントで指定します (既定値は 6)。 |
\ v | 非表示のテキスト。 |
リッチ テキストの検索
TOM メソッドを使用すると、テキストの範囲で定義されているリッチ テキストを検索できます。 このようなリッチテキストを正確に見つけることは、ワープロで必要になることがよくありますが、「WYSIWYG」(ウィジウィグ)型のワードプロセッサでは実現されたことはありません。 一部の文字書式プロパティを無視 (または段落の書式設定やオブジェクト コンテンツを含める) ことを可能にするリッチ テキスト 照合のより大きなドメインは明らかですが、このような一般化は、このセクションの範囲外です。
この機能の 1 つの目的は、 リッチ テキスト検索 ダイアログ ボックスを使用して、ドキュメント内で検索するリッチ テキストを定義することです。 ダイアログ ボックスは豊富な編集コントロールを使用して実装され、TOM メソッドを使用してドキュメントを検索します。 文書から目的のリッチ テキストを [検索] ダイアログ ボックスにコピーするか、[検索] ダイアログ ボックスで直接入力して書式設定することができます。
次の例は、TOM メソッドを使用して、正確な文字書式の組み合わせを含むテキストを検索する方法を示しています。 アルゴリズムは、 pr1
という名前の一致範囲内のプレーン テキストを検索します。 プレーン テキストが見つかった場合は、pr2
という名前の試行範囲によって指されます。 次に、2 つの挿入ポイント範囲 (prip1
と prip2
) を使用して、文字の書式設定と pr1
の文字書式を比較する試用範囲を確認します。 完全に一致する場合、入力範囲 ( ppr
によって指定) が評価版範囲のテキストを指すように更新され、関数は一致した範囲内の文字数を返します。 文字書式の比較では、pf1
と pf2
の 2 つの ITextFont オブジェクトが使用されます。 これらは、 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 メソッドは、関心のある場所に到着したときに実行できる操作を強化します。 次の表では、最も便利な方法について説明します。
メソッド | アクセシビリティを向上させる方法 |
---|---|
GetSelectionの | このメソッドは、テキストの強調表示やスクロールなど、さまざまなビュー指向の目的で使用できるアクティブな選択を取得します。 |
ポイントからの範囲 | アクティブな選択範囲で使用する場合、このメソッドは特定のビューに関連付けられた範囲を取得することが保証されます。 |
展開 | テキスト範囲を拡大して、テキストに含まれる部分単位が完全に含まれるようにします。 たとえば、Expand(tomWindow) を使って範囲を拡張し、範囲内で表示される内容を含めます。 |
GetDuplicate | アクティブな選択範囲で使用する場合、このメソッドは特定のビューに関連付けられた範囲を取得することが保証されます。 RangeFromPoint の説明を参照してください。 |
GetPoint | テキスト範囲内の開始位置または終了文字位置の画面座標を取得します。 |
ScrollIntoView | テキスト範囲をスクロールして表示します。 |
セットポイント | 指定したポイントまでのテキストを選択します。 |
キャラクターマッチセット
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" (Japanese transliteration: シーセット) | 意味 |
---|---|
Ctype1 | CT_CTYPE1型の組み合わせ。 |
Ctype2 + tomCType2 | 任意の CT_CTYPE2 タイプ。 |
Ctype3 + tomCType3 | CT_CTYPE3型の組み合わせ。 |
具体的には、 Ctype1 は、以下の任意の組み合わせとすることができる。
Ctype1 名称 | 価値 | 意味 |
---|---|---|
C1_上部 | 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 (assuming no additional context or necessity for translation exists) | 0x0200 | 定義された文字ですが、他のC1_* 型の 1 つではありません。 |
Ctype2 型は、Unicode テキストの適切なレイアウトをサポートします。 方向属性が割り当てられ、Unicode によって標準化された双方向レイアウト アルゴリズムによって正確な結果が生成されます。 これらの型は相互に排他的です。 これらの属性の使用方法の詳細については、「 Unicode 標準: ワールドワイド文字エンコード、ボリューム 1 および 2、Addison-Wesley パブリッシング カンパニー: 1991、1992」を参照してください。
CType2 名 | 価値 | 意味 |
---|---|---|
強い: | ||
C2_LEFTTORIGHT | 0x1 | 左から右へ。 |
C2_RIGHTTOLEFT | 0x2 | 右から左へ。 |
弱い: | ||
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 name | 価値 | 意味 |
---|---|---|
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 |
スペースモッド | 0x2b0 — 0x2ff | 組み合わせ | 0x300 — 0x36f |
ギリシャ語 | 0x370 — 0x3ff | BasicGreek | 0x370 — 0x3cf |
GreekSymbols | 0x3d0 — 0x3ff | キリル | 0x400 — 0x4ff |
アルメニア語 | 0x530 — 0x58f | ヘブライ語 | 0x590 — 0x5ff |
ベーシックヘブライ語 | 0x5d0 — 0x5ea | ヘブライクサ | 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 | ジョージアンエックス | 0x10a0 — 0xa0cf |
バスクジョージアン | 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 |
レターライク | 0x2100 — 0x214f | NumberForms | 0x2150 — 0x218f |
矢印 | 0x2190 — 0x21ff | MathOps | 0x2200 — 0x22ff |
MiscTech | 0x2300 — 0x23ff | CtrlPictures | 0x2400 — 0x243f |
光学文字認識 | 0x2440 — 0x245f | EnclAlphaNum | 0x2460 — x24ff |
ボックス描画 | 0x2500 — 0x257f | BlockElement | 0x2580 — 0x259f |
GeometShapes | 0x25a0 — 0x25ff | 雑多な記号 | 0x2600 — 0x26ff |
ディングバッツ | 0x2700 — 0x27bf | CJKSymPunct | 0x3000 — 0x303f |
平仮名 | 0x3040 — 0x309f | 片仮名 | 0x30a0 — 0x30ff |
Bopomofo | 0x3100 — 0x312f | ハングルジャモ | 0x3130 — 0x318f |
CJLMisc | 0x3190 — 0x319f | EnclCJK | 0x3200 — 0x32ff |
CJKCompatibl | 0x3300 - 0x33ff | 漢 | 0x3400 — 0xabff |
ハングル | 0xac00 — 0xd7ff | UTF16Lead | 0xd800 — 0xdbff |
UTF16トレイル | 0xdc00 — 0xdfff | プライベート使用 | 0xe000 — 0xf800 |
CJKCompIdeog | 0xf900 — 0xfaff | AlphaPres | 0xfb00 — 0xfb4f |
ArabicPresA | 0xfb50 — 0xfdff | CombHalfMark | 0xfe20 — 0xfe2f |
CJKCompForm | 0xfe30 — 0xfe4f | 小型フォーム変数 | 0xfe50 — 0xfe6f |
ArabicPresB | 0xfe70 — 0xfefe | ハーフフルフォーム | 0xff00 - 0xffef |
特別セール | 0xfff0 — 0xfffd |