Fungsi GetPrinter
Fungsi GetPrinter mengambil informasi tentang printer tertentu.
Sintaks
BOOL GetPrinter(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_Out_ LPBYTE pPrinter,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
Parameter
-
hPrinter [in]
-
Handel ke printer yang fungsinya mengambil informasi. Gunakan fungsi OpenPrinter atau AddPrinter untuk mengambil handel printer.
-
Level [in]
-
Tingkat atau jenis struktur yang disimpan fungsi ke dalam buffer yang ditujukkan oleh pPrinter.
Nilai ini bisa 1, 2, 3, 4, 5, 6, 7, 8 atau 9.
-
pPrinter [keluar]
-
Penunjuk ke buffer yang menerima struktur yang berisi informasi tentang printer yang ditentukan. Buffer harus cukup besar untuk menerima struktur dan string apa pun atau data lain yang menjadi titik anggota struktur. Jika buffer terlalu kecil, parameter pcbNeeded mengembalikan ukuran buffer yang diperlukan.
Jenis struktur ditentukan oleh nilai Level.
Tingkat Struktur - 1
Struktur PRINTER_INFO_1 yang berisi informasi printer umum. - 2
Struktur PRINTER_INFO_2 yang berisi informasi terperinci tentang printer. - 3
Struktur PRINTER_INFO_3 yang berisi informasi keamanan printer. - 4
Struktur PRINTER_INFO_4 yang berisi informasi printer minimal, termasuk nama printer, nama server, dan apakah printer jarak jauh atau lokal. - 5
Struktur PRINTER_INFO_5 yang berisi informasi printer seperti atribut printer dan pengaturan waktu habis. - 6
Struktur PRINTER_INFO_6 yang menentukan nilai status printer. - 7
Struktur PRINTER_INFO_7 yang menunjukkan apakah printer diterbitkan dalam layanan direktori. - 8
Struktur PRINTER_INFO_8 yang menentukan pengaturan printer default global. - 9
Struktur PRINTER_INFO_9 yang menentukan pengaturan printer default per pengguna. -
cbBuf [in]
-
Ukuran, dalam byte, dari buffer yang ditujukkan oleh pPrinter.
-
pcbNeeded [out]
-
Penunjuk ke variabel yang diatur fungsi ke ukuran, dalam byte, dari informasi printer. Jika cbBuf lebih kecil dari nilai ini, GetPrinter gagal, dan nilai mewakili ukuran buffer yang diperlukan. Jika cbBuf sama dengan atau lebih besar dari nilai ini, GetPrinter berhasil, dan nilai mewakili jumlah byte yang disimpan dalam buffer.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol.
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 faktor implementasi driver printer yang sulit diprediksi saat menulis aplikasi. Memanggil fungsi ini dari utas yang mengelola interaksi dengan antarmuka pengguna dapat membuat aplikasi tampak tidak responsif.
Anggota pDevMode dalam struktur PRINTER_INFO_2, PRINTER_INFO_8, dan PRINTER_INFO_9 dapat berupa NULL. Ketika ini terjadi, pencetak tidak dapat digunakan sampai pengandar berhasil diinstal ulang.
Untuk struktur PRINTER_INFO_2 dan PRINTER_INFO_3 yang berisi penunjuk ke deskriptor keamanan, fungsi hanya mengambil komponen deskriptor keamanan yang memiliki izin untuk dibaca oleh penelepon. Untuk mengambil komponen deskriptor keamanan tertentu, Anda harus menentukan hak akses yang diperlukan saat Anda memanggil fungsi OpenPrinter untuk mengambil handel ke printer. Tabel berikut menunjukkan hak akses yang diperlukan untuk membaca berbagai komponen pendeskripsi keamanan.
Akses Ke Kanan | Komponen Deskriptor Keamanan |
---|---|
READ_CONTROL |
Pemilik Grup utama Daftar kontrol akses diskresi (DACL) |
ACCESS_SYSTEM_SECURITY |
Daftar kontrol akses sistem (SACL) |
Jika Anda menentukan tingkat 7, anggota dwActionPRINTER_INFO_7 mengembalikan salah satu nilai berikut untuk menunjukkan apakah printer diterbitkan dalam layanan direktori.
nilai dwAction | Makna |
---|---|
DSPRINT_PUBLISH | Pencetak diterbitkan. Anggota pszObjectGUID berisi GUID objek antrean cetak layanan direktori yang terkait dengan printer. |
DSPRINT_UNPUBLISH | Pencetak tidak diterbitkan. |
DSPRINT_PENDING | Menunjukkan bahwa sistem sedang mencoba menyelesaikan operasi penerbitan atau pembukaan penerbitan. Jika panggilan SetPrinter gagal menerbitkan atau membatalkan penerbitan printer, sistem melakukan upaya lebih lanjut untuk menyelesaikan operasi di latar belakang. |
Dimulai dengan Windows Vista, data printer yang dikembalikan oleh GetPrinter diambil dari cache lokal ketika hPrinter mengacu pada printer yang dihosting oleh server cetak dan setidaknya ada satu koneksi terbuka ke server cetak. Dalam semua konfigurasi lainnya, data printer dikueri dari server cetak.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Header |
|
Pustaka |
|
DLL |
|
Nama Unicode dan ANSI |
GetPrinterW (Unicode) dan GetPrinterA (ANSI) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk