Fungsi DocumentEvent
Fungsi DocumentEvent adalah penanganan aktivitas untuk peristiwa yang terkait dengan pencetakan dokumen.
Sintaks
HRESULT DocumentEvent(
_In_ HANDLE hPrinter,
_In_ HDC hdc,
INT iEsc,
ULONG cbIn,
_In_ PVOID pvIn,
ULONG cbOut,
_Out_ PVOID pvOut
);
Parameter
-
hPrinter [in]
-
Handel ke objek printer. Gunakan fungsi OpenPrinter atau AddPrinter untuk mengambil handel printer.
-
hdc [in]
-
Handel konteks perangkat yang dihasilkan oleh panggilan CreateDC. Ini nol jika iEsc diatur ke DOCUMENTEVENT_CREATEDCPRE. Untuk batasan pencetakan dari aplikasi 32-bit pada versi 64-bit Windows, lihat Keterangan.
-
iEsc
-
Kode escape yang mengidentifikasi peristiwa yang akan ditangani. Parameter ini bisa menjadi salah satu konstanta bilangan bulat berikut.
Terus-menerus Kejadian - DOCUMENTEVENT_ABORTDOC
GDI akan memproses panggilan ke fungsi AbortDoc-nya . - DOCUMENTEVENT_CREATEDCPOST
GDI baru saja memproses panggilan ke fungsi CreateDC atau CreateIC-nya .
Kode escape ini tidak boleh digunakan kecuali ada panggilan sebelumnya ke DocumentEvent dengan iEsc diatur ke DOCUMENTEVENT_CREATEDCPRE.- DOCUMENTEVENT_CREATEDCPRE
GDI akan memproses panggilan ke fungsi CreateDC atau CreateIC-nya . - DOCUMENTEVENT_DELETEDC
GDI akan memproses panggilan ke fungsi DeleteDC-nya . - DOCUMENTEVENT_ENDDOCPOST
GDI baru saja memproses panggilan ke fungsi EndDoc-nya . - DOCUMENTEVENT_ENDDOCPRE atau DOCUMENTEVENT_ENDDOC
GDI akan memproses panggilan ke fungsi EndDoc-nya . - DOCUMENTEVENT_ENDPAGE
GDI akan memproses panggilan ke fungsi EndPage-nya . - DOCUMENTEVENT_ESCAPE
GDI akan memproses panggilan ke fungsi ExtEscape-nya . - DOCUMENTEVENT_QUERYFILTER
Peristiwa DOCUMENTEVENT_QUERYFILTER mewakili kesempatan bagi penampung untuk mengkueri driver untuk daftar peristiwa XXX DOCUMENTEVENT_ yang akan direspons driver. Kejadian ini dikeluarkan tepat sebelum panggilan ke DocumentEvent yang melewati peristiwa DOCUMENTEVENT_CREATEDCPRE. - DOCUMENTEVENT_RESETDCPOST
GDI baru saja memproses panggilan ke fungsi ResetDC-nya .
Kode escape ini tidak boleh digunakan kecuali telah ada panggilan sebelumnya ke DocumentEvent dengan iEsc diatur ke DOCUMENTEVENT_RESETDCPRE.- DOCUMENTEVENT_RESETDCPRE
GDI akan memproses panggilan ke fungsi ResetDC-nya . - DOCUMENTEVENT_STARTDOCPOST
GDI baru saja memproses panggilan ke fungsi StartDoc-nya . - DOCUMENTEVENT_STARTDOCPRE atau DOCUMENTEVENT_STARTDOC
GDI akan memproses panggilan ke fungsi StartDoc-nya . - DOCUMENTEVENT_STARTPAGE
GDI akan memproses panggilan ke fungsi StartPage-nya . -
cbIn
-
Ukuran, dalam byte, dari buffer yang ditujukkan oleh pvIn.
-
pvIn [in]
-
Penunjuk ke buffer. Apa yang dikandung buffer bergantung pada nilai iEsc, seperti yang diperlihatkan dalam tabel berikut.
Terus-menerus Isi pvin - DOCUMENTEVENT_ABORTDOC
Tidak digunakan. - DOCUMENTEVENT_CREATEDCPOST
pvIn berisi alamat penunjuk ke struktur DEVMODE yang ditentukan dalam parameter pvOut dalam panggilan sebelumnya ke fungsi ini, yang parameter iEscnya diatur ke DOCUMENTEVENT_CREATEDCPRE. - DOCUMENTEVENT_CREATEDCPRE
pvIn menunjuk ke struktur DOCEVENT_CREATEDCPRE yang di dokumentasikan dalam Windows Driver Development Kit. - DOCUMENTEVENT_DELETEDC
Tidak digunakan. - DOCUMENTEVENT_ENDDOCPOST
Tidak digunakan. - DOCUMENTEVENT_ENDDOCPRE atau DOCUMENTEVENT_ENDDOC
Tidak digunakan. - DOCUMENTEVENT_ENDPAGE
Tidak digunakan. - DOCUMENTEVENT_ESCAPE
pvIn menunjuk ke struktur DOCEVENT_ESCAPE yang di dokumentasikan dalam Windows Driver Development Kit. - DOCUMENTEVENT_QUERYFILTER
Sama seperti untuk DOCUMENTEVENT_CREATEDCPRE. - DOCUMENTEVENT_RESETDCPOST
pvIn berisi alamat penunjuk ke struktur DEVMODE yang ditentukan dalam parameter pvOut dalam panggilan sebelumnya ke fungsi ini, yang parameter iEscnya diatur ke DOCUMENTEVENT_RESETDCPRE. - DOCUMENTEVENT_RESETDCPRE
pvIn berisi alamat pointer ke struktur DEVMODE yang disediakan oleh pemanggil ResetDC. - DOCUMENTEVENT_STARTDOCPOST
pvIn menunjuk ke LONG yang menentukan pengidentifikasi pekerjaan cetak yang dikembalikan oleh StartDoc. - DOCUMENTEVENT_STARTDOCPRE atau DOCUMENTEVENT_STARTDOC
pvIn berisi alamat pointer ke struktur DOCINFO yang disediakan oleh pemanggil StartDoc. - DOCUMENTEVENT_STARTPAGE
Tidak digunakan. - *cbOut*
-
Nilai Makna IDOCUMENTEVENT_QUERYFILTER Ukuran, dalam byte, dari penunjuk buffer ke oleh pvOut. DOCUMENTEVENT_ESCAPE Nilai yang digunakan sebagai parameter cbOutput untuk ExtEscape. Untuk semua nilai lainnya iEsc tidak digunakan. -
pvOut [keluar]
-
Penunjuk ke buffer. Konten buffer bergantung pada nilai yang disediakan untuk iEsc, seperti yang diperlihatkan dalam tabel berikut.
Terus-menerus Isi pvOut - DOCUMENTEVENT_CREATEDCPRE
Penunjuk ke struktur DEVMODE yang disediakan driver, yang digunakan GDI alih-alih yang disediakan oleh pemanggil CreateDC . (Jika NULL, GDI menggunakan struktur yang disediakan penelepon.) - DOCUMENTEVENT_ESCAPE
Penunjuk ke buffer yang digunakan sebagai parameter lpszOutData untuk ExtEscape. - DOCUMENTEVENT_QUERYFILTER
Pointer ke buffer yang berisi struktur DOCEVENT_FILTER yang di dokumentasikan dalam Windows Driver Development Kit. - DOCUMENTEVENT_RESETDCPRE
Penunjuk ke struktur DEVMODE yang disediakan driver, yang digunakan GDI alih-alih yang disediakan oleh pemanggil ResetDC . (Jika NULL, GDI menggunakan struktur yang disediakan penelepon.)
Mengembalikan nilai
Nilai pengembalian fungsi tergantung pada escape yang disediakan untuk iEsc. Untuk beberapa kode escape, nilai pengembalian tidak digunakan (lihat di bawah). Jika fungsi memasok nilai pengembalian, fungsi tersebut harus salah satu dari yang berikut ini.
Tampilkan Nilai | Makna |
---|---|
DOCUMENTEVENT_FAILURE | Driver mendukung kode escape yang diidentifikasi oleh iEsc, tetapi terjadi kegagalan. |
DOCUMENTEVENT_SUCCESS | Driver berhasil menangani kode escape yang diidentifikasi oleh iEsc. |
DOCUMENTEVENT_UNSUPPORTED | Driver tidak mendukung kode escape yang diidentifikasi oleh iEsc. |
Daftar berikut menunjukkan kode escape mana yang memerlukan nilai pengembalian dan yang tidak, dan menjelaskan arti dari kode pengembalian DOCUMENTEVENT_SUCCESS, DOCUMENTEVENT_FAILURE, dan DOCUMENTEVENT_UNSUPPORTED.
Tampilkan Nilai | Makna |
---|---|
DOCUMENTEVENT_ABORTDOC | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_CREATEDCPOST | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_CREATEDCPRE | DOCUMENTEVENT_FAILURE - GDI tidak membuat konteks perangkat atau konteks informasi, dan memberikan nilai pengembalian 0 untuk CreateDC atau CreateIC. |
DOCUMENTEVENT_DELETEDC | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_ENDDOCPOST | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_ENDDOCPRE atau DOCUMENTEVENT_ENDDOC | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_ENDPAGE | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_ESCAPE | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_QUERYFILTER | Lihat Keterangan. |
DOCUMENTEVENT_RESETDCPOST | Nilai yang dikembalikan tidak digunakan dan tidak boleh dibaca. |
DOCUMENTEVENT_RESETDCPRE | DOCUMENTEVENT_FAILURE - GDI tidak mengatur ulang konteks perangkat, dan memberikan nilai pengembalian 0 untuk ResetDC. |
DOCUMENTEVENT_STARTDOCPOST | DOCUMENTEVENT_FAILURE - GDI memanggil AbortDoc untuk menghentikan dokumen, lalu memberikan nilai pengembalian SP_ERROR untuk StartDoc. |
DOCUMENTEVENT_STARTDOCPRE atau DOCUMENTEVENT_STARTDOC | DOCUMENTEVENT_FAILURE - GDI tidak memulai dokumen, dan memberikan nilai pengembalian SP_ERROR untuk StartDoc. |
DOCUMENTEVENT_STARTPAGE | DOCUMENTEVENT_FAILURE - GDI tidak memulai halaman, dan memberikan nilai pengembalian SP_ERROR untuk StartPage. |
Keterangan
Untuk nilai iEsc DOCUMENTEVENT_QUERYFILTER, penampung dapat menginterpretasikan nilai DOCUMENTEVENT_SUCCESS yang dikembalikan oleh DocumentEvent dengan dua cara, tergantung pada apakah driver memodifikasi anggota tertentu dari struktur DOCEVENT_FILTER (yang didokumentasikan dalam Kit Pengembangan Driver Windows ). (Parameter pvOut menunjuk ke struktur ini.) Ketika penampung mengalokasikan memori untuk struktur jenis ini, penampung menginisialisasi dua anggota struktur ini, cElementsReturned dan cElementsNeeded, ke nilai yang diketahui. Setelah DocumentEvent kembali, penampung menentukan apakah nilai anggota ini telah berubah, dan menggunakan informasi tersebut untuk menginterpretasikan nilai pengembalian DocumentEvent . Tabel berikut ini meringkas situasi ini.
Tampilkan Nilai | Status cElementsReturned dan cElementsNeeded | Makna |
---|---|---|
DOCUMENTEVENT_SUCCESS |
Driver tidak membuat perubahan pada salah satu anggota. |
Penampung menginterpretasikan nilai pengembalian ini setara dengan DOCUMENTEVENT_UNSUPPORTED. Penampung tidak dapat mengambil filter peristiwa dari driver, sehingga tetap memanggil DocumentEvent untuk semua peristiwa. |
DOCUMENTEVENT_SUCCESS |
Driver menulis kepada satu atau kedua anggota. |
Penampung menerima nilai pengembalian ini tanpa interpretasi. Jika driver hanya menulis ke salah satu cElementsNeeded dan cElementsReturned, penampung menganggap anggota yang tidak berubah memiliki nilai nol. Penampung memfilter semua peristiwa yang tercantum dalam anggota aDocEventCall DOCEVENT_FILTER (yang didokumentasikan dalam Kit Pengembangan Driver Windows ). |
DOCUMENTEVENT_UNSUPPORTED |
Tidak berlaku |
Driver tidak mendukung DOCUMENTEVENT_QUERYFILTER. Penampung tidak dapat mengambil filter peristiwa dari driver, sehingga tetap memanggil DocumentEvent untuk semua peristiwa. |
DOCUMENTEVENT_FAILURE |
Tidak berlaku |
Driver mendukung DOCUMENTEVENT_QUERYFILTER, tetapi mengalami kesalahan internal. Penampung tidak dapat mengambil filter peristiwa dari driver, sehingga tetap memanggil DocumentEvent untuk semua peristiwa. |
Jika kode escape yang disediakan dalam parameter iEsc DOCUMENTEVENT_CREATEDCPRE, aturan berikut berlaku:
- Jika pekerjaan dikirim langsung ke printer tanpa spooling, pvIn-pszDevice> menunjuk ke nama printer. (Untuk informasi selengkapnya, lihat dokumentasi untuk struktur DOCEVENT_CREATEDCPRE di Windows Driver Development Kit.)
- Jika pekerjaan sedang ditampung, pvIn-pszDevice> menunjuk ke nama port printer.
Catatan
Pembatasan berikut berlaku saat menjalankan aplikasi 32-bit pada versi Windows 64-bit. Satu-satunya fungsi GDI yang harus dipanggil DocumentEvent adalah ExtEscape, dan hanya escape privat yang harus digunakan. Panggilan DocumentEvent ke fungsi GDI lainnya dapat menghasilkan perilaku yang tidak terdefinisi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista [khusus aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2008 [khusus aplikasi desktop] |
Header |
|
Nama Unicode dan ANSI |
DocumentEventW (Unicode) dan DocumentEventA (ANSI) |