ScriptPlaceOpenType-Funktion (usp10.h)
Generiert Glyphen und visuelle Attribute für eine Unicode-Ausführung mit OpenType-Informationen aus der Ausgabe von ScriptShapeOpenType.
Syntax
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
);
Parameter
[in, optional] hdc
Handle mit dem Gerätekontext. Weitere Informationen finden Sie unter Zwischenspeichern.
[in, out] psc
Zeiger auf eine SCRIPT_CACHE Struktur, die den Skriptcache identifiziert.
[in, out] psa
Zeiger auf eine SCRIPT_ANALYSIS Struktur, die aus einem vorherigen Aufruf von ScriptItemizeOpenType abgerufen wurde. Diese Strukturen identifizieren die Formgebungs-Engine, die die generierte Liste der Glyphen und ihre zugeordneten Breiten sowie x- und y-Platzierungsoffsets steuert.
Alternativ kann die Anwendung diesen Parameter auf NULL festlegen, um ungefilterte Ergebnisse zu erhalten.
[in] tagScript
Eine OPENTYPE_TAG Struktur, die das OpenType-Skripttag für das zu verwendende Schreibsystem enthält.
[in] tagLangSys
Eine OPENTYPE_TAG Struktur, die das OpenType-Sprachtag für das Schreibsystem enthält.
[in, optional] rcRangeChars
Array der Anzahl der Zeichen in jedem Bereich. Die Anzahl der Member wird im Parameter cRanges angegeben. Die Summe der Werte sollte dem Wert von cChars entsprechen.
[in, optional] rpRangeProperties
Array von TEXTRANGE_PROPERTIES Strukturen, die Eigenschaften für jeden Bereich definieren. Die Anzahl der Elemente wird durch den Parameter cRanges definiert.
[in] cRanges
Die Anzahl der OpenType-Featurebereiche.
[in] pwcChars
Zeiger auf ein Array von Unicode-Zeichen, das die Ausführung enthält. Die Anzahl der Elemente wird durch den Parameter cRanges definiert.
[in] pwLogClust
Zeiger auf ein Array logischer Clusterinformationen. Jedes Element im Array entspricht einem Zeichen in dem von pwcChars definierten Array. Der Wert jedes Elements ist der Offset von der ersten Glyphe in der Ausführung bis zur ersten Glyphe im Cluster, die das entsprechende Zeichen enthält. Beachten Sie, dass, wenn das fRTL-Element der SCRIPT_ANALYSIS-Struktur auf TRUE festgelegt ist, die Elemente in pwLogClust abnehmen, wenn das Array gelesen wird.
[in] pCharProps
Zeiger auf ein Array von Zeicheneigenschaftenwerten in der Unicode-Ausführung.
[in] cChars
Anzahl der Zeichen in der Unicode-Ausführung.
[in] pwGlyphs
Zeiger auf einen Glyphenpuffer, der von einem früheren Aufruf der ScriptShapeOpenType-Funktion abgerufen wurde.
[in] pGlyphProps
Zeiger auf ein Array von Attributen für jede der abzurufenden Glyphen. Die Anzahl der Werte entspricht dem Wert von cGlyphen. Da pro Glyphe eine Glyphe-Eigenschaft vorhanden ist, verfügt dieser Parameter über die Anzahl von Elementen, die von cGlyphen angegeben werden.
[in] cGlyphs
Anzahl der Glyphen in einem Glyphenarraypuffer.
[out] piAdvance
Zeiger auf ein Array mit der Länge, die von cGlyphen angegeben wird, in dem diese Funktion Informationen zur Erweiterten Breite abruft.
[out] pGoffset
Zeiger auf ein Array von GOFFSET-Strukturen , in dem diese Struktur die x- und y-Offsets der Kombination von Glyphen abruft. Dieses Array muss von der Länge sein, die durch cGlyphen angegeben wird.
[out, optional] pABC
Zeiger auf eine ABC-Struktur , in der diese Funktion die ABC-Breite für die gesamte Ausführung abruft.
Rückgabewert
Gibt bei Erfolg 0 zurück. Die Funktion gibt einen nichtzero-HRESULT-Wert zurück, wenn er nicht erfolgreich ist. In allen Fehlerfällen sind die Ausgabewerte nicht definiert. Die Anwendung kann den Rückgabewert mit den Makros SUCCEEDED und FAILED testen.
Die Funktion gibt E_OUTOFMEMORY zurück, wenn die durch cGlyphen angegebene Ausgabepufferlänge zu klein ist. Die Anwendung kann versuchen, mit größeren Puffern erneut aufzurufen.
Die Funktion gibt E_PENDING zurück, wenn der vom psc-Parameter angegebene Skriptcache nicht genügend Informationen zum Platzieren der Glyphen enthält, und der hdc-Parameter als NULL übergeben wird, sodass die Funktion den Platzierungsprozess nicht abschließen kann. Die Anwendung sollte einen richtigen Gerätekontext für die Ausführung einrichten und diese Funktion erneut mit dem entsprechenden Wert in hdc und mit allen anderen Parametern aufrufen.
Hinweise
Diese Funktion wird der älteren ScriptPlace-Funktion vorgezogen. Einige Vorteile von ScriptPlaceOpenType sind:
- Parameter entsprechen direkt OpenType-Tags in Schriftartlayouttabellen.
- Parameter definieren Features, die auf jedes Zeichen angewendet werden. Die Eingabe ist in Bereiche unterteilt, und jedem Bereich sind OpenType-Eigenschaften zugeordnet.
Alle Arrays befinden sich in visueller Reihenfolge, es sei denn, das fLogicalOrder-Element wird in der durch den psa-Parameter angegebenen SCRIPT_ANALYSIS Struktur festgelegt.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | usp10.h |
Bibliothek | Usp10.lib |
DLL | Usp10.dll |
Verteilbare Komponente | Usp10.dll Version 1.600 oder höher unter Windows XP |