Bagikan melalui


Fungsi GetStringTypeW (stringapiset.h)

Mengambil informasi jenis karakter untuk karakter dalam string sumber Unicode yang ditentukan. Untuk setiap karakter dalam string, fungsi mengatur satu atau beberapa bit dalam elemen 16-bit yang sesuai dari array output. Setiap bit mengidentifikasi jenis karakter tertentu, misalnya, huruf, digit, atau tidak keduanya.

Hati Menggunakan fungsi GetStringTypeW salah dapat membahayakan keamanan aplikasi Anda. Untuk menghindari luapan buffer, aplikasi harus mengatur ukuran buffer output dengan benar. Untuk informasi keamanan selengkapnya, lihat Pertimbangan Keamanan: Antarmuka Pengguna Windows.

 

Sintaks

BOOL GetStringTypeW(
  [in]  DWORD                         dwInfoType,
  [in]  _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
  [in]  int                           cchSrc,
  [out] LPWORD                        lpCharType
);

Parameter

[in] dwInfoType

Bendera yang menentukan informasi jenis karakter yang akan diambil. Parameter ini dapat memiliki nilai berikut. Jenis karakter dibagi menjadi tingkat yang berbeda seperti yang dijelaskan di bagian Keterangan.

Bendera Makna
CT_CTYPE1
Mengambil informasi jenis karakter.
CT_CTYPE2
Ambil informasi tata letak dua arah.
CT_CTYPE3
Mengambil informasi pemrosesan teks.

[in] lpSrcStr

Arahkan ke string Unicode untuk mengambil jenis karakter. String diasumsikan null-dihentikan jika cchSrc diatur ke nilai negatif apa pun.

[in] cchSrc

Ukuran, dalam karakter, dari string yang ditunjukkan oleh lpSrcStr. Jika ukuran menyertakan karakter null yang mengakhiri, fungsi mengambil informasi jenis karakter untuk karakter tersebut. Jika aplikasi mengatur ukuran ke bilangan bulat negatif, string sumber diasumsikan dihentikan null dan fungsi menghitung ukuran secara otomatis dengan karakter tambahan untuk penghentian null.

[out] lpCharType

Penunjuk ke array nilai 16-bit. Panjang array ini harus cukup besar untuk menerima satu nilai 16-bit untuk setiap karakter dalam string sumber. Jika cchSrc bukan angka negatif, lpCharType harus menjadi array kata dengan elemen cchSrc . Jika cchSrc diatur ke angka negatif, lpCharType adalah array kata dengan elemen lpSrcStr + 1. Saat fungsi kembali, array ini berisi satu kata yang sesuai dengan setiap karakter dalam string sumber.

Mengembalikan nilai

Mengembalikan nilai bukan nol jika berhasil, atau 0 sebaliknya. Untuk mendapatkan informasi kesalahan yang diperluas, aplikasi dapat memanggil GetLastError, yang dapat mengembalikan salah satu kode kesalahan berikut:

  • ERROR_INVALID_FLAGS. Nilai yang diberikan untuk bendera tidak valid.
  • ERROR_INVALID_PARAMETER. Salah satu nilai parameter tidak valid.

Keterangan

Untuk gambaran umum penggunaan fungsi string, lihat String.

Nilai parameter lpSrcStr dan lpCharType tidak boleh sama. Jika sama, fungsi gagal dengan ERROR_INVALID_PARAMETER.

Parameter Lokal yang digunakan oleh fungsi GetStringTypeA yang sesuai tidak digunakan oleh fungsi ini. Karena perbedaan parameter, aplikasi tidak dapat secara otomatis memanggil versi ANSI atau Unicode yang tepat dari fungsi GetStringType* melalui penggunaan sakelar UNICODE #define. Aplikasi dapat menghindari batasan ini dengan menggunakan GetStringTypeEx, yang merupakan fungsi yang direkomendasikan.

Jenis Karakter yang Didukung

Bit jenis karakter dibagi menjadi beberapa tingkat. Informasi untuk satu tingkat dapat diambil dengan satu panggilan ke fungsi ini. Setiap tingkat dibatasi hingga 16 bit informasi sehingga fungsi pemetaan lainnya, yang dibatasi hingga 16 bit representasi per karakter, juga dapat mengembalikan informasi jenis karakter.

Ctype 1

Jenis-jenis ini mendukung fungsi pengetikan karakter ANSI C dan POSIX (LC_CTYPE). Bitwise-OR dari nilai-nilai ini diambil dalam array dalam buffer output saat dwInfoType diatur ke CT_CTYPE1. Untuk lokal DBCS, atribut jenis berlaku untuk karakter sempit dan karakter lebar. Karakter hiragana dan katakana Jepang, dan karakter ideograf kanji semuanya memiliki atribut C1_ALPHA.

