Fungsi ScriptXtoCP (usp10.h)

Menghasilkan tepi awal atau akhir kluster karakter logis dari offset x dari eksekusi.

Sintaks

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, dalam unit logis, dari akhir eksekusi yang ditentukan oleh anggota fLogicalOrder dari struktur SCRIPT_ANALYSIS yang ditunjukkan oleh parameter psa .

[in] cChars

Jumlah titik kode logis dalam eksekusi.

[in] cGlyphs

Jumlah glyph dalam eksekusi.

[in] pwLogClust

Penunjuk ke array kluster logis.

[in] psva

Arahkan ke array struktur SCRIPT_VISATTR yang berisi atribut visual untuk glyph.

[in] piAdvance

Penunjuk ke array lebar muka.

[in] psa

Penunjuk ke struktur SCRIPT_ANALYSIS . Anggota fLogicalOrder menunjukkan TRUE untuk menggunakan tepi utama eksekusi, atau FALSE untuk menggunakan tepi berikutnya.

[out] piCP

Pointer ke buffer di mana fungsi ini mengambil posisi karakter yang sesuai dengan koordinat x.

[out] piTrailing

Penunjuk ke buffer di mana fungsi ini mengambil jarak, dalam titik kode, dari tepi utama karakter logis ke posisi iX . Jika nilai ini adalah 0, posisi iX berada di tepi depan karakter logis. Untuk informasi lebih lanjut, lihat bagian Keterangan.

Nilai kembali

Mengembalikan 0 jika berhasil. Fungsi mengembalikan nilai HRESULT bukan nol jika tidak berhasil. Aplikasi dapat menguji nilai pengembalian dengan makro BERHASIL dan GAGAL .

Keterangan

Nilai yang diteruskan ke fungsi ini biasanya adalah hasil panggilan sebelumnya ke fungsi Uniscribe lainnya. Lihat Mengelola Penempatan Berkursi dan Menekan Pengujian untuk detailnya.

Tepi awal dan akhir dari karakter logis ditentukan oleh arah teks dalam eksekusi (kiri-ke-kanan atau kanan-ke-kiri). Untuk arah kiri-ke-kanan, tepi depan sama dengan tepi kiri. Untuk arah kanan-ke-kiri, tepi depan adalah tepi kanan.

Untuk skrip di mana tanda sisipan secara konvensional ditempatkan di tengah kluster, misalnya, Arab dan Ibrani, posisi karakter yang diambil dapat untuk titik kode apa pun di baris. Dalam hal ini, parameter piTrailing diatur ke 0 atau 1.

Untuk skrip di mana tanda sisipan secara konvensional diposisikan ke batas kluster, posisi karakter yang diambil selalu merupakan posisi titik kode pertama dalam kluster (dianggap secara logis). Parameter piTrailing diatur ke 0 atau ke jumlah titik kode dalam kluster.

Posisi tanda sisipan yang sesuai untuk tetikus selalu merupakan posisi karakter yang diambil ditambah jarak yang ditunjukkan oleh piTrailing.

Ketika iX menunjukkan posisi di luar eksekusi, ScriptXtoCP bertindak seolah-olah ada karakter yang sangat besar di luar setiap akhir eksekusi. Ini menghasilkan perilaku yang diperlihatkan dalam tabel berikut.

Posisi iX (di luar eksekusi) Hasil
Sebelum eksekusi, yaitu: iX< 0 jika eksekusi adalah kiri-ke-kanan, atau iX>= jumlah kemajuan jika eksekusi kanan-ke-kiri Nilai piCP adalah -1 dan nilai piTrailing adalah 0
Setelah eksekusi, yaitu: iX>= jumlah uang muka jika eksekusi kiri-ke-kanan, atau iX< 0 jika eksekusi kanan-ke-kiri Nilai piCP adalah nilai cChars dan nilai piTrailing adalah 1
 
Penting Dimulai dengan Windows 8: Untuk mempertahankan kemampuan untuk berjalan pada Windows 7, modul yang menggunakan Uniscribe harus menentukan Usp10.lib sebelum gdi32.lib dalam daftar pustakanya.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header usp10.h
Pustaka Usp10.lib
DLL Usp10.dll
Redistribusi Internet Explorer 5 atau yang lebih baru pada Windows Me/98/95

Lihat juga

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Uniscribe

Fungsi Uniscribe