Fungsi ScriptLayout (usp10.h)

Mengonversi array tingkat penyematan eksekusi ke peta posisi visual-ke-logis dan/atau posisi logis-ke-visual.

Sintaks

HRESULT ScriptLayout(
  [in]            int        cRuns,
  [in]            const BYTE *pbLevel,
  [out, optional] int        *piVisualToLogical,
  [out, optional] int        *piLogicalToVisual
);

Parameter

[in] cRuns

Jumlah eksekusi yang akan diproses.

[in] pbLevel

Penunjuk ke array, panjang yang ditunjukkan oleh cRuns, berisi tingkat penyematan eksekusi. Tingkat penyematan untuk semua eksekusi pada baris harus disertakan, diurutkan secara logis. Untuk informasi lebih lanjut, lihat bagian Keterangan.

[out, optional] piVisualToLogical

Penunjuk ke array, panjang yang ditunjukkan oleh cRuns, di mana fungsi ini mengambil tingkat penyematan eksekusi yang diurutkan ulang ke urutan visual. Elemen array pertama mewakili eksekusi untuk ditampilkan di paling kiri, dan entri berikutnya harus ditampilkan kemajuan dari kiri ke kanan. Fungsi mengatur parameter ini ke NULL jika tidak ada output.

[out, optional] piLogicalToVisual

Penunjuk ke array, panjang yang ditunjukkan oleh cRuns, di mana fungsi ini mengambil posisi eksekusi visual. Elemen array pertama adalah posisi visual relatif di mana eksekusi logis pertama harus ditampilkan, posisi tampilan paling kiri adalah 0. Fungsi mengatur parameter ini ke NULL jika tidak ada output.

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

Lihat Menampilkan Teks dengan Uniscribe untuk diskusi tentang konteks di mana fungsi ini biasanya dipanggil.

Fungsi ini hanya menangani data yang berkaitan dengan satu baris teks.

Tingkat penyematan eksekusi didefinisikan dalam algoritma dua arah Unicode. Mereka menjelaskan arah eksekusi, arah setiap eksekusi di mana ia disematkan, dan arah paragraf. Tidak ada input lain yang diperlukan untuk panggilan ke fungsi ini. Untuk informasi selengkapnya, lihat Unicode.

Tabel berikut mencantumkan tingkat penyematan yang telah ditentukan sebelumnya. Aplikasi dapat menambahkan tingkat sesuai kebutuhan.

Tingkat Makna
0 Eksekusi kiri-ke-kanan dalam paragraf kiri-ke-kanan.
1 Eksekusi kanan-ke-kiri yang disematkan dalam eksekusi kiri-ke-kanan dalam paragraf kiri-ke-kanan. Atau, eksekusi kanan-ke-kiri, tidak disematkan dalam eksekusi lain, dalam paragraf kanan-ke-kiri.
2 Eksekusi kiri-ke-kanan yang disematkan dalam eksekusi kanan-ke-kiri tipe 1.
3 Eksekusi kanan-ke-kiri yang disematkan dalam eksekusi kiri-ke-kanan tipe 2.
 

"Posisi logis" mengacu pada penempatan eksekusi relatif terhadap eksekusi lain. Ini adalah posisi di penyimpanan backing, dan sesuai dengan urutan di mana pengguna membaca teks dengan keras. "Posisi visual" dari eksekusi mengacu pada cara eksekusi ditampilkan secara visual pada baris, dengan mempertimbangkan kemungkinan arah yang dapat dimiliki eksekusi.

Aplikasi dapat memanggil pengaturan fungsi ini baik piLogicalToVisual atau piVisualToLogical, atau keduanya.

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

Menampilkan Teks dengan Uniscribe

Uniscribe

Fungsi Uniscribe