Condividi tramite


Funzione ScriptPlaceOpenType (usp10.h)

Genera glifi e attributi visivi per un'esecuzione Unicode con informazioni OpenType dall'output di ScriptShapeOpenType.

Sintassi

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

Parametri

[in, optional] hdc

Gestire il contesto del dispositivo. Per altre informazioni, vedere Memorizzazione nella cache.

[in, out] psc

Puntatore a una struttura SCRIPT_CACHE che identifica la cache degli script.

[in, out] psa

Puntatore a una struttura SCRIPT_ANALYSIS ottenuta da una chiamata precedente a ScriptItemizeOpenType. Queste strutture identificano il motore di forma che regola l'elenco generato di glifi e le relative larghezze associate e gli offset di posizionamento x e y.

In alternativa, l'applicazione può impostare questo parametro su NULL per ricevere risultati non filtrati.

[in] tagScript

Struttura OPENTYPE_TAG contenente il tag di script OpenType da usare per il sistema di scrittura.

[in] tagLangSys

Struttura OPENTYPE_TAG contenente il tag di lingua OpenType per il sistema di scrittura.

[in, optional] rcRangeChars

Matrice del numero di caratteri in ogni intervallo. Il numero di membri è indicato nel parametro cRanges . Il totale dei valori deve essere uguale al valore di cChars.

[in, optional] rpRangeProperties

Matrice di strutture TEXTRANGE_PROPERTIES che definiscono le proprietà per ogni intervallo. Il numero di elementi è definito dal parametro cRanges .

[in] cRanges

Numero di intervalli di funzionalità OpenType.

[in] pwcChars

Puntatore a una matrice di caratteri Unicode contenenti l'esecuzione. Il numero di elementi è definito dal parametro cRanges .

[in] pwLogClust

Puntatore a una matrice di informazioni del cluster logico. Ogni elemento della matrice corrisponde a un carattere nella matrice definita da pwcChars. Il valore di ogni elemento è l'offset dal primo glifo nell'esecuzione al primo glifo nel cluster contenente il carattere corrispondente. Si noti che, quando il membro fRTL della struttura SCRIPT_ANALYSIS è impostato su TRUE, gli elementi in pwLogClust diminuiscono man mano che la matrice viene letto.

[in] pCharProps

Puntatore a una matrice di valori delle proprietà carattere nell'esecuzione Unicode.

[in] cChars

Numero di caratteri nell'esecuzione Unicode.

[in] pwGlyphs

Puntatore a un buffer del glifo ottenuto da una chiamata precedente alla funzione ScriptShapeOpenType .

[in] pGlyphProps

Puntatore a una matrice di attributi per ognuno dei glifi da recuperare. Il numero di valori è uguale al valore di cGlyphs. Poiché esiste una proprietà del glifo per glifo, questo parametro ha il numero di elementi indicati da cGlyphs.

[in] cGlyphs

Numero di glifi in un buffer della matrice di glifi.

[out] piAdvance

Puntatore a una matrice, di lunghezza indicata da cGlyphs, in cui questa funzione recupera informazioni avanzate sulla larghezza .

[out] pGoffset

Puntatore a una matrice di strutture GOFFSET in cui questa struttura recupera glifi x e y. Questa matrice deve essere di lunghezza indicata da cGlyphs.

[out, optional] pABC

Puntatore a una struttura ABC in cui questa funzione recupera la larghezza ABC per l'intera esecuzione.

Valore restituito

Restituisce 0 in caso di esito positivo. La funzione restituisce un valore HRESULT diverso da zero se non riesce. In tutti i casi di errore, i valori di output non sono definiti. L'applicazione può testare il valore restituito con le macro SUCCESSED e FAILED .

La funzione restituisce E_OUTOFMEMORY se la lunghezza del buffer di output indicato da cGlyphs è troppo piccola. L'applicazione può riprovare a chiamare con buffer più grandi.

La funzione restituisce E_PENDING se la cache dello script specificata dal parametro psc non contiene informazioni sufficienti per inserire glifi e il parametro hdc viene passato come NULL in modo che la funzione non sia in grado di completare il processo di posizionamento. L'applicazione deve configurare un contesto di dispositivo corretto per l'esecuzione e chiamare nuovamente questa funzione con il valore appropriato in hdc e con tutti gli altri parametri uguali.

Commenti

Questa funzione è preferita rispetto alla funzione ScriptPlace precedente. Alcuni vantaggi di ScriptPlaceOpenType includono quanto segue:

  • I parametri corrispondono direttamente ai tag OpenType nelle tabelle di layout dei tipi di carattere.
  • I parametri definiscono le funzionalità applicate a ogni carattere. L'input è suddiviso in intervalli e ogni intervallo include proprietà OpenType associate.
La larghezza ABC composita per l'intero elemento identifica la quantità di glifi a sinistra della posizione iniziale e a destra della lunghezza implicita dalla somma delle larghezze avanzate. La larghezza totale di avanzamento della linea è esattamente abcA+abcB+abcC. I valori abcA e abcC vengono mantenuti come proporzioni dell'altezza della cella rappresentata in 8 bit e sono quindi approssimativamente +/-1%. La larghezza totale recuperata, ovvero la somma dei valori abcA+abcB+abcC indicati da piAdvance, è accurata per la risoluzione del motore di modellazione TrueType.

Tutte le matrici sono in ordine visivo a meno che il membro fLogicalOrder non sia impostato nella struttura SCRIPT_ANALYSIS indicata dal parametro psa .

Importante A partire da Windows 8: per mantenere la possibilità di eseguire in Windows 7, un modulo che usa Uniscribe deve specificare Usp10.lib prima di gdi32.lib nell'elenco delle librerie.
 

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione usp10.h
Libreria Usp10.lib
DLL Usp10.dll
Componente ridistribuibile Usp10.dll versione 1.600 o successiva in Windows XP

Vedi anche

Visualizzazione del testo con Uniscribe

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

ScriptPlace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Funzioni uniscrivere