Bagikan melalui


Fungsi DeviceCapabilitiesW (wingdi.h)

Fungsi DeviceCapabilities mengambil kemampuan driver printer.

Sintaks

int DeviceCapabilitiesW(
  [in]  LPCWSTR        pDevice,
  [in]  LPCWSTR        pPort,
  [in]  WORD           fwCapability,
  [out] LPWSTR         pOutput,
  [in]  const DEVMODEW *pDevMode
);

Parameter

[in] pDevice

Penunjuk ke string yang dihentikan null yang berisi nama printer. Perhatikan bahwa ini adalah nama pencetak, bukan dari pengandar pencetak.

[in] pPort

Penunjuk ke string yang dihentikan null yang berisi nama port tempat perangkat tersambung, seperti LPT1.

[in] fwCapability

Kemampuan yang akan dikueri. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
DC_BINNAMES
Mengambil nama tempat sampah kertas pencetak. Buffer pOutput menerima array buffer string. Setiap buffer string memiliki panjang 24 karakter dan berisi nama tempat sampah kertas. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. String nama dihentikan null kecuali namanya panjangnya 24 karakter. Jika pOutput adalah NULL, nilai yang dikembalikan adalah jumlah entri bin yang diperlukan.
DC_BINS
Mengambil daftar tempat sampah kertas yang tersedia. Buffer pOutput menerima array nilai WORD yang menunjukkan sumber kertas yang tersedia untuk printer. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. Untuk daftar nilai array yang mungkin, lihat deskripsi anggota dmDefaultSource dari struktur DEVMODE . Jika pOutput adalah NULL, nilai yang dikembalikan menunjukkan jumlah entri yang diperlukan dalam array.
DC_COLLATE
Jika printer mendukung kolaterasi, nilai yang dikembalikan adalah 1; jika tidak, nilai yang dikembalikan adalah nol. Parameter pOutput tidak digunakan.
DC_COLORDEVICE
Jika printer mendukung pencetakan warna, nilai yang dikembalikan adalah 1; jika tidak, nilai yang dikembalikan adalah nol. Parameter pOutput tidak digunakan.
DC_COPIES
Mengembalikan jumlah salinan yang dapat dicetak perangkat.
DC_DRIVER
Mengembalikan nomor versi pengandar pencetak.
DC_DUPLEX
Jika printer mendukung pencetakan dupleks, nilai yang dikembalikan adalah 1; jika tidak, nilai yang dikembalikan adalah nol. Parameter pOutput tidak digunakan.
DC_ENUMRESOLUTIONS
Mengambil daftar resolusi yang didukung oleh printer. Buffer pOutput menerima array nilai LONG . Untuk setiap resolusi yang didukung, array berisi sepasang nilai LONG yang menentukan dimensi resolusi x dan y, dalam titik per inci. Nilai yang dikembalikan menunjukkan jumlah resolusi yang didukung. Jika pOutput adalah NULL, nilai yang dikembalikan menunjukkan jumlah resolusi yang didukung.
DC_EXTRA
Mengembalikan jumlah byte yang diperlukan untuk bagian khusus perangkat dari struktur DEVMODE untuk driver printer.
DC_FIELDS
Mengembalikan anggota dmFields dari struktur DEVMODE driver printer. Anggota dmFields menunjukkan anggota mana dalam bagian struktur yang independen perangkat didukung oleh driver printer.
DC_FILEDEPENDENCIES
Mengambil nama file tambahan apa pun yang perlu dimuat ketika driver diinstal. Buffer pOutput menerima array buffer string. Setiap buffer string memiliki panjang 64 karakter dan berisi nama file. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. String nama dihentikan null kecuali namanya panjangnya 64 karakter. Jika pOutputadalah NULL, nilai yang dikembalikan adalah jumlah file.
DC_MAXEXTENT
Mengembalikan ukuran kertas maksimum yang dapat ditentukan oleh anggota dmPaperLength dan dmPaperWidth dari struktur DEVMODE driver printer. LOWORD dari nilai yang dikembalikan berisi nilai dmPaperWidth maksimum, dan HIWORD berisi nilai dmPaperLength maksimum.
DC_MEDIAREADY
Mengambil nama formulir kertas yang saat ini tersedia untuk digunakan. Buffer pOutput menerima array buffer string. Setiap buffer string memiliki panjang 64 karakter dan berisi nama formulir kertas. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. String nama dihentikan null kecuali namanya panjangnya 64 karakter. Jika pOutputadalah NULL, nilai yang dikembalikan adalah jumlah formulir kertas.
DC_MEDIATYPENAMES
Mengambil nama jenis media yang didukung. Buffer pOutput menerima array buffer string. Setiap buffer string memiliki panjang 64 karakter dan berisi nama jenis media yang didukung. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. String dihentikan null kecuali namanya panjangnya 64 karakter. Jika pOutput adalah NULL, nilai yang dikembalikan adalah jumlah nama jenis media yang diperlukan.
DC_MEDIATYPES
Mengambil daftar jenis media yang didukung. Buffer pOutput menerima array nilai DWORD yang menunjukkan jenis media yang didukung. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. Untuk daftar kemungkinan nilai array, lihat deskripsi anggota dmMediaType dari struktur DEVMODE . Jika pOutput adalah NULL, nilai yang dikembalikan menunjukkan jumlah entri yang diperlukan dalam array.
DC_MINEXTENT
Mengembalikan ukuran kertas minimum yang dapat ditentukan oleh anggota dmPaperLength dan dmPaperWidth dari struktur DEVMODE driver printer. LOWORD dari nilai yang dikembalikan berisi nilai dmPaperWidth minimum, dan HIWORD berisi nilai dmPaperLength minimum.
DC_ORIENTATION
Mengembalikan hubungan antara orientasi potret dan lanskap untuk perangkat, dalam hal jumlah derajat orientasi potret diputar berlawanan arah jaring untuk menghasilkan orientasi lanskap. Nilai pengembalian dapat berupa salah satu dari nilai berikut:
0
Tidak ada orientasi lanskap.
90
Potret diputar 90 derajat untuk menghasilkan lanskap.
270
Potret diputar 270 derajat untuk menghasilkan lanskap.
DC_NUP
Mengambil array bilangan bulat yang menunjukkan bahwa kemampuan printer untuk mencetak beberapa halaman dokumen per halaman yang dicetak. Buffer pOutput menerima array nilai DWORD . Setiap nilai mewakili jumlah halaman dokumen yang didukung per halaman yang dicetak. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. Jika pOutput adalah NULL, nilai yang dikembalikan menunjukkan jumlah entri yang diperlukan dalam array.
DC_PAPERNAMES
Mengambil daftar nama kertas yang didukung (misalnya, Letter atau Legal). Buffer pOutput menerima array buffer string. Setiap buffer string memiliki panjang 64 karakter dan berisi nama formulir kertas. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. String nama dihentikan null kecuali namanya 64 karakter. Jika pOutputNULL, nilai yang dikembalikan adalah jumlah formulir kertas.
DC_PAPERS
Mengambil daftar ukuran kertas yang didukung. Buffer pOutput menerima array nilai WORD yang menunjukkan ukuran kertas yang tersedia untuk printer. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. Untuk daftar nilai array yang mungkin, lihat deskripsi anggota dmPaperSize dari struktur DEVMODE . Jika pOutputADALAH NULL, nilai yang dikembalikan menunjukkan jumlah entri yang diperlukan dalam array.
DC_PAPERSIZE
Mengambil dimensi, dalam sepuluh milimeter, dari setiap ukuran kertas yang didukung. Buffer pOutput menerima array struktur POINT . Setiap struktur berisi lebar (x-dimensi) dan panjang (dimensi y) dari ukuran kertas seolah-olah kertas berada dalam orientasi DMORIENT_PORTRAIT . Nilai yang dikembalikan menunjukkan jumlah entri dalam array.
DC_PERSONALITY
Mengambil daftar bahasa deskripsi printer yang didukung oleh pencetak. Buffer pOutput menerima array buffer string. Setiap buffer memiliki panjang 32 karakter dan berisi nama bahasa deskripsi printer. Nilai yang dikembalikan menunjukkan jumlah entri dalam array. String nama dihentikan null kecuali namanya panjangnya 32 karakter. Jika pOutputNULL, nilai yang dikembalikan menunjukkan jumlah entri array yang diperlukan.
DC_PRINTERMEM
Nilai yang dikembalikan adalah jumlah memori printer yang tersedia, dalam kilobyte. Parameter pOutput tidak digunakan.
DC_PRINTRATE
Nilai yang dikembalikan menunjukkan laju cetak printer. Nilai yang dikembalikan untuk DC_PRINTRATEUNIT menunjukkan unit nilai DC_PRINTRATE . Parameter pOutput tidak digunakan.
DC_PRINTRATEPPM
Nilai yang dikembalikan menunjukkan laju cetak printer, dalam halaman per menit. Parameter pOutput tidak digunakan.
DC_PRINTRATEUNIT
Nilai yang dikembalikan adalah salah satu nilai berikut yang menunjukkan unit laju cetak untuk nilai yang dikembalikan untuk bendera DC_PRINTRATE . Parameter pOutput tidak digunakan.
PRINTRATEUNIT_CPS
Karakter per detik.
PRINTRATEUNIT_IPM
Inci per menit.
PRINTRATEUNIT_LPM
Garis per menit.
PRINTRATEUNIT_PPM
Halaman per menit.
DC_SIZE
Mengembalikan anggota dmSize dari struktur DEVMODE driver printer.
DC_STAPLE
Jika printer mendukung stapling, nilai yang dikembalikan adalah nilai bukan nol; jika tidak, nilai yang dikembalikan adalah nol. Parameter pOutput tidak digunakan.
DC_TRUETYPE
Mengambil kemampuan driver untuk menggunakan font TrueType. Untuk DC_TRUETYPE, parameter pOutput harus NULL. Nilai yang dikembalikan dapat berupa satu atau beberapa hal berikut:
DCTT_BITMAP
Perangkat dapat mencetak font TrueType sebagai grafik.
DCTT_DOWNLOAD
Perangkat dapat mengunduh font TrueType.
DCTT_SUBDEV
Perangkat dapat mengganti font perangkat untuk font TrueType.
DC_VERSION
Mengembalikan versi spesifikasi yang sesuai dengan driver printer.

