Fungsi MxdcGetPDEVAdjustment (mxdc.h)
Fungsi MxdcGetPDEVAdjustment diekspor oleh DLL antarmuka printer dan menyediakan data konfigurasi printer untuk Konverter Dokumen Microsoft XPS (MXDC).
Sintaks
HRESULT MxdcGetPDEVAdjustment(
[in] HANDLE hPrinter,
[in] ULONG cbDevMode,
[in] const DEVMODE *pDevMode,
[in] ULONG cbIn,
[in, optional] const VOID *pvIn,
[in] ULONG cbPrintPropertiesCollection,
PrintPropertiesCollection *pPrintPropertiesCollection
);
Parameter
[in] hPrinter
Handel printer yang saat ini dipakai.
[in] cbDevMode
Ukuran struktur DEVMODE , dalam byte, termasuk data DEVMODE privat driver.
[in] pDevMode
Salinan struktur DEVMODE yang diterima MXDC. DLL antarmuka printer menggunakan informasi dari struktur ini untuk mengembalikan data yang diminta.
[in] cbIn
Parameter input yang menunjuk ukuran parameter pvIn , dalam byte. Parameter ini saat ini tidak digunakan dan nilainya adalah nol.
[in, optional] pvIn
Parameter yang terdiri dari data yang dikirim ke DLL antarmuka printer dari MXDC. Parameter ini saat ini tidak digunakan dan nilainya adalah NULL.
[in] cbPrintPropertiesCollection
Ukuran struktur data PrintPropertiesCollection , dalam byte.
pPrintPropertiesCollection
Struktur data PrintPropertiesCollection tempat DLL antarmuka printer mendapatkan data yang diminta. Struktur ini didefinisikan dalam WinSpool.h. Bidang yang diminta mungkin telah diisi sebelumnya dengan data default MXDC. DLL antarmuka pencetak harus mengabaikan bidang yang tidak dipahaminya.
Nilai kembali
MxdcGetPDEVAdjustment harus mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
S_OK | DLL antarmuka printer berhasil mengembalikan area gambar yang dapat disesuaikan, jenis pemadatan, atau DPI berdasarkan struktur DEVMODE yang diberikan. MXDC akan memvalidasi area gambar yang dikembalikan dan kemudian menggunakannya untuk mengisi struktur GDIINFO ke bidang masing-masing. |
E_NOTIMPL | Fungsi MxdcGetPDEVAdjustment tidak diimplementasikan oleh antarmuka printer. Antarmuka pencetak tidak boleh mengubah bidang yang tidak didukungnya. MXDC default ke default saat ini. Untuk kasus area yang dapat dicitrakan, MXDC default menggunakan ukuran halaman fisik. Untuk opsi pemadatan, MXDC default ke kompresi JPEG sedang. |
E_FAIL | Untuk nilai ini atau nilai kegagalan lainnya, MXDC mengembalikan -1 ke fungsi DrvEnablePDEV , menangkap pengecualian internal, dan mengatur bendera untuk gagal dan mengakhiri pekerjaan cetak. |
Keterangan
Fungsi MxdcGetPDEVAdjustment diterapkan oleh vendor perangkat keras. MXDC memanggil fungsi ini untuk mendapatkan data konfigurasi printer dalam bentuk tas properti yang mencakup data berikut:
MXDC memungkinkan DLL antarmuka printer untuk menyesuaikan DPI melalui fungsi MxdcGetPDEVAdjustment hanya jika bidang dmPrintQuality pekerjaan cetak memiliki nilai yang kurang dari atau sama dengan 0. Jika nilai DPI tidak disesuaikan, MXDC memetakan nilai dmPrintQuality negatif ke resolusi berikut.
Nama GDI (Wingdi.h) | Nilai GDI(Wingdi.h) | Interpretasi default MXDC(titik per inci) |
---|---|---|
DMRES_HIGH | -4 | 2400 |
DMRES_MEDIUM | -3 | 1200 |
DMRES_LOW | -2 | 600 |
DMRES_DRAFT | -1 | 400 |
Nama properti MXDC yang menyimpan nilai DPI default MXDC adalah L"MxdcDotsPerInch".
Tabel berikut mencantumkan jenis properti MXDC dan bidang tas properti untuk properti:
Properti (propertyName) | Jenis properti (ePropertyValue) | Bidang tas properti |
---|---|---|
L"MxdcImageableArea" | kPropertyTypeBuffer | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.cbBuf = sizeof(RECT) PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.pBuf |
L"MxdcImageCompressionType" | kPropertyTypeInt32 | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32 |
L"MxdcDotsPerInch" | kPropertyTypeInt32 | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32 |
L"MxdcLandscapeRotation" | kPropertyTypeInt32 | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32 |
Tabel berikut ini mencantumkan jenis data dan nilai data MXDC yang didukung untuk properti:
Properti (propertyName) | Jenis dan nilai data |
---|---|
L"MxdcImageableArea" | Jenis Data: RECT Nilai: RECT::left (Same as FORM_INFO_1) RECT::right (Same as FORM_INFO_1) RECT::top (Sama seperti FORM_INFO_1) RECT::bottom (Same as FORM_INFO_1) |
L"MxdcImageCompressionType" | Jenis Data: LONG Nilai: 1 = Kompresi Tinggi JPEG 2 = Kompresi Sedang JPEG 3 = Kompresi Rendah JPEG 4 = Kompresi PNG |
L"MxdcDotsPerInch" | Jenis Data: LONG Nilai: Nilai positif untuk Titik Per Inci |
L"MxdcLandscapeRotation" | Jenis Data: LONG Nilai: 90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES 0 = MXDC_LANDSCAPE_ROTATE_NONE -90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES |
Fungsi MxdcGetPDEVAdjustment bukan bagian dari MXDC. MXDC memanggil kembali ke fungsi ini di DLL konfigurasi driver untuk mendapatkan data untuk mengonfigurasi printer.
MXDC mengharapkan area yang dapat digambarkan dalam koordinat yang tidak dirotasi (orientasi potret). MXDC memutar ukuran halaman dan area yang dapat dicitrakan sesuai dengan nilai anggota dmOrientation dari struktur DEVMODE yang ditunjukkan oleh pDevMode. Dengan demikian, implementasi vendor perangkat keras dari MxdcGetPDEVAdjustment harus menghindari penentuan area yang dapat dicitrakan dalam koordinat yang diputar (orientasi lanskap) karena ini akan menyebabkan pekerjaan cetak lanskap dicetak dengan tidak benar.
Nilai default dalam MXDC akan MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, yang merupakan perilaku warisannya saat ini.
Semua rotasi akan dilakukan pada area yang dapat disorot. Jika komponen konfigurasi (UniDrv/PostScript, XPSDrv Monolithic) tidak memahami nilai tas properti baru, maka itu harus mengabaikannya seperti dalam desain saat ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | mxdc.h (termasuk Mxdc.h) |