Función ScriptXtoCP (usp10.h)

Genera el borde inicial o final de un clúster de caracteres lógicos a partir del desplazamiento x de una ejecución.

Sintaxis

HRESULT ScriptXtoCP(
  [in]  int                   iX,
  [in]  int                   cChars,
  [in]  int                   cGlyphs,
  [in]  const WORD            *pwLogClust,
  [in]  const SCRIPT_VISATTR  *psva,
  [in]  const int             *piAdvance,
  [in]  const SCRIPT_ANALYSIS *psa,
  [out] int                   *piCP,
  [out] int                   *piTrailing
);

Parámetros

[in] iX

Desplazamiento, en unidades lógicas, desde el final de la ejecución especificada por el miembro fLogicalOrder de la estructura SCRIPT_ANALYSIS indicada por el parámetro psa .

[in] cChars

Recuento de puntos de código lógicos en la ejecución.

[in] cGlyphs

Recuento de glifos en la ejecución.

[in] pwLogClust

Puntero a una matriz de clústeres lógicos.

[in] psva

Puntero a una matriz de SCRIPT_VISATTR estructuras que contienen los atributos visuales del glifo.

[in] piAdvance

Puntero a una matriz de anchos avanzados.

[in] psa

Puntero a una estructura de SCRIPT_ANALYSIS . El miembro fLogicalOrder indica TRUE para usar el borde inicial de la ejecución, o FALSE para usar el borde final.

[out] piCP

Puntero a un búfer en el que esta función recupera la posición del carácter correspondiente a la coordenada x.

[out] piTrailing

Puntero a un búfer en el que esta función recupera la distancia, en puntos de código, desde el borde inicial del carácter lógico hasta la posición de iX . Si este valor es 0, la posición de iX está en el borde inicial del carácter lógico. Para obtener más información, vea la sección Comentarios.

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 .

Comentarios

Los valores pasados a esta función normalmente son los resultados de las llamadas anteriores a otras funciones Uniscribe. Consulte Managing Caret Placement and Hit Testing (Administración de la selección de ubicación de intercalación y pruebas de posicionamiento) para obtener más información.

Los bordes iniciales y finales del carácter lógico están determinados por la dirección del texto de la ejecución (de izquierda a derecha o derecha a izquierda). Para la dirección izquierda a derecha, el borde inicial es el mismo que el borde izquierdo. Para la dirección derecha a izquierda, el borde inicial es el borde derecho.

En el caso de los scripts en los que el símbolo de intercalación se coloca convencionalmente en medio de un clúster, por ejemplo, árabe y hebreo, la posición del carácter recuperado puede ser para cualquier punto de código de la línea. En este caso, el parámetro piTrailing se establece en 0 o 1.

En el caso de los scripts en los que el símbolo de intercalación se ajusta convencionalmente a los límites de un clúster, la posición del carácter recuperado siempre es la posición del primer punto de código de un clúster (considerado lógicamente). El parámetro piTrailing se establece en 0 o en el número de puntos de código del clúster.

La posición de intercalación adecuada para un clic del mouse siempre es la posición de carácter recuperada más la distancia indicada por piTrailing.

Cuando iX indica una posición fuera de la ejecución, ScriptXtoCP actúa como si hubiera un carácter extra infinitamente grande más allá de cada extremo de la ejecución. Esto da como resultado el comportamiento que se muestra en la tabla siguiente.

Posición de iX (fuera de la ejecución) Resultado
Antes de la ejecución, es decir: iX< 0 si la ejecución es de izquierda a derecha o iX>= suma de avances si la ejecución es de derecha a izquierda El valor de piCP es -1 y el valor de piTrailing es 0.
Después de la ejecución, es decir: iX>= suma de avances si la ejecución es de izquierda a derecha, o iX< 0 si la ejecución es de derecha a izquierda El valor de piCP es el valor de cChars y el valor de piTrailing es 1.
 
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 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado usp10.h
Library Usp10.lib
Archivo DLL Usp10.dll
Redistribuible Internet Explorer 5 o posterior en Windows Me/98/95

Consulte también

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Uniscribe

Funciones uniscribe