[out] pOutput

Penunjuk ke array. Format array tergantung pada pengaturan parameter fwCapability . Lihat setiap kemampuan di atas untuk mengetahui apa yang dikembalikan jika pOutput adalah NULL.

[in] pDevMode

Penunjuk ke struktur DEVMODE . Jika parameter ini NULL, DeviceCapabilities mengambil nilai inisialisasi default saat ini untuk driver printer yang ditentukan. Jika tidak, fungsi mengambil nilai yang terkandung dalam struktur tempat pDevMode menunjuk.

Mengembalikan nilai

Jika fungsi berhasil, nilai pengembalian tergantung pada pengaturan parameter fwCapability . Nilai pengembalian nol umumnya menunjukkan bahwa, sementara fungsi berhasil diselesaikan, ada beberapa jenis kegagalan, seperti kemampuan yang tidak didukung. Untuk detail selengkapnya, lihat deskripsi untuk nilai fwCapability .

Jika fungsi mengembalikan -1, ini mungkin berarti bahwa kemampuan tidak didukung atau ada kegagalan fungsi umum.

Keterangan

Catatan Ini adalah fungsi pemblokiran atau sinkron dan mungkin tidak segera kembali. Seberapa cepat fungsi ini kembali tergantung pada faktor run-time seperti status jaringan, konfigurasi server cetak, dan implementasi driver printer—faktor-faktor yang sulit diprediksi saat menulis aplikasi. Memanggil fungsi ini dari utas yang mengelola interaksi dengan antarmuka pengguna dapat membuat aplikasi tampak tidak responsif.
 
