Freigeben über


SCRIPT_PROPERTIES-Struktur (usp10.h)

Enthält Informationen zur speziellen Verarbeitung für jedes Skript.

Syntax

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;

Member

langid

Sprachbezeichner für die Sprache, die dem Skript zugeordnet ist. Wenn ein Skript für viele Sprachen verwendet wird, stellt dieses Element eine Standardsprache dar. Beispielsweise wird die westliche Schrift durch LANG_ENGLISH dargestellt, obwohl sie auch für Französisch, Deutsch und andere europäische Sprachen verwendet wird.

fNumeric

Wert, der angibt, ob ein Skript nur Ziffern und die anderen Zeichen enthält, die zum Schreiben von Zahlen durch die Regeln des bidirektionalen Unicode-Algorithmus verwendet werden. Beispielsweise werden Währungssymbole, das Tausendertrennzeichen und das Dezimaltrennzeichen als numerisch klassifiziert, wenn sie an oder zwischen Ziffern angrenzen. Mögliche Werte für dieses Element werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Das Skript enthält nur Ziffern und die anderen Zeichen, die von den Regeln des bidirektionalen Unicode-Algorithmus zum Schreiben von Zahlen verwendet werden.
FALSE
Das Skript enthält nicht nur Ziffern und die anderen Zeichen, die von den Regeln des bidirektionalen Unicode-Algorithmus zum Schreiben von Zahlen verwendet werden.

fComplex

Wert, der ein komplexes Skript für eine Sprache angibt, die eine spezielle Strukturierung oder ein spezielles Layout erfordert. Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Das Skript erfordert eine spezielle Strukturierung oder ein spezielles Layout.
FALSE
Das Skript enthält keine kombinierten Zeichen und erfordert keine kontextbezogene Strukturierung oder Neuanordnung.

fNeedsWordBreaking

Wert, der den Typ der Wortumbruchplatzierung für eine Sprache angibt. Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Die Sprache verfügt über eine Wortumbruchplatzierung, die erfordert, dass die Anwendung ScriptBreak aufruft, und die Zeichenpositionen enthält, die durch das fWordStop-Element in SCRIPT_LOGATTR gekennzeichnet sind.
FALSE
Word Platzierung von Unterbrechungen wird durch Suchen nach Zeichen identifiziert, die durch das fWhiteSpace-Element in SCRIPT_LOGATTR gekennzeichnet sind, oder nach Glyphen, die durch den Wert SCRIPT_JUSTIFY_BLANK oder SCRIPT_JUSTIFY_ARABIC_BLANK für den uJustification-Member von SCRIPT_VISATTR gekennzeichnet sind.

fNeedsCaretInfo

Wert, der angibt, ob eine Sprache, z. B. Thai oder Indisch, die Caretplatzierung auf Clustergrenzen einschränkt. Mögliche Werte werden in der folgenden Tabelle definiert. Um gültige Caretpositionen zu bestimmen, überprüft die Anwendung den fCharStop-Wert in den logischen Attributen, die von ScriptBreak abgerufen werden, oder vergleicht benachbarte Werte im pwLogClust-Array , das von ScriptShape abgerufen wurde.

HinweisScriptXtoCP und ScriptCPtoX wenden automatisch Caretplatzierungseinschränkungen an.
 
Wert Bedeutung
TRUE
Die Sprache schränkt die Caretplatzierung auf Clustergrenzen ein.
FALSE
Die Sprache schränkt die Caretplatzierung nicht auf Clustergrenzen ein.

bCharSet

Nominaler Zeichensatz, der dem Skript zugeordnet ist. Bei der Erstellung einer Schriftart, die für die Anzeige des Skripts geeignet ist, kann dieser Zeichensatz als Wert des lfCharSet-Elements von LOGFONT verwendet werden.

Bei einem neuen Skript, für das kein Zeichensatz definiert ist, sollte die Anwendung in der Regel bCharSet auf DEFAULT_CHARSET festlegen. Weitere Informationen finden Sie in der Beschreibung von Member fAmbiguousCharSet.

fControl

Wert, der angibt, ob im Skript nur Steuerzeichen verwendet werden. Mögliche Werte werden in der folgenden Tabelle definiert. Beachten Sie, dass jedes Steuerelementzeichen nicht in einer SCRIPT_CONTROL-Struktur endet.

Wert Bedeutung
TRUE
Legen Sie im Skript nur Steuerzeichen fest.
FALSE
Legen Sie im Skript nicht nur Steuerzeichen fest.

fPrivateUseArea

Wert, der die Verwendung eines privaten Verwendungsbereichs angibt, ein spezieller Satz von Zeichen, der privat für den Unicode-Bereich U+E000 bis U+F8FF definiert ist. Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Verwenden Sie einen privaten Nutzungsbereich.
FALSE
Verwenden Sie keinen privaten Nutzungsbereich.

fNeedsCharacterJustify

