struttura SCRIPT_PROPERTIES (usp10.h)

Contiene informazioni sull'elaborazione speciale per ogni script.

Sintassi

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;

Members

langid

Identificatore di lingua per la lingua associata allo script. Quando uno script viene usato per molte lingue, questo membro rappresenta una lingua predefinita. Ad esempio, lo script occidentale è rappresentato da LANG_ENGLISH anche se viene usato anche per francese, tedesco e altre lingue europee.

fNumeric

Valore che indica se uno script contiene solo cifre e gli altri caratteri utilizzati per scrivere numeri dalle regole dell'algoritmo bidirezionale Unicode. Ad esempio, i simboli di valuta, il separatore delle migliaia e il separatore decimale vengono classificati come numerici quando sono adiacenti a o tra cifre. I valori possibili per questo membro sono definiti nella tabella seguente.

Valore Significato
TRUE
Lo script contiene solo cifre e gli altri caratteri usati per scrivere numeri dalle regole dell'algoritmo bidirezionale Unicode.
FALSE
Lo script non contiene solo cifre e gli altri caratteri usati per scrivere numeri dalle regole dell'algoritmo bidirezionale Unicode.

fComplex

Valore che indica uno script complesso per un linguaggio che richiede una forma o un layout speciali. I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Lo script richiede una forma o un layout speciali.
FALSE
Lo script non contiene caratteri di combinazione e non richiede alcuna modellazione contestuale o riordinamento.

fNeedsWordBreaking

Valore che indica il tipo di posizionamento dell'interruzione di parola per una lingua. I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Il linguaggio ha una posizione di interruzione di parola che richiede all'applicazione di chiamare ScriptBreak e che include le posizioni dei caratteri contrassegnate dal membro fWordStop in SCRIPT_LOGATTR.
FALSE
Word posizionamento dell'interruzione viene identificato analizzando i caratteri contrassegnati dal membro fWhiteSpace in SCRIPT_LOGATTR o per i glifi contrassegnati dal valore SCRIPT_JUSTIFY_BLANK o SCRIPT_JUSTIFY_ARABIC_BLANK per il membro uJustification di SCRIPT_VISATTR.

fNeedsCaretInfo

Valore che indica se una lingua, ad esempio Thai o Indiano, limita il posizionamento del cursore ai limiti del cluster. I valori possibili sono definiti nella tabella seguente. Per determinare le posizioni valide del cursore, l'applicazione controlla il valore fCharStop negli attributi logici recuperati da ScriptBreak o confronta i valori adiacenti nella matrice pwLogClust recuperata da ScriptShape.

NotaScriptXtoCP e ScriptCPtoX applicano automaticamente restrizioni di posizionamento del cursore.
 
Valore Significato
TRUE
Il linguaggio limita il posizionamento del cursore ai limiti del cluster.
FALSE
Il linguaggio non limita il posizionamento del cursore ai limiti del cluster.

bCharSet

Set di caratteri nominale associato allo script. Durante la creazione di un tipo di carattere adatto per la visualizzazione dello script, questo set di caratteri può essere usato come valore del membro lfCharSet di LOGFONT.

Per un nuovo script senza set di caratteri definito, l'applicazione deve in genere impostare bCharSet su DEFAULT_CHARSET. Vedere la descrizione del membro fAmbiguousCharSet.

fControl

Valore che indica se nello script vengono utilizzati solo i caratteri di controllo. I valori possibili sono definiti nella tabella seguente. Si noti che ogni carattere di controllo non termina in una struttura SCRIPT_CONTROL .

Valore Significato
TRUE
Impostare solo i caratteri di controllo nello script.
FALSE
Non impostare solo i caratteri di controllo nello script.

fPrivateUseArea

Valore che indica l'uso di un'area di utilizzo privato, un set speciale di caratteri definito privatamente per l'intervallo Unicode da U+E000 a U+F8FF. I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Usare un'area di utilizzo privata.
FALSE
Non usare un'area di utilizzo privato.

fNeedsCharacterJustify

