ScriptPlaceOpenType, fonction (usp10.h)
Génère des glyphes et des attributs visuels pour une exécution Unicode avec des informations OpenType à partir de la sortie de ScriptShapeOpenType.
Syntaxe
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
);
Paramètres
[in, optional] hdc
Gérez le contexte de l’appareil. Pour plus d’informations, consultez Mise en cache.
[in, out] psc
Pointeur vers une structure SCRIPT_CACHE identifiant le cache de script.
[in, out] psa
Pointeur vers une structure SCRIPT_ANALYSIS obtenue à partir d’un appel précédent à ScriptItemizeOpenType. Cette structure identifie le moteur de mise en forme qui régit la liste générée des glyphes et leurs largeurs associées, ainsi que les décalages de placement x et y.
L’application peut également définir ce paramètre sur NULL pour recevoir des résultats non filtrés.
[in] tagScript
Structure OPENTYPE_TAG contenant la balise de script OpenType que le système d’écriture doit utiliser.
[in] tagLangSys
Structure OPENTYPE_TAG contenant la balise de langue OpenType pour le système d’écriture.
[in, optional] rcRangeChars
Tableau du nombre de caractères dans chaque plage. Le nombre de membres est indiqué dans le paramètre cRanges . Le total des valeurs doit être égal à la valeur de cChars.
[in, optional] rpRangeProperties
Tableau de structures TEXTRANGE_PROPERTIES définissant des propriétés pour chaque plage. Le nombre d’éléments est défini par le paramètre cRanges .
[in] cRanges
Nombre de plages de fonctionnalités OpenType.
[in] pwcChars
Pointeur vers un tableau de caractères Unicode contenant l’exécution. Le nombre d’éléments est défini par le paramètre cRanges .
[in] pwLogClust
Pointeur vers un tableau d’informations de cluster logique. Chaque élément du tableau correspond à un caractère dans le tableau défini par pwcChars. La valeur de chaque élément est le décalage entre le premier glyphe de l’exécution et le premier glyphe du cluster contenant le caractère correspondant. Notez que, lorsque le membre fRTL de la structure SCRIPT_ANALYSIS a la valeur TRUE, les éléments dans pwLogClust diminuent à mesure que le tableau est lu.
[in] pCharProps
Pointeur vers un tableau de valeurs de propriété de caractères dans l’exécution Unicode.
[in] cChars
Nombre de caractères dans l’exécution Unicode.
[in] pwGlyphs
Pointeur vers une mémoire tampon de glyphes obtenue à partir d’un appel antérieur à la fonction ScriptShapeOpenType .
[in] pGlyphProps
Pointeur vers un tableau d’attributs pour chacun des glyphes à récupérer. Le nombre de valeurs est égal à la valeur des cGlyphes. Étant donné qu’il existe une propriété de glyphe par glyphe, ce paramètre a le nombre d’éléments indiqué par les cGlyphes.
[in] cGlyphs
Nombre de glyphes dans une mémoire tampon de tableau de glyphes.
[out] piAdvance
Pointeur vers un tableau, de longueur indiquée par les cGlyphes, dans lequel cette fonction récupère des informations de largeur avancées .
[out] pGoffset
Pointeur vers un tableau de structures GOFFSET dans laquelle cette structure récupère les décalages x et y de la combinaison de glyphes. Ce tableau doit être de longueur indiquée par les cGlyphes.
[out, optional] pABC
Pointeur vers une structure ABC dans laquelle cette fonction récupère la largeur ABC pour l’exécution entière.
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. Dans tous les cas d’erreur, les valeurs de sortie ne sont pas définies. L’application peut tester la valeur de retour avec les macros SUCCEEDED et FAILED .
La fonction retourne E_OUTOFMEMORY si la longueur de la mémoire tampon de sortie indiquée par les cGlyphes est trop petite. L’application peut réessayer d’appeler avec des mémoires tampons plus volumineuses.
La fonction retourne E_PENDING si le cache de script spécifié par le paramètre psc ne contient pas suffisamment d’informations pour placer les glyphes, et si le paramètre hdc est passé en tant que NULL afin que la fonction ne puisse pas terminer le processus de placement. L’application doit configurer un contexte d’appareil correct pour l’exécution et appeler à nouveau cette fonction avec la valeur appropriée dans hdc et avec tous les autres paramètres identiques.
Remarques
Cette fonction est préférée à l’ancienne fonction ScriptPlace . Voici quelques avantages de ScriptPlaceOpenType :
- Les paramètres correspondent directement aux balises OpenType dans les tables de disposition des polices.
- Les paramètres définissent les fonctionnalités appliquées à chaque caractère. L’entrée est divisée en plages, et chaque plage a des propriétés OpenType associées.
Tous les tableaux sont dans l’ordre visuel, sauf si le membre fLogicalOrder est défini dans la structure SCRIPT_ANALYSIS indiquée par le paramètre psa .
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | usp10.h |
Bibliothèque | Usp10.lib |
DLL | Usp10.dll |
Composant redistribuable | Usp10.dll version 1.600 ou ultérieure sur Windows XP |