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