estructura SCRIPT_PROPERTIES (usp10.h)

Contiene información sobre el procesamiento especial para cada script.

Sintaxis

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;

Miembros

langid

Identificador de idioma del idioma asociado al script. Cuando se usa un script para muchos lenguajes, este miembro representa un idioma predeterminado. Por ejemplo, el script occidental se representa mediante LANG_ENGLISH aunque también se usa para francés, alemán y otros idiomas europeos.

fNumeric

Valor que indica si un script contiene solo dígitos y los demás caracteres usados en la escritura de números por las reglas del algoritmo bidireccional Unicode. Por ejemplo, los símbolos de moneda, el separador de miles y el separador decimal se clasifican como numéricos cuando son adyacentes o entre dígitos. Los valores posibles para este miembro se definen en la tabla siguiente.

Valor Significado
TRUE
El script solo contiene dígitos y los demás caracteres usados en números por las reglas del algoritmo bidireccional Unicode.
FALSE
El script no contiene solo dígitos y los demás caracteres usados en la escritura de números por las reglas del algoritmo bidireccional Unicode.

fComplex

Valor que indica un script complejo para un lenguaje que requiere una forma o un diseño especiales. Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
El script requiere un diseño o una forma especiales.
FALSE
El script no contiene caracteres combinados y no requiere ninguna forma contextual ni reordenación.

fNeedsWordBreaking

Valor que indica el tipo de ubicación de salto de palabra para un idioma. Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
El idioma tiene ubicación de salto de palabras que requiere que la aplicación llame a ScriptBreak y que incluya posiciones de caracteres marcadas por el miembro fWordStop en SCRIPT_LOGATTR.
FALSE
Word colocación de salto se identifica mediante el examen de caracteres marcados por el miembro fWhiteSpace en SCRIPT_LOGATTR, o para glifos marcados por el valor SCRIPT_JUSTIFY_BLANK o SCRIPT_JUSTIFY_ARABIC_BLANK para el miembro uJustification de SCRIPT_VISATTR.

fNeedsCaretInfo

Valor que indica si un idioma, por ejemplo, tailandés o indio, restringe la colocación de intercalación a los límites del clúster. Los valores posibles se definen en la tabla siguiente. Para determinar las posiciones de intercalación válidas, la aplicación inspecciona el valor fCharStop en los atributos lógicos recuperados por ScriptBreak o compara los valores adyacentes de la matriz pwLogClust recuperada por ScriptShape.

NotaScriptXtoCP y ScriptCPtoX aplican automáticamente restricciones de selección de intercalación.
 
Valor Significado
TRUE
El idioma restringe la colocación de intercalación a los límites del clúster.
FALSE
El idioma no restringe la colocación de intercalación a los límites del clúster.

bCharSet

Juego de caracteres nominal asociado al script. Durante la creación de una fuente adecuada para mostrar el script, este juego de caracteres se puede usar como valor del miembro lfCharSet de LOGFONT.

Para un nuevo script que no tenga ningún juego de caracteres definido, la aplicación normalmente debe establecer bCharSet en DEFAULT_CHARSET. Vea la descripción del miembro fAmbiguousCharSet.

fControl

Valor que indica si solo se usan caracteres de control en el script. Los valores posibles se definen en la tabla siguiente. Tenga en cuenta que todos los caracteres de control no terminan en una estructura de SCRIPT_CONTROL .

Valor Significado
TRUE
Establezca solo caracteres de control en el script.
FALSE
No establezca solo caracteres de control en el script.

fPrivateUseArea

Valor que indica el uso de un área de uso privado, un conjunto especial de caracteres que se define de forma privada para el intervalo Unicode U+E000 a U+F8FF. Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
Use un área de uso privado.
FALSE
No use un área de uso privado.

fNeedsCharacterJustify

