Bagikan melalui


Fungsi ScriptPlace (usp10.h)

Menghasilkan lebar glyph advance dan informasi offset dua dimensi dari output ScriptShape.

Sintaks

HRESULT ScriptPlace(
  [in]      HDC                  hdc,
  [in, out] SCRIPT_CACHE         *psc,
  [in]      const WORD           *pwGlyphs,
  [in]      int                  cGlyphs,
  [in]      const SCRIPT_VISATTR *psva,
  [in, out] SCRIPT_ANALYSIS      *psa,
  [out]     int                  *piAdvance,
  [out]     GOFFSET              *pGoffset,
  [out]     ABC                  *pABC
);

Parameter

[in] hdc

Pilihan. Menangani konteks perangkat. Untuk informasi selengkapnya, lihat Penembolokan.

[in, out] psc

Arahkan ke struktur SCRIPT_CACHE yang mengidentifikasi cache skrip.

[in] pwGlyphs

Pointer ke buffer glyph yang diperoleh dari panggilan sebelumnya ke fungsi ScriptShape .

[in] cGlyphs

Jumlah glyph dalam buffer glyph.

[in] psva

Penunjuk ke array struktur SCRIPT_VISATTR yang menunjukkan atribut visual.

[in, out] psa

Penunjuk ke struktur SCRIPT_ANALYSIS . Pada input, struktur ini diperoleh dari panggilan sebelumnya ke ScriptItemize. Pada output, struktur ini berisi nilai yang diambil oleh ScriptPlace.

[out] piAdvance

Penunjuk ke array tempat fungsi ini mengambil informasi lebar lanjutan.

[out] pGoffset

Opsional. Pointer ke array struktur GOFFSET di mana fungsi ini mengambil offset x dan y dari menggabungkan glyph. Array ini harus memiliki panjang yang ditunjukkan oleh cGlyphs.

[out] pABC

Pointer ke struktur ABC di mana fungsi ini mengambil lebar ABC untuk seluruh eksekusi.

Mengembalikan nilai

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

Fungsi mengembalikan E_PENDING jika cache skrip yang ditentukan oleh parameter psc tidak berisi informasi yang cukup untuk menempatkan glyph, dan parameter hdc diatur ke NULL sehingga fungsi tidak dapat menyelesaikan proses penempatan. Aplikasi harus menyiapkan konteks perangkat yang benar untuk eksekusi, dan memanggil fungsi ini lagi dengan konteks perangkat yang sesuai dan dengan semua parameter lain yang sama.

Keterangan

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

Lebar ABC komposit untuk seluruh item mengidentifikasi berapa banyak glyph yang melapisi di sebelah kiri posisi awal dan di sebelah kanan panjang yang tersirat oleh jumlah lebar muka. Lebar total pergerakan garis persis abcA+abcB+abcC. Nilai abcA dan abcC dipertahankan sebagai proporsi tinggi sel yang diwakili dalam 8 bit dan dengan demikian kira-kira +/-1 persen. Lebar total yang diambil, yang merupakan jumlah nilai abcA+abcB+abcC yang ditunjukkan oleh piAdvance, akurat terhadap resolusi mesin pembentukan TrueType.

Semua array berada dalam urutan visual kecuali anggota fLogicalOrder diatur dalam struktur SCRIPT_ANALYSIS yang ditunjukkan oleh parameter psa .

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

Lihat juga

Menampilkan Teks dengan Uniscribe

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_VISATTR

ScriptItemize

ScriptPlaceOpenType

ScriptShape

Uniscribe

Fungsi Uniscribe