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