estrutura SCRIPT_PROPERTIES (usp10.h)

Contém informações sobre processamento especial para cada script.

Sintaxe

typedef struct {
  DWORD langid : 16;
  DWORD fNumeric : 1;
  DWORD fComplex : 1;
  DWORD fNeedsWordBreaking : 1;
  DWORD fNeedsCaretInfo : 1;
  DWORD bCharSet : 8;
  DWORD fControl : 1;
  DWORD fPrivateUseArea : 1;
  DWORD fNeedsCharacterJustify : 1;
  DWORD fInvalidGlyph : 1;
  DWORD fInvalidLogAttr : 1;
  DWORD fCDM : 1;
  DWORD fAmbiguousCharSet : 1;
  DWORD fClusterSizeVaries : 1;
  DWORD fRejectInvalid : 1;
} SCRIPT_PROPERTIES;

Membros

langid

Identificador de linguagem para o idioma associado ao script. Quando um script é usado para muitos idiomas, esse membro representa um idioma padrão. Por exemplo, o script ocidental é representado por LANG_ENGLISH embora também seja usado para idiomas franceses, alemães e outros idiomas europeus.

fNumeric

Valor que indica se um script contém apenas dígitos e os outros caracteres usados na gravação de números pelas regras do algoritmo bidirecional Unicode. Por exemplo, símbolos de moeda, o separador de milhares e o ponto decimal são classificados como numéricos quando adjacentes a ou entre dígitos. Os valores possíveis para esse membro são definidos na tabela a seguir.

Valor Significado
TRUE
O script contém apenas dígitos e os outros caracteres usados na gravação de números pelas regras do algoritmo bidirecional Unicode.
FALSE
O script não contém apenas dígitos e os outros caracteres usados na gravação de números pelas regras do algoritmo bidirecional Unicode.

fComplex

Valor que indica um script complexo para um idioma que requer modelagem ou layout especial. Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
O script requer modelagem ou layout especial.
FALSE
O script não contém caracteres de combinação e não requer nenhuma formatação ou reordenação contextual.

fNeedsWordBreaking

Valor que indica o tipo de posicionamento de quebra de palavra para um idioma. Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
O idioma tem o posicionamento de quebra de palavra que exige que o aplicativo chame ScriptBreak e que inclui posições de caractere marcadas pelo membro fWordStop em SCRIPT_LOGATTR.
FALSE
Word posicionamento de interrupção é identificado pela verificação de caracteres marcados pelo membro fWhiteSpace no SCRIPT_LOGATTR ou por glifos marcados pelo valor SCRIPT_JUSTIFY_BLANK ou SCRIPT_JUSTIFY_ARABIC_BLANK para o membro uJustification do SCRIPT_VISATTR.

fNeedsCaretInfo

Valor que indica se um idioma, por exemplo, tailandês ou indiano, restringe o posicionamento de cursor aos limites do cluster. Os valores possíveis são definidos na tabela a seguir. Para determinar posições de cursor válidas, o aplicativo inspeciona o valor fCharStop nos atributos lógicos recuperados pelo ScriptBreak ou compara valores adjacentes na matriz pwLogClust recuperada por ScriptShape.

ObservaçãoScriptXtoCP e ScriptCPtoX aplicam automaticamente restrições de posicionamento de cursor.
 
Valor Significado
TRUE
O idioma restringe o posicionamento de cursor aos limites do cluster.
FALSE
O idioma não restringe o posicionamento de cursor aos limites do cluster.

bCharSet

Conjunto de caracteres nominal associado ao script. Durante a criação de uma fonte adequada para exibir o script, esse conjunto de caracteres pode ser usado como o valor do membro lfCharSet do LOGFONT.

Para um novo script sem conjunto de caracteres definido, o aplicativo normalmente deve definir bCharSet como DEFAULT_CHARSET. Consulte a descrição do membro fAmbiguousCharSet.

fControl

Valor que indica se apenas caracteres de controle são usados no script. Os valores possíveis são definidos na tabela a seguir. Observe que cada caractere de controle não acaba em uma estrutura SCRIPT_CONTROL .

Valor Significado
TRUE
Defina apenas caracteres de controle no script.
FALSE
Não defina apenas caracteres de controle no script.

fPrivateUseArea

Valor que indica o uso de uma área de uso privado, um conjunto especial de caracteres que é definido de forma privada para o intervalo Unicode U+E000 a U+F8FF. Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
Use uma área de uso privado.
FALSE
Não use uma área de uso privado.

