Share via


Función ScriptGetFontAlternateGlyphs (usp10.h)

Recupera una lista de glifos alternativos para un carácter especificado al que se puede tener acceso a través de una característica OpenType especificada.

Sintaxis

HRESULT ScriptGetFontAlternateGlyphs(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           WORD            wGlyphId,
  [in]           int             cMaxAlternates,
  [out]          WORD            *pAlternateGlyphs,
  [out]          int             *pcAlternates
);

Parámetros

[in, optional] hdc

Identificador del contexto del dispositivo. Para obtener más información, consulte Almacenamiento en caché.

[in, out] psc

Puntero a una estructura de SCRIPT_CACHE que define la caché de scripts.

[in, optional] psa

Puntero a una estructura de SCRIPT_ANALYSIS obtenida de una llamada anterior a ScriptItemizeOpenType. Este parámetro identifica el motor de forma, de modo que la matriz de glifos alternativos se pueda crear con el ámbito correcto.

Como alternativa, la aplicación puede establecer este parámetro en NULL para recibir resultados sin filtrar.

[in] tagScript

Estructura OPENTYPE_TAG que define la etiqueta de script asociada a glifos alternativos.

[in] tagLangSys

Estructura OPENTYPE_TAG que define la etiqueta de idioma asociada a glifos alternativos.

[in] tagFeature

Estructura OPENTYPE_TAG que define la etiqueta de característica asociada a glifos alternativos.

[in] wGlyphId

Identificador del glifo original asignado desde la tabla de mapa de caracteres.

[in] cMaxAlternates

Longitud de la matriz especificada por pAlternateGlyphs.

[out] pAlternateGlyphs

Puntero al búfer en el que esta función recupera una matriz de identificadores de glifo. La matriz incluye el glifo original, seguido de glifos alternativos. El primer elemento es siempre el glifo original. Los formularios alternativos se identifican mediante un índice en la matriz. El índice es un valor mayor que uno y menor que el valor de pcAlternates.

Cuando el usuario elige un formulario alternativo de la interfaz de usuario, el glifo alternativo se aplica al carácter correspondiente y se vuelve a formatear la representación.

[out] pcAlternates

Puntero al número de elementos de la matriz especificada por pAlternateGlyphs.

Valor devuelto

Si la operación se realiza correctamente, devuelve 0. La función devuelve un valor HRESULT distinto de cero si no se realiza correctamente. La aplicación puede probar el valor devuelto con las macros SUCCEEDED y FAILED .

Si el número de glifos alternativos supera el valor de cMaxAlternates, se produce un error en la función con E_OUTOFMEMORY. La aplicación puede intentar llamar de nuevo con búferes más grandes.

Comentarios

Cuando se usan glifos alternativos, la aplicación cambia primero la forma del glifo original sin aplicar ninguna etiqueta de característica y, a continuación, selecciona una alternativa. El glifo original se establece como glifo base. Si se requiere otra alternativa, el glifo original proporciona información para que coincida con la lista de alternativas correspondiente.

Si se usa un glifo alternativo como glifo base, no se encuentra ninguna lista de salida coincidente. La interfaz de usuario usa el formulario final seleccionado sin proporcionar la capacidad de elegir otra alternativa.

Las operaciones de ScriptGetFontAlternateGlyphs se pueden emular mediante ScriptSubstituteSingleGlyph. La aplicación debe probar los parámetros uno por uno mientras se sustituyen los glifos.

Para dar forma a fuentes con Uniscribe, se prefiere ScriptShapeOpenType sobre la función ScriptShape anterior.

Importante A partir de Windows 8: para mantener la capacidad de ejecutarse en Windows 7, un módulo que usa Uniscribe debe especificar Usp10.lib antes de gdi32.lib en su lista de bibliotecas.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado usp10.h
Library Usp10.lib
Archivo DLL Usp10.dll
Redistribuible Usp10.dll versión 1.600 o posterior en Windows XP

Consulte también

Almacenamiento en caché

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

ScriptShapeOpenType

ScriptSubstituteSingleGlyph

Uniscribe

Funciones uniscribe