Metode IPrintTicketProvider::BindPrinter (prdrvcom.h)
Metode IPrintTicketProvider::BindPrinter mengikat printer atau mencetak antrean ke versi tertentu dari skema tiket cetak, yang memungkinkan driver inti untuk mengaitkan sekumpulan pengidentifikasi sumber daya seragam (URI) namespace privat dengan perangkat.
Sintaks
HRESULT BindPrinter(
[in] IN HANDLE hPrinter,
[in] IN INT version,
[out] OUT PSHIMOPTS pOptions,
[out] OUT DWORD *pDevModeFlags,
[out] OUT INT *cNamespaces,
[out] OUT BSTR **ppNamespaces
);
Parameter
[in] hPrinter
Handel cetak penampung, yang disediakan oleh driver inti. Penyedia tidak boleh menutup handel ini kapan saja karena klien penyedia bertanggung jawab untuk mengelola masa pakai handel ini. Penyedia dapat menyimpan handel cetak; semua panggilan di masa mendatang relatif terhadap printer yang terkait dengan handel ini.
[in] version
Nomor versi utama dari tiket cetak atau skema tiket cetak yang diminta manajer tiket cetak untuk didukung oleh penyedia plug-in OEM. Windows Vista hanya mendukung versi 1. Penyedia harus gagal setiap upaya untuk mengikat ke versi yang tidak didukung atau dikenali.
[out] pOptions
Penunjuk ke variabel yang menerima salah satu nilai enumerasi berikut:
PTSHIM_DEFAULT
Sistem menempatkan pengodean biner (BLOB - objek besar biner) dari bagian privat struktur DEVMODEW ke dalam tiket cetak dalam konversi DEVMODEW ke tiket cetak.
PTSHIM_NOSNAPSHOT
Sistem tidak akan menempatkan pengodean biner (BLOB) dari bagian privat struktur DEVMODEW ke dalam tiket cetak dalam konversi DEVMODEW ke tiket cetak. Gunakan nilai ini jika semua anggota DEVMODEW publik dan privat sepenuhnya diwakili dalam tiket cetak.
[out] pDevModeFlags
Penunjuk ke variabel berjenis DWORD yang menerima serangkaian bendera bit yang menunjukkan anggota DEVMODEW publik mana yang tidak boleh diproses oleh shim tiket cetak di tiket DEVMODEW-to-print atau mencetak konversi tiket-ke-DEVMODEW. Bendera bit yang ada dalam parameter ini menunjukkan bahwa printer tidak mendukung anggota DEVMODEW terkait atau penyedia menangani karakteristik DEVMODEW tersebut. Misalnya, jika DM_MEDIATYPE diatur dalam *pDevModeFlags, printer tidak mendukung beberapa jenis media, atau penyedia bertanggung jawab untuk mendukung beberapa jenis media. (Semua bendera bit DM_XXX didefinisikan dalam wingdi.h dan dijelaskan dalam Microsoft Windows SDK.) Secara default, shim tiket cetak menangani semua anggota yang diwakili dalam anggota dmFlags dari struktur DEVMODEW default.
[out] cNamespaces
Penunjuk ke variabel yang menerima jumlah URI namespace privat yang digunakan dalam plug-in. Angka ini menunjukkan jumlah string dalam array yang ditunjukkan oleh ppNamespaces.
[out] ppNamespaces
Penunjuk ke variabel yang menerima alamat elemen pertama dari array BSTR. Plug-in mengisi setiap posisi array dengan URI namespace. Untuk informasi selengkapnya tentang parameter ini, lihat bagian Keterangan berikut.
Nilai kembali
IPrintTicketProvider::BindPrinter harus mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
S_OK | Operasi berhasil. |
E_VERSION_NOT_SUPPORTED | Plug-in tidak mendukung versi skema cetak yang ditentukan dalam parameter versi . |
Keterangan
Pengikatan ke perangkat memungkinkan penyedia untuk menyimpan objek tertentu dan menangani yang diperlukan untuk layanan tiket cetak atau kemampuan perangkat di masa mendatang pada perangkat tersebut. Misalnya, handel printer dalam parameter hPrinter dapat di-cache. Metode IPrintTicketProvider::BindPrinter dijamin hanya dipanggil sekali.
Driver bertanggung jawab untuk mengalokasikan memori untuk array yang diacu oleh parameter ppNamespaces dan untuk string URI namespace. Array harus dialokasikan dengan menggunakan fungsi CoTaskMemAlloc ; string namespace harus dialokasikan dengan menggunakan fungsi SysAllocString . Kedua fungsi dijelaskan dalam dokumentasi Windows SDK. Array yang ditunjukkan oleh parameter ppNamespaces tidak diperlukan untuk memuat namespace untuk Kata Kunci Skema Cetak atau Kerangka Kerja Skema Cetak.
Objek IPrintTicketProvider tidak harus dapat mengikat lebih dari sekali. Manajer tiket cetak selalu menggunakan instans objek IPrintTicketProvider yang berbeda untuk mengikat ke perangkat yang berbeda. Semua sumber daya yang diperoleh dalam panggilan yang berhasil ke IPrintTicketProvider::BindPrinter harus dirilis ketika jumlah referensi objek IPrintTicketProvider adalah nol. Perhatikan bahwa penyedia tidak boleh menutup handel yang diteruskan ke panggilan ke BindPrinter. Manajer tiket cetak mungkin membuat beberapa penyedia untuk perangkat yang sama, dalam versi yang berbeda, jika beberapa versi didukung.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | prdrvcom.h (termasuk Prdrvcom.h) |
Lihat juga
IPrintTicketProvider::ConvertDevModeToPrintTicket