Valor que indica el control de la justificación del script aumentando todos los espacios entre letras, no solo los espacios entre palabras. Los valores posibles se definen en la tabla siguiente. Al realizar una justificación entre caracteres, Uniscribe inserta espacio adicional solo después de los glifos marcados con el valor de SCRIPT_JUSTIFY_CHARACTER para el miembro uJustification de SCRIPT_VISATTR.

Valor Significado
TRUE
Use la justificación de caracteres.
FALSE
No use la justificación de caracteres.

fInvalidGlyph

Valor que indica si ScriptShape genera un glifo no válido para que un script represente secuencias no válidas. Los valores posibles se definen en la tabla siguiente. La aplicación puede obtener el índice de glifo del glifo no válido para una fuente determinada llamando a ScriptGetFontProperties.

Valor Significado
TRUE
Genere un glifo no válido para representar secuencias no válidas.
FALSE
No genere un glifo no válido para representar secuencias no válidas.

fInvalidLogAttr

Valor que indica si ScriptBreak marca combinaciones no válidas para un script estableciendo fInvalid en el búfer de atributos lógicos. Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
Marque combinaciones no válidas para el script.
FALSE
No marque combinaciones no válidas para el script.

fCDM

Valor que indica si un script contiene un elemento analizado por ScriptItemize como combinación de marcas diacríticas (U+0300 a U+36F). Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
El script contiene un elemento que incluye la combinación de marcas diacríticas.
FALSE
El script no contiene un elemento que incluye la combinación de marcas diacríticas.

fAmbiguousCharSet

Valor que indica si un script contiene caracteres admitidos por más de un juego de caracteres. Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
El script contiene caracteres admitidos por más de un juego de caracteres. En este caso, se debe omitir el miembro bCharSet de esta estructura y el miembro lfCharSet de LOGFONT debe establecerse en DEFAULT_CHARSET. Vea la sección Comentarios para obtener más información.
FALSE
El script no contiene caracteres admitidos por más de un juego de caracteres.

fClusterSizeVaries

Valor que indica si un script, como el árabe, puede usar la forma contextual que hace que una cadena aumente de tamaño durante la eliminación de caracteres. Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
Use un tamaño de clúster variable para dar forma contextual.
FALSE
No use un tamaño de clúster variable para dar forma contextual.

fRejectInvalid

Valor que indica si un script, por ejemplo, tailandés, debe rechazar secuencias no válidas que normalmente hacen que un programa de editor, como el Bloc de notas, pita y omita las pulsaciones de teclas. Los valores posibles se definen en la tabla siguiente.

Valor Significado
TRUE
Rechazar secuencias no válidas.
FALSE
No rechace secuencias no válidas.

Comentarios

Esta estructura se rellena mediante la función ScriptGetProperties .

Muchos scripts uniscribe no se corresponden directamente con los juegos de caracteres de 8 bits. Cuando algunos de los caracteres de un script son compatibles con más de un juego de caracteres, se establece el miembro fAmbiguousCharSet . La aplicación debe seguir procesando para determinar el juego de caracteres que se usará al solicitar una fuente adecuada para la ejecución. Por ejemplo, podría determinar que la ejecución consta de varios idiomas y dividir la ejecución para que se use una fuente diferente para cada idioma.

La aplicación usa el código siguiente durante la inicialización para obtener un puntero a la matriz SCRIPT_PROPERTIES .

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

hr = ScriptGetProperties(&ppScriptProperties, &iMaxScript);

A continuación, la aplicación puede inspeccionar las propiedades del script de un elemento como se muestra en el ejemplo siguiente.

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 Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado usp10.h

Consulte también

Identificadores de idioma

SCRIPT_CONTROL

SCRIPT_LOGATTR

SCRIPT_VISATTR

ScriptBreak

ScriptCPtoX

ScriptGetFontProperties

ScriptGetProperties

ScriptItemize

ScriptShape

ScriptXtoCP

Uniscribe

Uniscribe estructuras