Share via


Fonction ScriptXtoCP (usp10.h)

Génère le bord de début ou de fin d’un cluster de caractères logiques à partir du décalage x d’une exécution.

Syntaxe

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
);

Paramètres

[in] iX

Décalage, en unités logiques, à partir de la fin de l’exécution spécifiée par le membre fLogicalOrder de la structure SCRIPT_ANALYSIS indiquée par le paramètre psa .

[in] cChars

Nombre de points de code logique dans l’exécution.

[in] cGlyphs

Nombre de glyphes dans l’exécution.

[in] pwLogClust

Pointeur vers un tableau de clusters logiques.

[in] psva

Pointeur vers un tableau de structures SCRIPT_VISATTR contenant les attributs visuels du glyphe.

[in] piAdvance

Pointeur vers un tableau de largeurs avancées.

[in] psa

Pointeur vers une structure SCRIPT_ANALYSIS . Le membre fLogicalOrder indique TRUE pour utiliser le bord d’avant de l’exécution, ou FALSE pour utiliser le bord de fin.

[out] piCP

Pointeur vers une mémoire tampon dans laquelle cette fonction récupère la position du caractère correspondant à la coordonnée x.

[out] piTrailing

Pointeur vers une mémoire tampon dans laquelle cette fonction récupère la distance, en points de code, entre le bord d’entrée du caractère logique et la position iX . Si cette valeur est 0, la position iX se trouve au bord d’avant du caractère logique. Pour plus d'informations, consultez la section Notes.

Valeur retournée

Retourne 0 en cas de réussite. La fonction retourne une valeur HRESULT différente de zéro si elle ne réussit pas. L’application peut tester la valeur de retour avec les macros SUCCEEDED et FAILED .

Remarques

Les valeurs passées à cette fonction sont normalement les résultats d’appels antérieurs à d’autres fonctions Uniscribe. Pour plus d’informations, consultez Gestion du placement d’insertion et des tests de positionnement.

Les bords de début et de fin du caractère logique sont déterminés par la direction du texte dans l’exécution (de gauche à droite ou de droite à gauche). Pour la direction de gauche à droite, le bord d’avant est le même que le bord gauche. Pour la direction de droite à gauche, le bord d’avant est le bord droit.

Pour les scripts dans lesquels l’insertion est traditionnellement placée au milieu d’un cluster, par exemple l’arabe et l’hébreu, la position du caractère récupéré peut être pour n’importe quel point de code dans la ligne. Dans ce cas, le paramètre piTrailing est défini sur 0 ou 1.

Pour les scripts dans lesquels l’insertion est traditionnellement ancrée aux limites d’un cluster, la position du caractère récupéré est toujours la position du premier point de code dans un cluster (considérée logiquement). Le paramètre piTrailing est défini sur 0 ou sur le nombre de points de code dans le cluster.

La position d’insertion appropriée pour un coup de souris est toujours la position du caractère récupéré plus la distance indiquée par piTrailing.

Quand iX indique une position en dehors de l’exécution, ScriptXtoCP agit comme s’il y avait un caractère infiniment grand au-delà de chaque fin de l’exécution. Cela entraîne le comportement indiqué dans le tableau suivant.

Position iX (en dehors de l’exécution) Résultats
Avant l’exécution, c’est-à-dire : iX< 0 si l’exécution est de gauche à droite, ou iX>= somme des avances si l’exécution est de droite à gauche La valeur de piCP est -1 et la valeur de piTrailing est 0
Après l’exécution, c’est-à-dire : iX>= somme des avances si l’exécution est de gauche à droite, ou iX< 0 si l’exécution est de droite à gauche La valeur de piCP est la valeur de cChars et la valeur de piTrailing est 1
 
Important À compter de Windows 8 : pour conserver la possibilité de s’exécuter sur Windows 7, un module qui utilise Uniscribe doit spécifier Usp10.lib avant gdi32.lib dans sa liste de bibliothèques.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête usp10.h
Bibliothèque Usp10.lib
DLL Usp10.dll
Composant redistribuable Internet Explorer 5 ou version ultérieure sur Windows Me/98/95

Voir aussi

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Annuler l’inscription

Annuler l’inscription de fonctions