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)

Lihat juga

DrvEnablePDEV

GDIINFO

Antarmuka IPrintoemUIMXDC