Fungsi DrvConvertDevMode (winddiui.h)
Fungsi DrvConvertDevMode antarmuka printer dll mengonversi struktur DEVMODEW printer dari satu versi ke versi lainnya.
Sintaks
BOOL DrvConvertDevMode(
[in] LPTSTR pPrinterName,
[in] PDEVMODE pdmIn,
[out] PDEVMODE pdmOut,
[in, out] PLONG pcbNeeded,
[in] DWORD fMode
);
Parameter
[in] pPrinterName
Penunjuk yang disediakan penelepon ke string nama printer. Untuk informasi selengkapnya tentang parameter ini, lihat bagian Keterangan berikut ini.
[in] pdmIn
Penunjuk yang disediakan penelepon ke struktur DEVMODEW input. Jika fMode CDM_DRIVER_DEFAULT, pointer ini adalah NULL.
[out] pdmOut
Penunjuk yang disediakan penelepon ke buffer untuk menerima struktur DEVMODEW output. Jika fMode CDM_CONVERT buffer berisi, pada input, struktur DEVMODEW yang valid menunjukkan versi driver target.
[in, out] pcbNeeded
Penunjuk yang disediakan penelepon ke ukuran, dalam byte, dari buffer yang diacu oleh pdmOut. Pada output, DLL antarmuka printer harus menimpa nilai ukuran yang diterima dengan ukuran aktual struktur DEVMODEW yang dikonversi. Jika buffer yang diterima terlalu kecil, DLL antarmuka printer harus menimpa nilai ukuran yang diterima dengan ukuran buffer yang diperlukan.
[in] fMode
Bendera bit yang disediakan penelepon menunjukkan jenis operasi yang akan dilakukan. Ini bisa menjadi salah satu bendera berikut:
CDM_CONVERT
Fungsi harus mengonversi konten struktur DEVMODEW input (ditujukkan oleh pdmIn) menjadi struktur DEVMODEW baru, dan menempatkan hasilnya dalam struktur DEVMODEW yang diarahkan oleh pdmOut. Konten awal dari struktur DEVMODEW output yang diterima (diarahkan oleh pdmOut) harus digunakan untuk menentukan versi output.
CDM_CONVERT351
Fungsi harus mengonversi konten struktur DEVMODEW input (ditunjukkan oleh pdmIn), membuat struktur DEVMODEW output yang kompatibel dengan Windows NT 3.51, dan menempatkan hasilnya dalam struktur DEVMODEW yang ditunjukkan oleh pdmOut.
Jika driver tidak mendukung struktur DEVMODEW untuk Windows NT 3.51, fungsi harus mengonversi input DEVMODEW ke versi saat ini.
CDM_DRIVER_DEFAULT
Fungsi harus menyalin versi saat ini dari struktur DEVMODEW default-nya ke buffer yang diarahkan oleh pdmOut.
Nilai kembali
Jika operasi berhasil, fungsi harus mengembalikan TRUE; jika tidak, setLastError harus memanggil SetLastError untuk mengatur kode kesalahan, dan mengembalikan FALSE.
Keterangan
Dalam lingkungan klien/server, klien mungkin menjalankan satu versi sistem operasi atau driver printer saat server (penampung) menjalankan yang lain, yang berarti definisi struktur DEVMODEW printer mungkin tidak konsisten antara klien dan server. Fungsi DrvConvertDevMode harus mampu melakukan konversi dari satu versi struktur DEVMODEW printer ke versi lainnya.
Saat mengonversi dari satu versi DEVMODEW ke versi lain, anggota DEVMODEW publik dan privat harus disertakan.
Nama printer yang ditujukan oleh pPrinterName dapat digunakan sebagai argumen input ke fungsi OpenPrinter (dijelaskan dalam dokumentasi Microsoft Windows SDK), yang dapat dipanggil untuk mendapatkan nilai default tersimpan saat bendera CDM_DRIVER_DEFAULT diterima. Perhatikan bahwa string nama printer tidak boleh dimodifikasi dengan cara apa pun sebelum panggilan ke OpenPrinter. Selain itu, panggilan ke OpenPrinter harus berada di utas yang sama seperti yang digunakan untuk memanggil DrvConvertDevMode.
Fungsi harus memverifikasi bahwa pdmIn dan pdmOut (jika berlaku) menunjuk ke struktur DEVMODEW yang valid. Jika tidak, fungsi harus memanggil SetLastError(ERROR_INVALID_PARAMETER) dan mengembalikan FALSE. Jika ukuran DEVMODEW output yang ditentukan oleh pcbNeeded terlalu kecil, driver harus menimpa nilai ukuran yang disediakan oleh pcbNeeded dengan ukuran buffer yang diperlukan, panggil SetLastError(ERROR_INSUFFICIENT_BUFFER), dan kembaliKAN FALSE.
Fungsi DrvConvertDevMode berjalan dalam konteks penampung dan karenanya tidak boleh menampilkan antarmuka pengguna.
Ketika DrvConvertDevMode dipanggil dengan penunjuk struktur NULL DEVMODEW dalam parameter pdmOut untuk mendapatkan ukuran buffer, driver diharapkan untuk mengatur kesalahan terakhir ke ERROR_INSUFFICIENT_BUFFER. Jika kesalahan terakhir tidak diatur ke nilai ini, penampung mengasumsikan kesalahan umum.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | winddiui.h (termasuk Winddiui.h) |