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.
Die zusammengesetzte ABC-Breite für das gesamte Element gibt an, wie stark die Glyphen links von der Startposition und rechts von der Länge überhängen , die durch die Summe der Vorlaufbreiten impliziert wird. Die gesamte Vorlaufbreite der Linie ist genau abcA+abcB+abcC. Die AbcA- und abcC-Werte werden als Anteile der Zellenhöhe beibehalten, die in 8 Bits dargestellt wird und somit ungefähr +/-1 Prozent betragen. Die abgerufene Gesamtbreite, d. h. die Summe der von piAdvance angegebenen abcA+abcB+abcC-Werte, entspricht der Auflösung der TrueType-Shaping-Engine.

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.

Wichtig Ab Windows 8: Um die Ausführung unter Windows 7 zu gewährleisten, muss ein Modul, das Uniscribe verwendet, Usp10.lib vor gdi32.lib in seiner Bibliotheksliste angeben.
 

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

Weitere Informationen

Anzeigen von Text mit Uniscribe

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

ScriptPlace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Uniscribe Functions