Wert, der die Verarbeitung der Begründung für das Skript angibt, indem alle Leerzeichen zwischen Buchstaben erhöht werden, nicht nur die Leerzeichen zwischen Wörtern. Mögliche Werte werden in der folgenden Tabelle definiert. Beim Ausführen einer zeichenübergreifenden Begründung fügt Uniscribe zusätzlichen Abstand nur nach Glyphen ein, die mit dem SCRIPT_JUSTIFY_CHARACTER-Wert für den uJustification-Member von SCRIPT_VISATTR gekennzeichnet sind.

Wert Bedeutung
TRUE
Verwenden Sie die Zeichenausrichtung.
FALSE
Verwenden Sie keine Zeichenausrichtung.

fInvalidGlyph

Wert, der angibt, ob ScriptShape eine ungültige Glyphe für ein Skript generiert, um ungültige Sequenzen darzustellen. Mögliche Werte werden in der folgenden Tabelle definiert. Die Anwendung kann den Glyphenindex der ungültigen Glyphe für eine bestimmte Schriftart abrufen, indem sie ScriptGetFontProperties aufruft.

Wert Bedeutung
TRUE
Generieren Sie eine ungültige Glyphe, um ungültige Sequenzen darzustellen.
FALSE
Generieren Sie keine ungültige Glyphe, um ungültige Sequenzen darzustellen.

fInvalidLogAttr

Wert, der angibt, ob ScriptBreak ungültige Kombinationen für ein Skript markiert, indem fInvalid im Puffer für logische Attribute festgelegt wird. Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Markieren Sie ungültige Kombinationen für das Skript.
FALSE
Markieren Sie keine ungültigen Kombinationen für das Skript.

fCDM

Wert, der angibt, ob ein Skript ein Element enthält, das von ScriptItemize analysiert wurde, einschließlich Kombination diakritischer Markierungen (U+0300 bis U+36F). Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Das Skript enthält ein Element, das die Kombination diakritischer Markierungen enthält.
FALSE
Das Skript enthält kein Element, das die Kombination diakritischer Markierungen enthält.

fAmbiguousCharSet

Wert, der angibt, ob ein Skript Zeichen enthält, die von mehr als einem Zeichensatz unterstützt werden. Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Das Skript enthält Zeichen, die von mehr als einem Zeichensatz unterstützt werden. In diesem Fall sollte das bCharSet-Element dieser Struktur ignoriert werden, und das lfCharSet-Element von LOGFONT sollte auf DEFAULT_CHARSET festgelegt werden. Weitere Informationen finden Sie im Abschnitt Hinweise.
FALSE
Das Skript enthält keine Zeichen, die von mehr als einem Zeichensatz unterstützt werden.

fClusterSizeVaries

Wert, der angibt, ob ein Skript, z. B. Arabisch, eine kontextbezogene Strukturierung verwenden kann, die dazu führt, dass eine Zeichenfolge beim Entfernen von Zeichen vergrößert wird. Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Verwenden Sie eine variable Clustergröße für die kontextbezogene Strukturierung.
FALSE
Verwenden Sie keine variable Clustergröße für die kontextbezogene Strukturierung.

fRejectInvalid

Wert, der angibt, ob ein Skript, z. B. Thai, ungültige Sequenzen ablehnen soll, die üblicherweise dazu führen, dass ein Editor-Programm, z. B. Editor, piept und Tastatureingaben ignoriert. Mögliche Werte werden in der folgenden Tabelle definiert.

Wert Bedeutung
TRUE
Lehnen Sie ungültige Sequenzen ab.
FALSE
Weisen Sie keine ungültigen Sequenzen zurück.

Hinweise

Diese Struktur wird von der ScriptGetProperties-Funktion gefüllt.

Viele Uniscribe-Skripts entsprechen nicht direkt 8-Bit-Zeichensätzen. Wenn einige Der Zeichen in einem Skript von mehr als einem Zeichensatz unterstützt werden, wird das fAmbiguousCharSet-Element festgelegt. Die Anwendung sollte weitere Verarbeitungsschritte durchführen, um den Zeichensatz zu bestimmen, der beim Anfordern einer für die Ausführung geeigneten Schriftart verwendet werden soll. Es kann z. B. feststellen, dass die Ausführung aus mehreren Sprachen besteht, und die Ausführung aufteilen, sodass für jede Sprache eine andere Schriftart verwendet wird.

Die Anwendung verwendet den folgenden Code während der Initialisierung, um einen Zeiger auf das SCRIPT_PROPERTIES-Array abzurufen.

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

hr = ScriptGetProperties(&ppScriptProperties, &iMaxScript);

Anschließend kann die Anwendung die Eigenschaften des Skripts eines Elements überprüfen, wie im nächsten Beispiel gezeigt.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile usp10.h

Weitere Informationen

Sprachen-IDs

SCRIPT_CONTROL

SCRIPT_LOGATTR

SCRIPT_VISATTR

ScriptBreak

ScriptCPtoX

ScriptGetFontProperties

ScriptGetProperties

ScriptItemize

ScriptShape

ScriptXtoCP

Uniscribe

Uniscribe-Strukturen