Struktur DEVMODE yang diacu oleh parameter pDevMode dapat diperoleh dengan memanggil fungsi DocumentProperties .

Jika driver printer mendukung kemampuan perangkat kustom, driver harus memanggil fungsi SetPrinterData untuk setiap kemampuan kustom. Fungsi SetPrinterData menambahkan data printer yang sesuai ke sistem cetak, yang memungkinkan aplikasi 32-bit mengakses kemampuan kustom pada penginstalan Windows 64-bit.

Untuk setiap kemampuan kustom, Anda harus terlebih dahulu menambahkan data printer yang menjelaskan jenis kemampuan. Untuk melakukan ini, saat Anda memanggil SetPrinterData, atur string pValueName ke CustomDeviceCapabilityType_Xxx, di mana "Xxx" adalah representasi heksadesimal dari kemampuan. Misalnya, Anda mungkin memiliki "CustomDeviceCapabilityType_1234". Data registri yang Anda tetapkan harus berjenis REG_DWORD , dan Anda harus mengatur nilainya ke salah satu hal berikut ini:

  • 0, jika kemampuan kustom adalah DWORD
  • 1, jika kemampuan kustom adalah buffer byte
  • 2, jika kemampuan kustom adalah array item
Jika kemampuan kustom adalah array item, Anda harus memanggil SetPinterData untuk kedua kalinya untuk memberikan informasi tentang ukuran item dalam array. Untuk melakukan ini, ketika Anda memanggil SetPinterData, string pValueName yang Anda berikan harus "CustomDeviceCapabilitySize_Xxx" di mana Xxx adalah representasi heksadesimal dari kemampuan. Misalnya, Anda mungkin memiliki "CustomDeviceCapabilitySize_1234". Data registri yang Anda tetapkan harus berjenis REG_DWORD , dan Anda harus mengatur nilainya ke ukuran dalam byte item dalam array.

Catatan

Header wingdi.h mendefinisikan DeviceCapabilities sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

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 wingdi.h (sertakan Windows.h)
Pustaka WinSpool.lib
DLL WinSpool.drv

Lihat juga

DEVMODE

DOCINFO

DocumentProperties

GetDeviceCaps

GetProcAddress

LoadLibrary

TITIK

Cetak Fungsi API Spooler

Pencetakan

StartDoc