Bagikan melalui


Fungsi ScriptPlaceOpenType (usp10.h)

Menghasilkan glyph dan atribut visual untuk eksekusi Unicode dengan informasi OpenType dari output ScriptShapeOpenType.

Sintaks

HRESULT ScriptPlaceOpenType(
  [in, optional]  HDC                    hdc,
  [in, out]       SCRIPT_CACHE           *psc,
  [in, out]       SCRIPT_ANALYSIS        *psa,
  [in]            OPENTYPE_TAG           tagScript,
  [in]            OPENTYPE_TAG           tagLangSys,
  [in, optional]  int                    *rcRangeChars,
  [in, optional]  TEXTRANGE_PROPERTIES   **rpRangeProperties,
  [in]            int                    cRanges,
  [in]            const WCHAR            *pwcChars,
  [in]            WORD                   *pwLogClust,
  [in]            SCRIPT_CHARPROP        *pCharProps,
  [in]            int                    cChars,
  [in]            const WORD             *pwGlyphs,
  [in]            const SCRIPT_GLYPHPROP *pGlyphProps,
  [in]            int                    cGlyphs,
  [out]           int                    *piAdvance,
  [out]           GOFFSET                *pGoffset,
  [out, optional] ABC                    *pABC
);

Parameter

[in, optional] hdc

Menangani konteks perangkat. Untuk informasi selengkapnya, lihat Penembolokan.

[in, out] psc

Arahkan ke struktur SCRIPT_CACHE yang mengidentifikasi cache skrip.

[in, out] psa

Penunjuk ke struktur SCRIPT_ANALYSIS yang diperoleh dari panggilan sebelumnya ke ScriptItemizeOpenType. Struktur ini mengidentifikasi mesin pembentukan yang mengatur daftar glyph yang dihasilkan dan lebar terkait, dan offset penempatan x dan y.

Atau, aplikasi dapat mengatur parameter ini ke NULL untuk menerima hasil yang tidak difilter.

[in] tagScript

Struktur OPENTYPE_TAG yang berisi tag skrip OpenType untuk digunakan sistem penulisan.

[in] tagLangSys

Struktur OPENTYPE_TAG yang berisi tag bahasa OpenType untuk sistem penulisan.

[in, optional] rcRangeChars

Array jumlah karakter di setiap rentang. Jumlah anggota ditunjukkan dalam parameter cRanges . Total nilai harus sama dengan nilai cChars.

[in, optional] rpRangeProperties

Array struktur TEXTRANGE_PROPERTIES menentukan properti untuk setiap rentang. Jumlah elemen ditentukan oleh parameter cRanges .

[in] cRanges

Jumlah rentang fitur OpenType.

[in] pwcChars

Penunjuk ke array karakter Unicode yang berisi eksekusi. Jumlah elemen ditentukan oleh parameter cRanges .

[in] pwLogClust

Penunjuk ke array informasi kluster logis. Setiap elemen dalam array sesuai dengan karakter dalam array yang ditentukan oleh pwcChars. Nilai setiap elemen adalah offset dari glyph pertama dalam eksekusi ke glyph pertama dalam kluster yang berisi karakter yang sesuai. Perhatikan bahwa, ketika anggota fRTL struktur SCRIPT_ANALYSIS diatur ke TRUE, elemen dalam pwLogClust berkurang saat array dibaca.

[in] pCharProps

Penunjuk ke array nilai properti karakter dalam eksekusi Unicode.

[in] cChars

Jumlah karakter dalam eksekusi Unicode.

[in] pwGlyphs

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

[in] pGlyphProps

Arahkan ke array atribut untuk masing-masing glyph yang akan diambil. Jumlah nilai sama dengan nilai cGlyph. Karena ada satu properti glyph per glyph, parameter ini memiliki jumlah elemen yang ditunjukkan oleh cGlyphs.

[in] cGlyphs

Jumlah glyph dalam buffer array glyph.

[out] piAdvance

Penunjuk ke array, panjang yang ditunjukkan oleh cGlyphs, di mana fungsi ini mengambil informasi lebar lanjutan .

[out] pGoffset

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

[out, optional] pABC

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

Menampilkan nilai

Mengembalikan 0 jika berhasil. Fungsi mengembalikan nilai HRESULT bukan nol jika tidak berhasil. Dalam semua kasus kesalahan, nilai output tidak terdefinisi. Aplikasi dapat menguji nilai pengembalian dengan makro BERHASIL dan GAGAL .

Fungsi mengembalikan E_OUTOFMEMORY jika panjang buffer output yang ditunjukkan oleh cGlyphs terlalu kecil. Aplikasi dapat mencoba memanggil lagi dengan buffer yang lebih besar.

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

Keterangan

Fungsi ini lebih disukai daripada fungsi ScriptPlace yang lebih lama. Beberapa keuntungan dari ScriptPlaceOpenType meliputi yang berikut ini:

  • Parameter secara langsung sesuai dengan tag OpenType dalam tabel tata letak font.
  • Parameter menentukan fitur yang diterapkan pada setiap karakter. Input dibagi menjadi rentang, dan setiap rentang memiliki properti OpenType yang terkait dengannya.
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

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header usp10.h
Pustaka Usp10.lib
DLL Usp10.dll
Redistribusi Usp10.dll versi 1.600 atau lebih tinggi di Windows XP

Lihat juga

Menampilkan Teks dengan Uniscribe

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

Tempat Skrip

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Fungsi Uniscribe