fNeedsCharacterJustify

Valor que indica o tratamento da justificativa para o script aumentando todos os espaços entre letras, não apenas os espaços entre palavras. Os valores possíveis são definidos na tabela a seguir. Ao executar a justificativa entre caracteres, Uniscribe insere espaço extra somente após glifos marcados com o valor SCRIPT_JUSTIFY_CHARACTER para o membro uJustification de SCRIPT_VISATTR.

Valor Significado
TRUE
Use a justificativa de caractere.
FALSE
Não use a justificativa de caractere.

fInvalidGlyph

Valor que indica se ScriptShape gera um glifo inválido para um script representar sequências inválidas. Os valores possíveis são definidos na tabela a seguir. O aplicativo pode obter o índice de glifo do glifo inválido para uma fonte específica chamando ScriptGetFontProperties.

Valor Significado
TRUE
Gere um glifo inválido para representar sequências inválidas.
FALSE
Não gere um glifo inválido para representar sequências inválidas.

fInvalidLogAttr

Valor que indica se ScriptBreak marca combinações inválidas para um script definindo fInvalid no buffer de atributos lógicos. Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
Marque combinações inválidas para o script.
FALSE
Não marque combinações inválidas para o script.

fCDM

Valor que indica se um script contém um item que foi analisado por ScriptItemize como incluindo Combinando marcas diacríticas (U+0300 a U+36F). Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
O script contém um item que inclui a combinação de marcas diacríticas.
FALSE
O script não contém um item que inclua a combinação de marcas diacríticas.

fAmbiguousCharSet

Valor que indica se um script contém caracteres compatíveis com mais de um conjunto de caracteres. Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
O script contém caracteres compatíveis com mais de um conjunto de caracteres. Nesse caso, o membro bCharSet dessa estrutura deve ser ignorado e o membro lfCharSet de LOGFONT deve ser definido como DEFAULT_CHARSET. Consulte a seção Comentários para obter mais informações.
FALSE
O script não contém caracteres compatíveis com mais de um conjunto de caracteres.

fClusterSizeVaries

Valor que indica se um script, como árabe, pode usar a formatação contextual que faz com que uma cadeia de caracteres aumente de tamanho durante a remoção de caracteres. Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
Use um tamanho de cluster variável para formatação contextual.
FALSE
Não use um tamanho de cluster variável para formatação contextual.

fRejectInvalid

Valor que indica se um script, por exemplo, tailandês, deve rejeitar sequências inválidas que, convencionalmente, fazem com que um programa editor, como o Bloco de Notas, bipe e ignore pressionamentos de tecla. Os valores possíveis são definidos na tabela a seguir.

Valor Significado
TRUE
Rejeitar sequências inválidas.
FALSE
Não rejeite sequências inválidas.

Comentários

Essa estrutura é preenchida pela função ScriptGetProperties .

Muitos scripts Uniscribe não correspondem diretamente aos conjuntos de caracteres de 8 bits. Quando alguns dos caracteres em um script têm suporte em mais de um conjunto de caracteres, o membro fAmbiguousCharSet é definido. O aplicativo deve fazer processamento adicional para determinar o conjunto de caracteres a ser usado ao solicitar uma fonte adequada para a execução. Por exemplo, ele pode determinar que a execução consiste em vários idiomas e dividir a execução para que uma fonte diferente seja usada para cada idioma.

O aplicativo usa o código a seguir durante a inicialização para obter um ponteiro para a matriz SCRIPT_PROPERTIES .

const SCRIPT_PROPERTIES **ppScriptProperties; // Array of pointers  
                                              // to properties 
int iMaxScript;
HRESULT hr;

hr = ScriptGetProperties(&ppScriptProperties, &iMaxScript);

Em seguida, o aplicativo pode inspecionar as propriedades do script de um item, conforme mostrado no próximo exemplo.

hr = ScriptItemize(pwcInChars, cInChars, cMaxItems, psControl, psState, pItems, pcItems);
//...
if (ppScriptProperties[pItems[iItem].a.eScript]->fNeedsCaretInfo) 
    {
        // Use ScriptBreak to restrict the caret from entering clusters (for example). 
    }

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho usp10.h

Confira também

Identificadores de idioma

SCRIPT_CONTROL

SCRIPT_LOGATTR

SCRIPT_VISATTR

Scriptbreak

ScriptCPtoX

ScriptGetFontProperties

ScriptGetProperties

Scriptitemize

Scriptshape

ScriptXtoCP

Uniscribe

Estruturas Uniscribe