Nama Nilai Makna
C1_UPPER 0x0001 Uppercase
C1_LOWER 0x0002 Lowercase
C1_DIGIT 0x0004 Digit desimal
C1_SPACE 0x0008 Karakter spasi
C1_PUNCT 0x0010 Tanda baca
C1_CNTRL 0x0020 Karakter kontrol
C1_BLANK 0x0040 Karakter kosong
C1_XDIGIT 0x0080 Digit heksadesimal
C1_ALPHA 0x0100 Setiap karakter linguistik: alfabet, suku kata, atau ideografis
C1_DEFINED 0x0200 Karakter yang ditentukan, tetapi bukan salah satu jenis C1_* lainnya
 

Jenis karakter berikut adalah konstanta atau dapat dihitung dari jenis dasar dan tidak perlu didukung oleh fungsi ini.

Jenis Deskripsi
Alfanumerik Karakter dan digit alfabet (C1_ALPHA dan C1_DIGIT)
Dicetak Karakter grafik dan kosong (semua jenis C1_* kecuali C1_CNTRL)
 

Ctype 2

Jenis-jenis ini mendukung tata letak teks Unicode yang tepat. Untuk lokal DBCS, jenis karakter berlaku untuk karakter sempit dan lebar. Atribut arah ditetapkan sehingga algoritma tata letak dua arah yang distandarkan oleh Unicode menghasilkan hasil yang akurat. Jenis-jenis ini saling eksklusif. Untuk informasi selengkapnya tentang penggunaan atribut ini, lihat Standar Unicode.

Nama Nilai Makna
Kuat
C2_LEFTTORIGHT 0x0001 Kiri ke kanan
C2_RIGHTTOLEFT 0x0002 Kanan ke kiri
Weak
C2_EUROPENUMBER 0x0003 Nomor Eropa, digit Eropa
C2_EUROPESEPARATOR 0x0004 Pemisah numerik Eropa
C2_EUROPETERMINATOR 0x0005 Terminator numerik Eropa
C2_ARABICNUMBER 0x0006 Nomor Arab
C2_COMMONSEPARATOR 0x0007 Pemisah numerik umum
netral
C2_BLOCKSEPARATOR 0x0008 Pemisah blok
C2_SEGMENTSEPARATOR 0x0009 Pemisah segmen
C2_WHITESPACE 0x000A Spasi kosong
C2_OTHERNEUTRAL 0x000B Netral lainnya
Tidak berlaku
C2_NOTAPPLICABLE 0x0000 Tidak ada arah implisit (misalnya, kode kontrol)
 

Ctype 3

Jenis-jenis ini dimaksudkan untuk menjadi tempat penampung untuk ekstensi ke jenis POSIX yang diperlukan untuk pemrosesan teks umum atau untuk fungsi pustaka C standar. Bitwise-OR dari nilai-nilai ini diambil ketika dwInfoType diatur ke CT_CTYPE3. Untuk lokal DBCS, atribut Ctype 3 berlaku untuk karakter sempit dan karakter lebar. Karakter hiragana dan katakana Jepang, dan karakter ideograf kanji semuanya memiliki atribut C3_ALPHA.

Nama Nilai Makna
C3_NONSPACING 0x0001 Tanda tidak terpakai
C3_DIACRITIC 0x0002 Tanda nonspacing diakritik
C3_VOWELMARK 0x0004 Tanda batalkan pengiriman vokal
C3_SYMBOL 0x0008 Simbol
C3_KATAKANA 0x0010 Karakter Katakana
C3_HIRAGANA 0x0020 Karakter Hiragana
C3_HALFWIDTH 0x0040 Karakter lebar setengah (sempit)
C3_FULLWIDTH 0x0080 Karakter lebar penuh (lebar)
C3_IDEOGRAPH 0x0100 Karakter ideografis
C3_KASHIDA 0x0200 Karakter kashida arab
C3_LEXICAL 0x0400 Tanda baca yang dihitung sebagai bagian dari kata (kashida, tanda hubung, indikator ordinal feminin/maskulin, tanda sama dengan, dan sebagainya)
C3_ALPHA 0x8000 Semua karakter linguistik (alfabet, suku kata, dan ideografis)
C3_HIGHSURROGATE 0x0800 Windows Vista: Unit kode pengganti tinggi
C3_LOWSURROGATE 0x1000 Windows Vista: Unit kode pengganti rendah
Tidak berlaku
C3_NOTAPPLICABLE 0x0000 Tidak berlaku
 

C3_HIGHSURROGATE dan C3_LOWSURROGATE hanya terdaftar untuk kelengkapan, dan tidak boleh diberikan ke fungsi ini. Mereka hanya relevan untuk Unicode.

Dimulai dengan Windows 8: GetStringTypeW dideklarasikan dalam Stringapiset.h. Sebelum Windows 8, itu dinyatakan di Winnls.h.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows 2000 Server [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header stringapiset.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

GetStringTypeA

GetStringTypeEx

Dukungan Bahasa Nasional

Fungsi Dukungan Bahasa Nasional