Valore che indica la gestione della giustificazione per lo script aumentando tutti gli spazi tra lettere, non solo gli spazi tra le parole. I valori possibili sono definiti nella tabella seguente. Quando si esegue una giustificazione tra caratteri, Uniscribe inserisce spazio aggiuntivo solo dopo i glifi contrassegnati con il valore SCRIPT_JUSTIFY_CHARACTER per il membro uJustification di SCRIPT_VISATTR.

Valore Significato
TRUE
Usare la giustificazione dei caratteri.
FALSE
Non usare la giustificazione dei caratteri.

fInvalidGlyph

Valore che indica se ScriptShape genera un glifo non valido per uno script per rappresentare sequenze non valide. I valori possibili sono definiti nella tabella seguente. L'applicazione può ottenere l'indice del glifo non valido per un tipo di carattere specifico chiamando ScriptGetFontProperties.

Valore Significato
TRUE
Generare un glifo non valido per rappresentare sequenze non valide.
FALSE
Non generare un glifo non valido per rappresentare sequenze non valide.

fInvalidLogAttr

Valore che indica se ScriptBreak contrassegna combinazioni non valide per uno script impostando fInvalid nel buffer degli attributi logici. I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Contrassegnare le combinazioni non valide per lo script.
FALSE
Non contrassegnare combinazioni non valide per lo script.

fCDM

Valore che indica se uno script contiene un elemento analizzato da ScriptItemize , inclusa la combinazione di segni diacritici (da U+0300 a U+36F). I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Lo script contiene un elemento che include la combinazione di segni diacritici.
FALSE
Lo script non contiene un elemento che include la combinazione di segni diacritici.

fAmbiguousCharSet

Valore che indica se uno script contiene caratteri supportati da più set di caratteri. I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Lo script contiene caratteri supportati da più di un set di caratteri. In questo caso, il membro bCharSet di questa struttura deve essere ignorato e il membro lfCharSet di LOGFONT deve essere impostato su DEFAULT_CHARSET. Per altre informazioni, vedere la sezione Osservazioni.
FALSE
Lo script non contiene caratteri supportati da più set di caratteri.

fClusterSizeVaries

Valore che indica se uno script, ad esempio l'arabo, può usare la forma contestuale che causa un aumento della dimensione di una stringa durante la rimozione dei caratteri. I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Usare una dimensione del cluster variabile per la forma contestuale.
FALSE
Non usare una dimensione del cluster variabile per la modellazione contestuale.

fRejectInvalid

Valore che indica se uno script, ad esempio, Thai, deve rifiutare sequenze non valide che causano in modo convenzionale un programma di editor, ad esempio Blocco note, per generare e ignorare le sequenze di tasti. I valori possibili sono definiti nella tabella seguente.

Valore Significato
TRUE
Rifiutare sequenze non valide.
FALSE
Non rifiutare sequenze non valide.

Commenti

Questa struttura viene riempita dalla funzione ScriptGetProperties .

Molti script Uniscribe non corrispondono direttamente a set di caratteri a 8 bit. Quando alcuni dei caratteri in uno script sono supportati da più di un set di caratteri, il membro fAmbiguousCharSet è impostato. L'applicazione deve eseguire ulteriori elaborazioni per determinare il set di caratteri da usare quando si richiede un tipo di carattere adatto per l'esecuzione. Ad esempio, potrebbe determinare che l'esecuzione è costituita da più lingue e suddividere l'esecuzione in modo che venga usato un carattere diverso per ogni lingua.

L'applicazione usa il codice seguente durante l'inizializzazione per ottenere un puntatore alla matrice di SCRIPT_PROPERTIES .

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

hr = ScriptGetProperties(&ppScriptProperties, &iMaxScript);

L'applicazione può quindi esaminare le proprietà dello script di un elemento, come illustrato nell'esempio successivo.

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). 
    }

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione usp10.h

Vedi anche

Identificatori di lingua

SCRIPT_CONTROL

SCRIPT_LOGATTR

SCRIPT_VISATTR

ScriptBreak

ScriptCPtoX

ScriptGetFontProperties

ScriptGetProperties

ScriptItemize

ScriptShape

ScriptXtoCP

Uniscribe

Strutture uniscrivibili