Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El modelo de objetos de texto (TOM) define un conjunto de interfaces de manipulación de texto admitidas en distintos grados por varias soluciones de texto de Microsoft, incluido el control de edición enriquecido. En este tema se proporciona una visión general de alto nivel del TOM. Se describen los temas siguientes.
- Objetos TOM Versión 2
- Convenciones de Interfaz TOM
- El tipo tomBool
- Compilación matemática y compilación descendente
- TOM RTF
- Búsqueda de texto enriquecido
- Accesibilidad de TOM
- Conjuntos de coincidencia de caracteres
Objetos TOM Versión 2
TOM versión 2 (TOM 2) amplía el modelo de objetos de texto original; las nuevas interfaces se derivan de las antiguas. La API de TOM actualizada incluye compatibilidad con nuevas propiedades de formato de caracteres y párrafos, un modelo de tabla, una selección múltiple y compatibilidad con objetos insertados para matemáticas y ruby.
El objeto TOM 2 de nivel superior se define mediante la interfaz ITextDocument2 , que tiene métodos para crear y recuperar objetos inferiores en la jerarquía de objetos. Para el procesamiento simple de texto sin formato, puede obtener un objeto ITextRange2 de un objeto ITextDocument2 y hacer la mayoría de todo con eso. Si necesita agregar formato de texto enriquecido, puede obtener objetos ITextFont2 e ITextPara2 de un objeto ITextRange2 . ITextFont2 proporciona el equivalente de programación del cuadro de diálogo formato-fuente de Microsoft Word y ITextPara2 proporciona el equivalente del cuadro de diálogo de párrafo con formato de Word.
Además de estos tres objetos de nivel inferior, TOM 2 tiene un objeto de selección (ITextSelection2), que es un objeto ITextRange2 con resaltado de selección y algunos métodos orientados a la interfaz de usuario.
Los objetos de rango y selección incluyen métodos centrados en la pantalla que permiten a los programas examinar texto en pantalla o texto que se puede desplazar a la pantalla. Estas funcionalidades ayudan a que el texto sea accesible para las personas con discapacidad visual, por ejemplo.
Cada interfaz que tiene el sufijo 2 hereda de la interfaz correspondiente sin el sufijo 2. Por ejemplo, ITextDocument2 hereda de ITextDocument.
Los objetos TOM 2 tienen la siguiente jerarquía.
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
Un objeto ITextDocument2 describe uno o varios intervalos contiguos de texto denominados historias. Las historias representan varias partes de un documento, como el texto principal del documento, los encabezados y pies de página, las notas al pie, las anotaciones y los borradores de texto enriquecido. Se utiliza un borrador provisional al traducir entre expresiones matemáticas en formato lineal y una forma desarrollada. También se utiliza un cuaderno de borrador al guardar el contenido de un intervalo que es la fuente de copia actual, cuando el contenido está a punto de ser modificado.
Un objeto ITextRange2 se define mediante sus desplazamientos de posición de carácter inicial y final y un objeto de historia. No existe independientemente de su objeto de artículo primario, aunque su texto se puede copiar en el Portapapeles o en otros destinos. Un objeto de intervalo de texto es diferente de la hoja de cálculo y de otros objetos de rango, definidos por otros tipos de desplazamientos; por ejemplo, fila/columna o posición de gráficos (x, y). Un objeto de intervalo de texto puede modificarse de varias maneras, puede devolver un duplicado de sí mismo, y se le puede dar la orden de copiar sus posiciones de los caracteres inicial y final, así como su puntero de narrativa, a la selección actual.
No se necesita un objeto de artículo explícito, ya que siempre se puede crear un objeto ITextRange para representar cualquier artículo determinado. En concreto, el objeto ITextDocument puede crear un objeto ITextStoryRanges para enumerar las historias del documento en términos de intervalos con valores de posición de carácter inicial y final que describen historias completas (como, 0 y tomForward).
Con un objeto ITextStoryRanges2 , no se necesita un objeto story explícito, ya que cada artículo se describe mediante un objeto ITextRange2 . En concreto, el objeto ITextDocument2 puede crear un objeto ITextStoryRanges2 para enumerar los casos del documento en términos de intervalos con valores de posición de carácter inicial y final que describen historias completas (como, 0 y tomForward).
La interfaz ITextRow junto con los métodos ITextRange::Move e ITextRange::Expand ofrecen la capacidad de insertar, consultar y cambiar tablas.
Convenciones de la interfaz TOM
Todos los métodos TOM devuelven valores HRESULT . En general, los métodos TOM devuelven los siguientes valores estándar.
- E_MEMORIA_INSUFICIENTE
- E_INVALIDARG
- E_NOTIMPL
- E_FILENOTFOUND
- E_ACCESSDENIED
- E_FAIL
- CO_E_RELEASED
- NOERROR (igual que S_OK)
- S_FALSE
Tenga en cuenta que si se elimina la instancia de edición asociada a un objeto TOM, como ITextRange , el objeto TOM se vuelve inútil y todos sus métodos devuelven CO_E_RELEASED.
Además de los valores devueltos HRESULT , muchos métodos incluyen parámetros out, que son punteros que se usan para devolver valores. Para todas las interfaces, debe comprobar todos los parámetros de puntero para asegurarse de que no son ceros antes de usarlos. Si pasa un valor NULL a un método que requiere un puntero válido, el método devuelve E_INVALIDARG. Se omiten los punteros de salida opcionales con valores NULL.
Use métodos con prefijos Get y Set para obtener y establecer propiedades. Las variables booleanas usan tomFalse (0) para FALSE y tomTrue (-1) para TRUE.
Las constantes TOM se definen en el tipo de enumeración tomConstants y comienzan con el prefijo tom, por ejemplo tomWord.
El tipo tomBool
Muchos métodos TOM usan un tipo especial de variable denominada "tomBool" para atributos de texto enriquecido que tienen estados binarios. El tipo tomBool es diferente del tipo booleano porque puede tomar cuatro valores: tomTrue, tomFalse, tomToggle y tomUndefined. Los valores tomTrue y tomFalse indican true y false. El valor tomToggle se usa para alternar una propiedad. El valor tomUndefined , más tradicionalmente denominado NINCH, es un valor especial sin entrada, sin cambio que funciona con longs, floats y COLORREFs. En el caso de las cadenas, tomUndefined (o NINCH) se representa mediante la cadena null. En el caso de las operaciones de configuración de propiedades, el uso de tomUndefined no cambia la propiedad de destino. Para las operaciones para obtener propiedades, tomUndefined significa que los caracteres del intervalo tienen valores diferentes (lo que da como resultado una casilla marcada en gris en los cuadros de diálogo de propiedades).
Compilación matemática y compilación descendente
Puede usar el método ITextRange2::BuildUpMath para convertir expresiones matemáticas con formato lineal en versiones integradas. El método ITextRange2::Linearize realiza la conversión opuesta, denominada linealización o compilación, para convertir versiones integradas de expresiones matemáticas a formato lineal. La funcionalidad de compilación matemática es útil cuando se necesita exportar texto sin formato o para habilitar determinados tipos de edición.
TOM RTF
En TOM, el intercambio de texto enriquecido se puede realizar mediante conjuntos de llamadas de método explícitas o transferencias de texto enriquecido en formato de texto enriquecido (RTF). En esta sección se proporcionan tablas de palabras de control RTF para las propiedades de párrafo y para las propiedades de caracteres.
Palabras de control del párrafo TOM RTF
Palabra de control | Significado |
---|---|
\ fi n | Sangría de primera línea (el valor predeterminado es cero). |
\mantener | Mantenga intacto el párrafo. |
\ keepn | Siga con el párrafo siguiente. |
\ li n | Sangría izquierda (el valor predeterminado es cero). |
\ noline | Sin numeración de líneas. |
\ nowidctlpar | Desactiva el control de viuda/huérfano. |
\ pagebb | Salto de página antes del párrafo. |
\par | Nuevo párrafo. |
\Pard | Restablece las propiedades de párrafo predeterminadas. |
\Ql | Alineado a la izquierda (valor predeterminado). |
QR | Alineado a la derecha. |
\ qj | Justificado. |
\ qc | Centrada. |
\ ri n | Sangría derecha (el valor predeterminado es cero). |
\ s n | Estilo n. |
\ sa n | Espacio después (el valor predeterminado es cero). |
\ sb n | Espacio anterior (el valor predeterminado es cero). |
\ sl n | Si falta o si n=1000, el espaciado de línea viene determinado por el carácter más alto de la línea (espaciado de una sola línea); si n> cero, se usa al menos este tamaño; si n es < cero, exactamente |n| se usa. El interlineado es de múltiples líneas si sigue \ slmult 1. |
\ slmult m | Siguiendo \ sl. m = cero: espaciado de líneas 'Al menos' o 'Exactamente' según se describe en \ sl n. m = 1: espaciado de línea = n/240 veces el espaciado sencillo. |
\ tb n | Posición del tabulador de barra, en twips, desde el margen izquierdo. |
\ tldot | Puntos de guía de tabulación. |
\ tleq | Signo igual de marcador de tabulación. |
\ tlhyph | Guiones del marcador de tabulación. |
\ tlth | Línea gruesa del marcador de tabulación. |
\ tlul | Subrayado del marcador de tabulación. |
\ tqc | Pestaña Centrada. |
\ tqdec | Tabulación decimal. |
tqr | Pestaña alineada a la derecha. |
\ tx n | Posición de tabulación, en twips, desde el margen izquierdo. |
Comandos de control de formato de caracteres RTF de TOM
Palabra de control | Significado |
---|---|
\ animación n | Establece el tipo de animación a n. |
\ b | Audaz. |
\mayúsculas | Todas las letras en mayúsculas. |
\ cf n | Color de primer plano (el valor predeterminado es tomAutocolor). |
\ cs n | Estilo de carácter n. |
\ dn n | Posición de subíndice en puntos medios (el valor predeterminado es 6). |
\ embo | Realzado. |
\ f n | Número de fuente, n hace referencia a una entrada de la tabla de fuentes. |
\ fs n | Tamaño de fuente en puntos medio (el valor predeterminado es 24). |
\ resaltar n | Color de fondo (el valor predeterminado es tomAutocolor). |
\i | Itálico. |
\ impr | Impresión. |
\ lang n | Aplica un idioma a un carácter. n es un número correspondiente a un idioma. La palabra de control \ plain restablece la configuración de idioma al idioma definido por \ deflang n en las propiedades del documento. |
\ nosupersub | Desactiva el superíndice o subíndice. |
\ outl | Contorno. |
llanura | Restablece las propiedades de formato de caracteres a un valor predeterminado definido por la aplicación. Las propiedades de formato de caracteres asociadas (descritas en la sección Propiedades de caracteres asociadas en la especificación RTF) también se restablecen. |
\ scaps | Pequeñas mayúsculas. |
\sábalo | Sombra. |
\huelga | Tachado. |
\sub | Aplica subíndice al texto y reduce el tamaño del punto según la información de fuente. |
\súper | Aplica superíndice al texto y reduce el tamaño del punto según la información de fuente. |
\ ul | Subrayado continuo. \ ul0 desactiva todo el subrayado. |
\ uld | Subrayado punteado. |
\ uldb | Subrayado doble. |
\ ulnone | Detiene todo el subrayado. |
\ ulw | Subrayado de palabra. |
\ up n | Posición de superíndice en puntos medios (el valor predeterminado es 6). |
\ v | Texto oculto. |
Búsqueda de texto enriquecido
Puede usar métodos TOM para buscar texto enriquecido tal y como se define en un intervalo de texto. Encontrar un texto tan enriquecido es a menudo necesario en el procesamiento de texto, aunque nunca se ha logrado en un procesador de texto "lo que ves es lo que obtienes" (WYSIWYG). Hay claramente un dominio mayor de coincidencia de texto enriquecido que permite omitir algunas propiedades de formato de caracteres (o incluir formato de párrafo o contenido de objetos), pero estas generalizaciones están fuera del ámbito de esta sección.
Un propósito para esta funcionalidad es usar un cuadro de diálogo Buscar de texto enriquecido para definir el texto enriquecido que desea buscar en un documento. El cuadro de diálogo se implementaría mediante un control de edición enriquecido y los métodos TOM se usarían para llevar a cabo la búsqueda a través del documento. Puede copiar el texto enriquecido deseado del documento en el cuadro de diálogo Buscar o escribirlo y formatearlo directamente en el cuadro de diálogo Buscar .
En el ejemplo siguiente se muestra cómo usar métodos TOM para buscar texto que contenga combinaciones de formato de caracteres exactos. El algoritmo busca el texto sin formato en el rango de coincidencias, que se denomina pr1
. Si se encuentra el texto sin formato, un rango de prueba lo señala, que se denomina pr2
. A continuación, se usan dos intervalos de puntos de inserción (prip1
y prip2
) para recorrer el intervalo de prueba comparando su formato de caracteres con el de pr1
. Si coinciden exactamente, el intervalo de entrada (dado por ppr
) se actualiza para que apunte al texto del intervalo de prueba y la función devuelve el recuento de caracteres del intervalo coincidente. Dos objetos ITextFont y pf1
pf2
, se usan en la comparación de formato de caracteres. Están adjuntos a los intervalos de puntos de inserción prip1
y 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;
}
Accesibilidad de TOM
TOM proporciona soporte de accesibilidad a través de las interfaces ITextSelection e ITextRange. En esta sección se describen los métodos útiles para la accesibilidad, así como cómo un programa puede determinar la posición de pantalla x e y de un objeto.
Dado que los programas de accesibilidad basados en la interfaz de usuario normalmente funcionan con la pantalla y el mouse, una preocupación común es encontrar la interfaz ITextDocument correspondiente para la ubicación actual del mouse (en coordenadas de pantalla). En las secciones siguientes se presentan dos maneras de determinar la interfaz adecuada:
- A través de la tabla de objetos en ejecución
- A través del mensaje EM_GETOLEINTERFACE , que funciona para instancias de edición enriquecidas con ventanas, siempre que el cliente esté en el mismo espacio de proceso (no se necesita serialización )
Para obtener más información, consulte la especificación de accesibilidad activa de Microsoft. Después de obtener un objeto desde una posición de pantalla, puede usar una interfaz ITextDocument y llamar al método RangeFromPoint para obtener un objeto de intervalo vacío en el cp correspondiente a la posición de pantalla.
Interfaz de la tabla de objetos en ejecución
Una tabla de objetos en ejecución (ROT) indica qué instancias de objeto están activas. Al consultar esta tabla, puede acelerar el proceso de conexión de un cliente a un objeto cuando el objeto ya se está ejecutando. Para que los programas puedan acceder a las interfaces TOM a través de la tabla de objetos en ejecución, una instancia de TOM con una ventana debe registrarse en el ROT mediante un moniker. El moniker se construye a partir de una cadena que contiene el valor hexadecimal de su HWND. En el ejemplo de código siguiente se muestra cómo hacerlo.
// 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
}
Interfaz de mensajes de ventana
El mensaje EM_GETOLEINTERFACE proporciona otra manera de obtener una interfaz IUnknown para un objeto en una posición de pantalla determinada. Como se describe en Interfaz de la tabla de objetos en ejecución, obtendrá un HWND para la posición de la pantalla y, a continuación, enviará este mensaje a ese HWND. El mensaje EM_GETOLEINTERFACE es específico de edición de texto enriquecido y devuelve un puntero a una interfaz, IRichEditOle, en la variable direccionada por lParam.
Consejo Si se devuelve un puntero, asegúrese de configurar el objeto al que lParam apunta para que sea NULL antes de enviar el mensaje; puede llamar a su método IUnknown::QueryInterface para obtener una interfaz ITextDocument. En el ejemplo de código siguiente se muestra este método.
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
}
Métodos orientados a accesibilidad
Algunos métodos TOM son especialmente útiles para navegar por la pantalla, mientras que otros mejoran lo que puedes hacer al llegar a lugares de interés. En la tabla siguiente se describen los métodos más útiles.
Método | Cómo promueve la accesibilidad |
---|---|
GetSelection | Este método obtiene la selección activa que se puede usar para diversos propósitos orientados hacia la visualización, como destacar el texto y desplazarse. |
RangeFromPoint | Cuando se usa en una selección activa, se garantiza que este método obtenga un intervalo asociado a una vista determinada. |
expandir | Amplía un intervalo de texto para que cualquier unidad parcial que contenga esté completamente incluida. Por ejemplo, Expand(tomWindow) amplía el rango para incluir la parte visible de la narrativa del rango. |
GetDuplicate | Cuando se usa en una selección activa, se garantiza que este método obtenga un intervalo asociado a una vista determinada. Vea la descripción de RangeFromPoint. |
GetPoint | Obtiene las coordenadas de la pantalla para la posición del carácter inicial o final en el rango de texto. |
ScrollIntoView | Muestra un intervalo de texto en la vista. |
SetPoint | Selecciona texto en o hacia arriba a través de un punto especificado. |
Conjuntos de Coincidencia de Caracteres
El parámetro variant de los distintos métodos Move* de ITextRange, como MoveWhile y MoveUntil, puede aceptar una cadena explícita o un índice de correspondencia de caracteres de 32 bits. Los índices se definen mediante intervalos Unicode o conjuntos de caracteres GetStringTypeEx . El intervalo Unicode que comienza en n y de longitud l (< 32768) lo da el índice n + (l << 16) + 0x80000000. Por ejemplo, las letras griegas básicas se definen mediante CR_Greek = 0x805f0370 y los caracteres ASCII imprimibles se definen mediante CR_ASCIIPrint = 0x805e0020. Además, los métodos MoveWhile y MoveUntil permiten omitir rápidamente un intervalo de caracteres en cualquier juego de caracteres GetStringTypeEx o en un intervalo de caracteres que no se encuentra en ninguno de estos conjuntos de caracteres.
Los conjuntos GetStringTypeEx se especifican mediante los valores de Ctype1, Ctype2 y Ctype3, y se definen de la manera siguiente.
Cset | Significado |
---|---|
Ctype1 | Combinación de los tipos de CT_CTYPE1. |
Ctype2 + tomCType2 | Cualquier tipo de CT_CTYPE2. |
Ctype3 + tomCType3 | Combinación de tipos de CT_CTYPE3. |
En concreto, Ctype1 puede ser cualquier combinación de lo siguiente.
Ctype1 Nombre | Importancia | Significado |
---|---|---|
C1_UPPER | 0x0001 | Mayúsculo. |
C1_LOWER | 0x0002 | Minúscula. |
C1_DIGIT | 0x0004 | Dígitos decimales. |
C1_SPACE | 0x0008 | Caracteres de espacio. |
C1_PUNCT | 0x0010 | La puntuación. |
C1_CNTRL | 0x0020 | Caracteres de control. |
C1_BLANK | 0x0040 | Caracteres en blanco. |
C1_XDIGIT | 0x0080 | Dígitos hexadecimales. |
C1_ALPHA | 0x0100 | Cualquier carácter lingüístico (alfabético, silábico o ideográfico). |
C1_DEFINED | 0x0200 | Carácter definido, pero no uno de los otros tipos C1_*. |
Los tipos Ctype2 admiten el diseño adecuado del texto Unicode. Los atributos de dirección se asignan para que el algoritmo de diseño bidireccional estandarizado por Unicode genere resultados precisos. Estos tipos son mutuamente excluyentes. Para obtener más información sobre el uso de estos atributos, vea The Unicode Standard: Worldwide Character Encoding, Volumes 1 and 2, Addison-Wesley Publishing Company: 1991, 1992.
Nombre de CType2 | Importancia | Significado |
---|---|---|
Fuerte: | ||
C2_LEFTTORIGHT | 0x1 | De izquierda a derecha. |
C2_RIGHTTOLEFT | 0x2 | De derecha a izquierda. |
Débil: | ||
C2_EUROPENUMBER | 0x3 | Número europeo, dígito europeo. |
C2_EUROPESEPARATOR | 0x4 | Separador numérico europeo. |
C2_EUROPETERMINATOR | 0x5 | Terminador numérico europeo. |
C2_ARABICNUMBER | 0x6 | Número árabe. |
C2_COMMONSEPARATOR | 0x7 | Separador numérico común. |
Neutral: | ||
C2_BLOCKSEPARATOR | 0x8 | Separador de bloques. |
C2_SEGMENTSEPARATOR | 0x9 | Separador de segmentos. |
C2_WHITESPACE | 0xA | Espacio en blanco. |
C2_OTHERNEUTRAL | 0xB | Otros neutrales. |
No aplicable: | ||
C2_NOTAPPLICABLE | 0x0 | Ninguna dirección implícita. |
Los tipos Ctype3 están diseñados para ser marcadores de posición para las extensiones a los tipos POSIX necesarios para el procesamiento de texto general o para las funciones estándar de la biblioteca de C.
Nombre de CType3 | Importancia | Significado |
---|---|---|
C3_NONSPACING | 0x1 | Marca sin espaciado. |
C3_DIACRITIC | 0x2 | Marca diacrítica sin espaciado |
C3_VOWELMARK | 0x4 | Marca de no espaciado vocal. |
C3_SYMBOL | 0x8 | Símbolo. |
C3_KATAKANA | 0x10 | Carácter katakana. |
C3_HIRAGANA | 0x20 | Carácter Hiragana. |
C3_HALFWIDTH | 0x40 | Carácter de ancho medio. |
C3_FULLWIDTH | 0x80 | Carácter de ancho completo. |
C3_IDEOGRAPH | 0x100 | Carácter ideográfico. |
C3_KASHIDA | 0x200 | Carácter árabe Kashida. |
C3_ALPHA | 0x8000 | Todos los caracteres lingüísticos (alfabético, silábico e ideográfico). |
No Aplicable | 0x0 | No aplicable. |
Un Kit de desarrollo de edición (EDK) podría incluir definiciones de índice pVar para los siguientes intervalos descritos en el estándar Unicode.
Juego de caracteres | Intervalo Unicode | Juego de caracteres | Rango Unicode |
---|---|---|---|
ASCII | 0x0—0x7f | ANSI (Instituto Nacional Estadounidense de Estándares) | 0x0—0xff |
ASCIIPrint | 0x20—0x7e | Latin1 | 0x20—0xff |
Latin1Supp | 0xa0—0xff | LatinXA | 0x100: 0x17f |
LatinXB | 0x180-0x24f | IPAX | 0x250—0x2af |
SpaceMod | 0x2b0—0x2ff | Combinar | 0x300—0x36f |
Griego | 0x370—0x3ff | BasicGreek | 0x370–0x3cf |
GreekSymbols | 0x3d0—0x3ff | Cirílico | 0x400–0x4ff |
Armenio | 0x530—0x58f | Hebreo | 0x590—0x5ff |
Hebreo Básico | 0x5d0—0x5ea | HebreoXA | 0x590—0x5cf |
HebreoXB | 0x5eb—0x5ff | Árabe | 0x600—0x6ff |
BasicArabic | 0x600—0x652 | ÁrabeX | 0x653—0x6ff |
Devanagari | 0x900: 0x97f | Bengalí | 0x980—0x9ff |
Gurmukhi | 0xa00—0xa7f | Gujarati | 0xa80—0xaff |
Odia | 0xb00—0xb7f | Tamil | 0xb80—0xbff |
Teluga | 0xc00—0xc7f | Kannada | 0xc80—0xcff |
Malayalam | 0xd00: 0xd7f | Tailandés | 0xe00: 0xe7f |
Lao | 0xe80—0xeff | GeorgianX | 0x10a0: 0xa0cf |
BascGeorgian | 0x10d0—0x10ff | Jamo | 0x1100: 0x11ff |
LatinXAdd | 0x1e00—0x1eff | GreekX | 0x1f00—0x1fff |
GenPunct | 0x2000: 0x206f | Superíndice | 0x2070: 0x207f |
Subíndice | 0x2080: 0x208f | SuperSubscript | 0x2070: 0x209f |
Divisa | 0x20a0—0x20cf | CombMarkSym | 0x20d0—0x20ff |
LetterLike | 0x2100: 0x214f | NumberForms | 0x2150: 0x218f |
Flechas | 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 | Símbolos Varios | 0x2600: 0x26ff |
Dingbats | 0x2700: 0x27bf | CJKSymPunct | 0x3000: 0x303f |
Hiragana | 0x3040: 0x309f | Katakana | 0x30a0—0x30ff |
Bopomofo | 0x3100: 0x312f | HangulJamo | 0x3130: 0x318f |
CJLMisc | 0x3190: 0x319f | EnclCJK | 0x3200: 0x32ff |
CJKCompatibl | 0x3300: 0x33ff | Han | 0x3400: 0xabff |
Alfabeto coreano Hangul | 0xac00—0xd7ff | UTF16Lead | 0xd800—0xdbff |
UTF16Trail | 0xdc00—0xdfff | UsoPrivado | 0xe000—0xf800 |
CJKCompIdeog | 0xf900—0xfaff | AlphaPres | 0xfb00—0xfb4f |
ArabicPresA | 0xfb50—0xfdff | CombHalfMark | 0xfe20—0xfe2f |
FormularioCJKComp | 0xfe30—0xfe4f | SmallFormVar | 0xfe50—0xfe6f |
ÁrabePresB | 0xfe70—0xfefe | HalfFullForm | 0xff00—0xffef |
Especiales | 0xfff0—0xfffd |