Freigeben über


ScriptXtoCP-Funktion (usp10.h)

Generiert den führenden oder nachfolgenden Edge eines Clusters für logische Zeichen aus dem x-Offset einer Ausführung.

Syntax

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

Parameter

[in] iX

Offset in logischen Einheiten vom Ende der Ausführung, die durch das fLogicalOrder-Element der SCRIPT_ANALYSIS Struktur angegeben wird, die durch den psa-Parameter angegeben wird.

[in] cChars

Anzahl der logischen Codepunkte in der Ausführung.

[in] cGlyphs

Anzahl der Glyphen in der Ausführung.

[in] pwLogClust

Zeiger auf ein Array logischer Cluster.

[in] psva

Zeiger auf ein Array von SCRIPT_VISATTR Strukturen, die die visuellen Attribute für die Glyphe enthalten.

[in] piAdvance

Zeiger auf ein Array mit erweiterten Breiten.

[in] psa

Zeiger auf eine SCRIPT_ANALYSIS-Struktur . Das fLogicalOrder-Element gibt TRUE an, um die führende Kante der Ausführung zu verwenden, oder FALSE , um den nachfolgenden Edge zu verwenden.

[out] piCP

Zeiger auf einen Puffer, in dem diese Funktion die Zeichenposition abruft, die der x-Koordinate entspricht.

[out] piTrailing

Zeiger auf einen Puffer, in dem diese Funktion den Abstand in Codepunkten vom führenden Rand des logischen Zeichens zur iX-Position abruft . Wenn dieser Wert 0 ist, befindet sich die iX-Position am Anfang des logischen Zeichens. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

Rückgabewert

Gibt bei Erfolg 0 zurück. Die Funktion gibt einen nichtzero-HRESULT-Wert zurück, wenn er nicht erfolgreich ist. Die Anwendung kann den Rückgabewert mit den Makros SUCCEEDED und FAILED testen.

Hinweise

Die an diese Funktion übergebenen Werte sind normalerweise das Ergebnis früherer Aufrufe anderer Uniscribe-Funktionen. Weitere Informationen finden Sie unter Verwalten von Caret Placement und Treffertests .

Die vor- und nachgestellten Kanten des logischen Zeichens werden durch die Textrichtung in der Ausführung (von links nach rechts oder von rechts nach links) bestimmt. Für die Richtung von links nach rechts ist der führende Rand mit dem linken Rand identisch. Für die Rechts-nach-Links-Richtung ist die führende Kante der rechte Rand.

Für Skripts, in denen das Caret konventionell in der Mitte eines Clusters platziert wird, z. B. Arabisch und Hebräisch, kann die abgerufene Zeichenposition für jeden Codepunkt in der Zeile sein. In diesem Fall ist der piTrailing-Parameter entweder auf 0 oder 1 festgelegt.

Bei Skripts, in denen das Caret konventionell an die Grenzen eines Clusters angeknockt wird, ist die abgerufene Zeichenposition immer die Position des ersten Codepunkts in einem Cluster (logisch betrachtet). Der piTrailing-Parameter ist auf 0 oder auf die Anzahl der Codepunkte im Cluster festgelegt.

Die passende Caretposition für einen Maustreffer ist immer die abgerufene Zeichenposition plus der durch piTrailing angegebenen Entfernung.

Wenn iX eine Position außerhalb der Ausführung angibt, verhält sich ScriptXtoCP so, als ob sich hinter jedem Ende der Ausführung ein extra unendlich großes Zeichen befindet. Dies führt zu dem in der folgenden Tabelle gezeigten Verhalten.

iX-Position (außerhalb der Ausführung) Ergebnis
Vor der Ausführung, d. h. iX< 0, wenn die Ausführung von links nach rechts ist, oder iX>= Summe der Fortschritte, wenn die Ausführung von rechts nach links ist Der Wert von piCP ist -1 und der Wert von piTrailing ist 0.
Nach der Ausführung, d. h. iX>= Summe der Fortschritte, wenn die Ausführung von links nach rechts erfolgt, oder iX< 0, wenn die Ausführung von rechts nach links ist Der Wert von piCP ist der Wert von cChars und der Wert von piTrailing ist 1.
 
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

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile usp10.h
Bibliothek Usp10.lib
DLL Usp10.dll
Verteilbare Komponente Internet Explorer 5 oder höher unter Windows Me/98/95

Weitere Informationen

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Uniscribe

Uniscribe Functions