Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O TOM (Modelo de Objeto de Texto) define um conjunto de interfaces de manipulação de texto com suporte em diferentes graus por várias soluções de texto da Microsoft, incluindo o controle de edição avançada. Este tópico fornece uma visão geral de alto nível do TOM. Ele discute os tópicos a seguir.
- Objetos TOM Versão 2
- Convenções de interface TOM
- O tipo tomBool
- Construção e Desconstrução de Matemática
- TOM RTF
- Localizando texto rico
- Acessibilidade do TOM
- Conjuntos de correspondência de caracteres
TOM Versão 2 Objetos
TOM versão 2 (TOM 2) estende o modelo de objeto de texto original; as novas interfaces são derivadas das antigas. A API TOM atualizada inclui suporte para novas propriedades de formato de caractere e parágrafo, um modelo de tabela, várias seleções e suporte a objetos embutidos para matemática e ruby.
O objeto TOM 2 de nível superior é definido pela interface ITextDocument2 , que tem métodos para criar e recuperar objetos inferiores na hierarquia de objetos. Para processamento simples de texto sem formatação, você pode obter um objeto ITextRange2 de um objeto ITextDocument2 e fazer quase tudo com isso. Se você precisar adicionar formatação de rich-text, poderá obter objetos ITextFont2 e ITextPara2 de um objeto ITextRange2 . O ITextFont2 fornece o equivalente de programação da caixa de diálogo formato-fonte do Microsoft Word e o ITextPara2 fornece o equivalente à caixa de diálogo formato-parágrafo do Word.
Além desses três objetos de nível inferior, TOM 2 tem um objeto de seleção (ITextSelection2), que é um objeto ITextRange2 com realce de seleção e alguns métodos orientados à interface do usuário.
O intervalo e os objetos de seleção incluem métodos orientados à tela que permitem que os programas examinem o texto na tela ou o texto que pode ser rolado na tela. Esses recursos ajudam a tornar o texto acessível para pessoas com deficiência visual, por exemplo.
Cada interface que tem o sufixo 2 herda da interface correspondente sem o sufixo 2. Por exemplo, ITextDocument2 herda de ITextDocument.
Os objetos TOM 2 têm a hierarquia a seguir.
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
Um objeto ITextDocument2 descreve um ou mais intervalos contíguos de texto chamados histórias. As histórias representam várias partes de um documento, como o texto principal do documento, cabeçalhos e rodapés, notas de rodapé, anotações e blocos de anotações com rich text. Uma história de rascunho é usada ao traduzir entre expressões matemáticas formatadas linearmente e uma forma desenvolvida. Uma história do bloco de rascunho também é usada ao salvar o conteúdo de um intervalo, que é a fonte de cópia atual, quando o conteúdo está prestes a ser alterado.
Um objeto ITextRange2 é definido por seus deslocamentos de posição de caractere inicial e final e um objeto de história. Ele não existe de forma independente de seu objeto de história pai, embora o seu texto possa ser copiado para a área de transferência ou para outros destinos. Um objeto de intervalo de texto é diferente da planilha e de outros objetos de intervalo, que são definidos por outros tipos de deslocamentos; por exemplo, linha/coluna ou posição gráfica (x, y). Um objeto de intervalo de texto pode se modificar de várias maneiras, pode retornar uma duplicata de si mesmo e pode ser comandado para copiar suas posições de caractere inicial e final e seu ponteiro de história para a seleção atual.
Um objeto de história explícito não é necessário, pois um objeto ITextRange sempre pode ser criado para representar qualquer história fornecida. Em particular, o objeto ITextDocument pode criar um objeto ITextStoryRanges para enumerar as histórias no documento em termos de intervalos com valores de posição de caractere inicial e final que descrevem histórias completas (como, 0 e tomForward).
Com um objeto ITextStoryRanges2 , um objeto de história explícito não é necessário, pois cada história é descrita por um objeto ITextRange2 . Em particular, o objeto ITextDocument2 pode criar um objeto ITextStoryRanges2 para enumerar as histórias no documento em termos de intervalos com valores de posição de caractere inicial e final que descrevem histórias completas (como, 0 e tomForward).
A interface ITextRow junto com os métodos ITextRange::Move e ITextRange::Expand fornecem a capacidade de inserir, consultar e alterar tabelas.
Convenções de interface TOM
Todos os métodos TOM retornam valores HRESULT . Em geral, os métodos TOM retornam os seguintes valores padrão.
- E_OUTOFMEMORY
- E_INVALIDARG
- E_NOTIMPL
- E_FILENOTFOUND
- E_ACCESSDENIED (Acesso negado)
- E_FAIL
- CO_E_RELEASED
- NOERROR (igual a S_OK)
- S_FALSE
Lembre-se de que, se a instância de edição associada a um objeto TOM como ITextRange for excluída, o objeto TOM se tornará inútil e todos os seus métodos retornarão CO_E_RELEASED.
Além dos valores retornados HRESULT , muitos métodos incluem parâmetros externos, que são ponteiros usados para retornar valores. Para todas as interfaces, você deve verificar todos os parâmetros de ponteiro para garantir que eles não sejam zero antes de usá-los. Se você passar um valor nulo para um método que requer um ponteiro válido, o método retornará E_INVALIDARG. Ponteiros de saída opcionais com valores nulos são ignorados.
Use métodos com prefixos Get e Set para obter e definir propriedades. As variáveis boolianas usam tomFalse (0) para FALSE e tomTrue (-1) para TRUE.
As constantes TOM são definidas no tipo de enumeração tomConstants e começam com o prefixo tom, por exemplo, tomWord.
O tipo tomBool
Muitos métodos TOM usam um tipo especial de variável chamado "tomBool" para atributos de rich-text que têm estados binários. O tipo tomBool é diferente do tipo booliano porque pode levar quatro valores: tomTrue, tomFalse, tomToggle e tomUndefined. Os valores tomTrue e tomFalse indicam true e false. O valor tomToggle é usado para alternar uma propriedade. O valor tomUndefined , mais tradicionalmente chamado NINCH, é um valor especial sem entrada, sem alteração que funciona com longs, floats e COLORREFs. Para cadeias de caracteres, tomUndefined (ou NINCH) é representado pela cadeia de caracteres nula. Para operações de configuração de propriedade, o uso de tomUndefined não altera a propriedade de destino. Para operações de obtenção de propriedade, tomUndefined significa que os caracteres no intervalo têm valores diferentes, o que resulta na caixa de seleção cinza nas caixas de diálogo de propriedade.
Construção e Desconstrução de Matemática
Você pode usar o método ITextRange2::BuildUpMath para converter expressões matemáticas formatadas de forma linear em versões escalonadas. O método ITextRange2::Linearize faz a conversão oposta, chamada de linearização ou redução, para converter versões compostas de expressões matemáticas de volta ao formato linear. A capacidade de simplificação matemática é útil quando você precisa exportar texto sem formatação ou habilitar determinados tipos de edição.
TOM RTF
No TOM, a troca de texto rico pode ser realizada por meio de conjuntos de chamadas explícitas de método ou por transferências de texto rico no Formato Rich Text (RTF). Esta seção fornece tabelas de palavras de controle RTF para propriedades de parágrafo e para propriedades de caractere.
Palavras de controle de parágrafo TOM RTF
Palavra de controle | Significado |
---|---|
\ fi n | Recuo de primeira linha de parágrafo (o padrão é zero). |
\guardar | Mantenha o parágrafo intacto. |
\ keepn | Continue com o próximo parágrafo. |
\ li n | Recuo à esquerda (o padrão é zero). |
\ noline | Sem numeração de linha. |
\ nowidctlpar | Desative o controle de viúvas e órfãs. |
\ pagebb | Quebre a página antes do parágrafo. |
\par | Novo parágrafo. |
\pard | Reinicia para as propriedades padrão do parágrafo. |
\ ql | Alinhado à esquerda (padrão). |
qr | Alinhado à direita. |
\ qj | Justificado. |
\Qc | Centralizado. |
\ ri n | Recuo à direita (o padrão é zero). |
\ s n | Estilo n. |
\ sa n | Espaço após (o padrão é nulo). |
\ sb n | Espaço antes (o padrão é zero). |
\ sl n | Se estiver ausente ou se n=1000, o espaçamento de linha será determinado pelo caractere mais alto da linha (espaçamento de linha única); se n> zero, pelo menos esse tamanho é usado; se n for < zero, exatamente |n| é usado. O espaçamento de linha é múltiplo se \ slmult 1 estiver presente. |
\ slmult m | Segue \ sl. m = zero: espaçamento de linha pelo menos ou exatamente conforme descrito por \ sl n. m = 1: espaçamento de linha = n/240 vezes espaçamento de linha única. |
\ tb n | Posição da guia barra, em twips, da margem esquerda. |
\ tldot | Ponto de líder de tabulação. |
\ tleq | Sinal de igual de líder de tabulação. |
\ tlhyph | Hifens de líder de tabulação. |
\ tlth | Linha grossa do líder de tabulação. |
\ tlul | Sublinhado do líder da guia. |
tqc | Aba centralizada. |
\ tqdec | Tabulação Decimal. |
\ tqr | Tabulação à direita. |
\ tx n | Posição da guia, em twips, da margem esquerda. |
Palavras de Controle de Formato de Caracteres do TOM RTF
Palavra de controle | Significado |
---|---|
\ animação n | Define o tipo de animação como n. |
\ b | A negrito. |
maiúsculas | Todas as capitais. |
\ cf n | Cor do primeiro plano (o padrão é tomAutocolor). |
\ cs n | Estilo de caractere n. |
\ dn n | Posição do subscrito em meios pontos (o padrão é 6). |
\ embo | Gravado. |
\ f n | Número da fonte, n refere-se a uma entrada na tabela de fontes. |
\ fs n | Tamanho da fonte em meio ponto (o padrão é 24). |
\ realce n | Cor da tela de fundo (o padrão é tomAutocolor). |
\ i | Itálico. |
\ impr | Marca. |
\ lang n | Aplica um idioma a um caractere. n é um número correspondente a um idioma. O comando \ plain redefine a configuração de idioma para o idioma especificado por \ deflang n nas propriedades do documento. |
\ nosupersub | Desativa a formatação de sobrescrito ou subscrito. |
\ outl | Destaque. |
planície | Redefine as propriedades de formatação de caractere para um valor padrão definido pelo aplicativo. As propriedades de formatação de caractere associadas (descritas na seção Propriedades de Caractere Associadas na especificação RTF) também são redefinidas. |
\ scaps | Pequenas capitais. |
\shad | A sombra. |
\greve | Tachado. |
\sub | Aplica o subscrito ao texto e reduz o tamanho do ponto de acordo com as informações da fonte. |
\súper | Aplica o sobrescrito ao texto e reduz o tamanho do ponto de acordo com as informações da fonte. |
\Ul | Sublinhado contínuo. \ ul0 desativa todo o sublinhado. |
\ uld | Sublinhado com pontos. |
\ uldb | Sublinhado duplo. |
\ulnone | Interrompe todo o sublinhado. |
\ ulw | Sublinhado do Word. |
\ up n | Posição sobrescrita em meio ponto (o padrão é 6). |
\ v | Texto oculto. |
Localizando texto rico
Você pode usar métodos TOM para localizar texto rico conforme definido por um intervalo de texto. Encontrar texto tão rico exatamente é frequentemente necessário no processamento de texto, embora nunca tenha sido implementado em um processador de texto "o que você vê é o que você obtém" (WYSIWYG). Há claramente um domínio mais amplo de correspondência de texto rico que permite ignorar algumas propriedades de formatação de caracteres (ou incluir a formatação de parágrafos e/ou o conteúdo de objetos), mas tais generalizações estão além do escopo desta seção.
Uma das finalidades dessa funcionalidade é usar uma caixa de diálogo de Localizar em texto rico para definir o texto rico que você deseja localizar em um documento. A caixa de diálogo seria implementada usando um controle de edição avançada e os métodos TOM seriam usados para realizar a pesquisa por meio do documento. Você pode copiar o rich text desejado do documento para a caixa de diálogo Localizar ou inseri-lo e formatá-lo diretamente na caixa de diálogo Localizar .
O exemplo a seguir mostra como usar métodos TOM para localizar texto contendo combinações de formatação exata de caracteres. O algoritmo pesquisa o texto simples no intervalo de correspondência, chamado pr1
. Se o texto plano for encontrado, ele será apontado por um intervalo de teste, que é nomeado pr2
. Em seguida, dois intervalos de ponto de inserção (prip1
e prip2
) são usados para percorrer o intervalo de avaliação comparando sua formatação de caractere com a de pr1
. Se corresponderem exatamente, o intervalo de entrada (fornecido por ppr
) será atualizado para apontar para o texto do intervalo de avaliação e a função retornará a contagem de caracteres no intervalo correspondente. Dois objetos ITextFont, pf1
e pf2
, são usados na comparação de formatação de caracteres. Eles estão conectados aos intervalos de ponto de inserção prip1
e 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;
}
Acessibilidade do TOM
O TOM fornece suporte de acessibilidade por meio das interfaces ITextSelection e ITextRange . Esta seção descreve os métodos que são úteis para acessibilidade, bem como como um programa pode determinar a posição da tela xe y de um objeto.
Como os programas de acessibilidade baseados em interface do usuário normalmente funcionam com a tela e o mouse, uma preocupação comum é encontrar a interface ITextDocument correspondente para o local atual do mouse (em coordenadas de tela). As seções a seguir apresentam duas maneiras de determinar a interface adequada:
- Por meio da tabela de objetos em execução
- Por meio da mensagem EM_GETOLEINTERFACE , que funciona para instâncias de edição avançada em janelas, desde que o cliente esteja no mesmo espaço de processo (nenhum marshaling é necessário)
Para obter mais informações, consulte a especificação de Acessibilidade Ativa da Microsoft. Depois de obter um objeto de uma posição de tela, você pode usar para uma interface ITextDocument e chamar o método RangeFromPoint para obter um objeto de intervalo vazio no cp correspondente à posição da tela.
Interface da tabela de objetos em execução
Uma ROT (tabela de objetos em execução) informa quais instâncias de objeto estão ativas. Ao consultar essa tabela, você pode acelerar o processo de conexão de um cliente a um objeto quando o objeto já estiver em execução. Antes que os programas possam acessar interfaces TOM por meio da tabela de objetos em execução, uma instância TOM com uma janela precisa se registrar no ROT usando um moniker. Você constrói o moniker a partir de uma cadeia de caracteres que contém o valor hexadecimal de seu HWND. O exemplo de código a seguir mostra como fazer isso.
// 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
}
Interface de Mensagens de Janela
A mensagem EM_GETOLEINTERFACE fornece outra maneira de obter uma interface IUnknown para um objeto em uma determinada posição de tela. Conforme descrito na interface da tabela de objetos em execução, você obtém um HWND para a posição da tela e, em seguida, envia essa mensagem para esse HWND. A mensagem EM_GETOLEINTERFACE é específica de rich edit e retorna um ponteiro para a interface IRichEditOle na variável endereçada por lParam.
Dica Se um ponteiro for retornado (certifique-se de definir o objeto para o qual lParam aponta para nulo antes de enviar a mensagem), você pode chamar seu método IUnknown::QueryInterface para obter uma interface ITextDocument. O exemplo de código a seguir ilustra essa abordagem.
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 à acessibilidade
Alguns métodos TOM são particularmente úteis para navegar pela tela, enquanto outros métodos TOM aprimoram o que você pode fazer quando chega a locais de interesse. A tabela a seguir descreve os métodos mais úteis.
Método | Como ele promove a acessibilidade |
---|---|
GetSelection | Esse método obtém a seleção ativa que pode ser usada para uma variedade de finalidades orientadas à exibição, como realçar texto e rolagem. |
IntervaloAPartirDoPonto | Quando usado em uma seleção ativa, esse método garante obter um intervalo associado a uma vista específica. |
Expandir | Amplia um intervalo de texto para que qualquer unidade parcial que ele contenha seja completamente abarcada. Por exemplo, Expand(tomWindow) expande o intervalo para incluir a parte visível da história do intervalo. |
GetDuplicate | Este método, quando utilizado em uma seleção ativa, garante a obtenção de um intervalo associado a uma visualização específica. Consulte a descrição do RangeFromPoint. |
GetPoint | Obtém as coordenadas na tela para a posição do caractere inicial ou final dentro do intervalo de texto. |
ScrollIntoView | Rola um intervalo de texto para exibição. |
SetPoint | Seleciona o texto até um ponto especificado. |
Conjuntos de correspondência de caracteres
O parâmetro variant dos vários métodos Move* no ITextRange, como MoveWhile e MoveUntil, pode aceitar uma cadeia de caracteres explícita ou um índice de 32 bits de conjunto de correspondência de caracteres. Os índices são definidos por intervalos Unicode ou conjuntos de caracteres GetStringTypeEx . O intervalo Unicode começando em n e de comprimento l (< 32768) é fornecido pelo índice n + (l << 16) + 0x80000000. Por exemplo, as letras gregas básicas são definidas por CR_Greek = 0x805f0370 e caracteres ASCII imprimíveis são definidos por CR_ASCIIPrint = 0x805e0020. Além disso, os métodos MoveWhile e MoveUntil permitem ignorar rapidamente um intervalo de caracteres em qualquer conjunto de caracteres GetStringTypeEx ou em um intervalo de caracteres que não está em nenhum desses conjuntos de caracteres.
Os conjuntos GetStringTypeEx são especificados pelos valores de Ctype1, Ctype2 e Ctype3 e são definidos da seguinte maneira.
Cset | Significado |
---|---|
Ctype1 | Combinação de tipos de CT_CTYPE1. |
Ctype2 + tomCType2 | Qualquer tipo de CT_CTYPE2. |
Ctype3 + tomCType3 | Combinação de tipos de CT_CTYPE3. |
Especificamente, ctype1 pode ser qualquer combinação do seguinte.
Nome do Ctype1 | Valor | Significado |
---|---|---|
C1_UPPER | 0x0001 | Maiúscula. |
C1_LOWER | 0x0002 | Minúsculo. |
C1_DIGIT | 0x0004 | Dígitos decimais. |
C1_SPACE | 0x0008 | Caracteres de espaço. |
C1_PUNCT | 0x0010 | Pontuação. |
C1_CNTRL | 0x0020 | Controlar caracteres. |
C1_BLANK | 0x0040 | Caracteres em branco. |
C1_XDIGIT | 0x0080 | Dígitos hexadecimais. |
C1_ALPHA | 0x0100 | Qualquer caractere linguístico (alfabético, silabário ou ideográfico). |
C1_DEFINIDO | 0x0200 | Um caractere definido, mas não um dos outros tipos C1_*. |
Os tipos Ctype2 dão suporte ao layout adequado do texto Unicode. Os atributos de direção são atribuídos para que o algoritmo de layout bidirecional padronizado pelo Unicode produza resultados precisos. Esses tipos são mutuamente exclusivos. Para obter mais informações sobre o uso desses atributos, consulte The Unicode Standard: Worldwide Character Encoding, Volumes 1 e 2, Addison-Wesley Publishing Company: 1991, 1992.
Nome do CType2 | Valor | Significado |
---|---|---|
Forte: | ||
C2_LEFTTORIGHT | 0x1 | Da esquerda para a direita |
C2_DIREITAPARAESQUERDA | 0x2 | Da direita para a esquerda. |
Fraco: | ||
C2_EUROPENUMBER | 0x3 | Número europeu, dígito europeu. |
C2_EUROPESEPARATOR | 0x4 | Separador numérico europeu. |
C2_EUROPETERMINATOR | 0x5 | Terminador numérico europeu. |
C2_ARABICNUMBER | 0x6 | Número árabe. |
C2_COMMONSEPARATOR | 0x7 | Separador numérico comum. |
Neutro: | ||
C2_BLOCKSEPARATOR | 0x8 | Separador de blocos. |
C2_SEGMENTSEPARATOR | 0x9 | Separador de segmento. |
C2_WHITESPACE | 0xA | Espaço em branco. |
C2_OTHERNEUTRAL | 0xB | Outros neutros. |
Não aplicável: | ||
C2_NOTAPPLICABLE | 0x0 | Nenhuma direção implícita. |
Os tipos Ctype3 destinam-se a ser espaços reservados para extensões para os tipos POSIX necessários para o processamento geral de texto ou para as funções de biblioteca C padrão.
Nome do CType3 | Valor | Significado |
---|---|---|
Caractere C3 não espaçador | 0x1 | Sinal de não espaçamento. |
C3_DIACRITIC | 0x2 | Marca de não espaçamento diacrítico. |
C3_VOWELMARK | 0x4 | Marca de não espaçamento vogal. |
C3_SYMBOL | 0x8 | Símbolo. |
C3_KATAKANA | 0x10 | Personagem Katakana. |
C3_HIRAGANA | 0x20 | Caractere hiragana. |
C3_HALFWIDTH | 0x40 | Caractere de meia largura. |
C3_FULLWIDTH | 0x80 | Caractere de largura total. |
C3_IDEOGRAPH | 0x100 | Caractere ideográfico. |
C3_KASHIDA | 0x200 | Caractere kashida árabe. |
C3_ALPHA | 0x8000 | Todos os caracteres linguísticos (alfabéticos, silabário e ideográficos). |
C3_NOTAPPLICABLE | 0x0 | Não aplicável. |
Um Kit de Desenvolvimento de Edição (EDK) pode incluir definições de índice pVar para os intervalos a seguir descritos no Padrão Unicode.
Conjunto de caracteres | Intervalo Unicode | Conjunto de caracteres | Intervalo Unicode |
---|---|---|---|
ASCII | 0x0 – 0x7f | ANSI (Instituto Nacional Americano de Padrões) | 0x0 — 0xff |
ASCIIPrint | 0x20 — 0x7e | Latin1 | 0x20 – 0xff |
Latin1Supp | 0xa0 – 0xff | LatinXA | 0x100 — 0x17f |
LatinXB | 0x180 — 0x24f | IPAX | 0x250 – 0x2af |
SpaceMod | 0x2b0 — 0x2ff | Combinando | 0x300 — 0x36f |
Grego | 0x370 — 0x3ff | BasicGreek | 0x370 — 0x3cf |
GreekSymbols | 0x3d0 – 0x3ff | Cirílico | 0x400 – 0x4ff |
Armênia | 0x530 — 0x58f | Hebraico | 0x590 — 0x5ff |
Hebraico Básico | 0x5d0 – 0x5ea | HebraicoXA | 0x590 – 0x5cf |
HebrewXB | 0x5eb — 0x5ff | Árabe | 0x600 – 0x6ff |
BasicArabic | 0x600 — 0x652 | ArabicX | 0x653 – 0x6ff |
Devanágari | 0x900 — 0x97f | Bengali | 0x980 — 0x9ff |
Gurmukhi | 0xa00 — 0xa7f | Guzerate | 0xa80–0xaff |
Oriá | 0xb00 — 0xb7f | Tâmil | 0xb80 — 0xbff |
Teluga | 0xc00 — 0xc7f | Kannada | 0xc80 — 0xcff |
Malaiala | 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 | Sobrescrito | 0x2070 – 0x207f |
Subscrito | 0x2080 — 0x208f | SuperSubscript | 0x2070 — 0x209f |
Moeda | 0x20a0 – 0x20cf | CombMarkSym | 0x20d0 — 0x20ff |
LetterLike | 0x2100 — 0x214f | NumberForms | 0x2150 — 0x218f |
Setas | 0x2190 — 0x21ff | MathOps | 0x2200 — 0x22ff |
MiscTech | 0x2300 — 0x23ff | CtrlPictures | 0x2400 — 0x243f |
OptCharRecog | 0x2440 — 0x245f | EnclAlphaNum | 0x2460 – x24ff |
Desenho de Caixas | 0x2500 — 0x257f | Elemento de Bloco | 0x2580 — 0x259f |
GeometShapes | 0x25a0 — 0x25ff | Símbolos Diversos | 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 | Hangul | 0x3400 – 0xabff |
Hangul, o alfabeto coreano | 0xac00 — 0xd7ff | UTF16Lead | 0xd800 — 0xdbff |
UTF16Trail | 0xdc00 – 0xdfff | UsoPrivado | 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 |
Especiais | 0xfff0 — 0xfffd |