Función ScriptPlaceOpenType (usp10.h)

Genera glifos y atributos visuales para una ejecución Unicode con información de OpenType a partir de la salida de ScriptShapeOpenType.

Sintaxis

HRESULT ScriptPlaceOpenType(
  [in, optional]  HDC                    hdc,
  [in, out]       SCRIPT_CACHE           *psc,
  [in, out]       SCRIPT_ANALYSIS        *psa,
  [in]            OPENTYPE_TAG           tagScript,
  [in]            OPENTYPE_TAG           tagLangSys,
  [in, optional]  int                    *rcRangeChars,
  [in, optional]  TEXTRANGE_PROPERTIES   **rpRangeProperties,
  [in]            int                    cRanges,
  [in]            const WCHAR            *pwcChars,
  [in]            WORD                   *pwLogClust,
  [in]            SCRIPT_CHARPROP        *pCharProps,
  [in]            int                    cChars,
  [in]            const WORD             *pwGlyphs,
  [in]            const SCRIPT_GLYPHPROP *pGlyphProps,
  [in]            int                    cGlyphs,
  [out]           int                    *piAdvance,
  [out]           GOFFSET                *pGoffset,
  [out, optional] ABC                    *pABC
);

Parámetros

[in, optional] hdc

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

[in, out] psc

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

[in, out] psa

Puntero a una estructura de SCRIPT_ANALYSIS obtenida de una llamada anterior a ScriptItemizeOpenType. Esta estructura identifica el motor de modelado que rige la lista generada de glifos y sus anchos asociados, y los desplazamientos de colocación x e y.

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

[in] tagScript

Estructura OPENTYPE_TAG que contiene la etiqueta de script OpenType para que use el sistema de escritura.

[in] tagLangSys

Estructura OPENTYPE_TAG que contiene la etiqueta de idioma OpenType para el sistema de escritura.

[in, optional] rcRangeChars

Matriz del número de caracteres de cada intervalo. El número de miembros se indica en el parámetro cRanges . El total de valores debe ser igual al valor de cChars.

[in, optional] rpRangeProperties

Matriz de estructuras de TEXTRANGE_PROPERTIES que definen propiedades para cada intervalo. El número de elementos se define mediante el parámetro cRanges .

[in] cRanges

Número de intervalos de características openType.

[in] pwcChars

Puntero a una matriz de caracteres Unicode que contiene la ejecución. El número de elementos se define mediante el parámetro cRanges .

[in] pwLogClust

Puntero a una matriz de información del clúster lógico. Cada elemento de la matriz corresponde a un carácter de la matriz definida por pwcChars. El valor de cada elemento es el desplazamiento del primer glifo de la ejecución al primer glifo del clúster que contiene el carácter correspondiente. Tenga en cuenta que, cuando el miembro fRTL de la estructura de SCRIPT_ANALYSIS se establece en TRUE, los elementos de pwLogClust disminuyen a medida que se lee la matriz.

[in] pCharProps

Puntero a una matriz de valores de propiedad de caracteres en la ejecución Unicode.

[in] cChars

Número de caracteres de la ejecución unicode.

[in] pwGlyphs

Puntero a un búfer de glifo obtenido de una llamada anterior a la función ScriptShapeOpenType .

[in] pGlyphProps

Puntero a una matriz de atributos para cada uno de los glifos que se van a recuperar. El número de valores es igual al valor de los glifos. Dado que hay una propiedad de glifo por glifo, este parámetro tiene el número de elementos indicados por glifos.

[in] cGlyphs

Recuento de glifos en un búfer de matriz de glifos.

[out] piAdvance

Puntero a una matriz, de longitud indicada por cGlyphs, en el que esta función recupera información de ancho avanzada .

[out] pGoffset

Puntero a una matriz de estructuras GOFFSET en las que esta estructura recupera los desplazamientos x e y de combinar glifos. Esta matriz debe tener una longitud indicada por cGlyphs.

[out, optional] pABC

Puntero a una estructura ABC en la que esta función recupera el ancho ABC de toda la ejecución.

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. En todos los casos de error, los valores de salida no están definidos. La aplicación puede probar el valor devuelto con las macros SUCCEEDED y FAILED .

La función devuelve E_OUTOFMEMORY si la longitud del búfer de salida indicada por los glifos es demasiado pequeña. La aplicación puede intentar llamar de nuevo con búferes más grandes.

La función devuelve E_PENDING si la caché de scripts especificada por el parámetro psc no contiene suficiente información para colocar los glifos y el parámetro hdc se pasa como NULL para que la función no pueda completar el proceso de selección de ubicación. La aplicación debe configurar un contexto de dispositivo correcto para la ejecución y llamar a esta función de nuevo con el valor adecuado en hdc y con todos los demás parámetros iguales.

Comentarios

Esta función se prefiere sobre la anterior función ScriptPlace . Entre las ventajas de ScriptPlaceOpenType se incluyen las siguientes:

  • Los parámetros corresponden directamente a etiquetas OpenType en tablas de diseño de fuentes.
  • Los parámetros definen características aplicadas a cada carácter. La entrada se divide en intervalos y cada intervalo tiene propiedades OpenType asociadas.
El ancho ABC compuesto para todo el elemento identifica la cantidad de glifos que se superponen a la izquierda de la posición inicial y a la derecha de la longitud implícita por la suma de los anchos avanzados. El ancho de avance total de la línea es exactamente abcA+abcB+abcC. Los valores abcA y abcC se mantienen como proporciones del alto de celda representado en 8 bits y, por tanto, son aproximadamente +/-1%. El ancho total recuperado, que es la suma de los valores abcA+abcB+abcC indicados por piAdvance, es preciso para la resolución del motor de modelado TrueType.

Todas las matrices están en orden visual a menos que el miembro fLogicalOrder esté establecido en la estructura SCRIPT_ANALYSIS indicada por el parámetro psa .

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

   
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

Mostrar texto con Uniscribe

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

ScriptPlace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Funciones de uniscribe