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.
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 |
---|---|
|
O script requer modelagem ou layout especial. |
|
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 |
---|---|
|
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. |
|
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.
Valor | Significado |
---|---|
|
O idioma restringe o posicionamento de cursor aos limites do cluster. |
|
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 |
---|---|
|
Defina apenas caracteres de controle no script. |
|
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 |
---|---|
|
Use uma área de uso privado. |
|
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 |
---|---|
|
Use a justificativa de caractere. |
|
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 |
---|---|
|
Gere um glifo inválido para representar sequências inválidas. |
|
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 |
---|---|
|
Marque combinações inválidas para o script. |
|
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 |
---|---|
|
O script contém um item que inclui a combinação de marcas diacríticas. |
|
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 |
---|---|
|
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. |
|
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 |
---|---|
|
Use um tamanho de cluster variável para formatação contextual. |
|
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 |
---|---|
|
Rejeitar sequências inválidas. |
|
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 |