Bagikan melalui


Menggunakan GetOptionAttribute

Penting

Platform cetak modern adalah sarana komunikasi pilihan Windows dengan printer. Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.

Untuk informasi selengkapnya, lihat Platform cetak modern dan panduan desain aplikasi dukungan Cetak.

Fungsi ini hanya didukung untuk fitur PostScript Printer Driver (PPD). Jika atribut tertentu tidak tersedia, GetOptionAttribute mengembalikan E_INVALIDARG.

Parameter output untuk atribut opsi umum

Dalam tabel berikut, parameter pdwDataType mengambil nilai dari jenis enumerasi EATTRIBUTE_DATATYPE.

Atribut opsi umum Parameter output
DisplayName pdwDataType: kADT_UNICODE

pbData: untai (karakter) Unicode yang dihentikan null dari string terjemahan nama kata kunci opsi

pcbNeeded: jumlah byte string Unicode yang diacu oleh pbData (termasuk terminator null)

Atribut opsi ini tersedia untuk opsi apa pun yang dapat dikembalikan EnumOptions pada fitur PPD.
Doa pdwDataType: kADT_BINARY

pbData: array byte untuk InvocationValue opsi

pcbNeeded: jumlah byte data biner yang ditujukkan oleh pbData

Atribut opsi ini tersedia untuk opsi apa pun yang dapat dikembalikan EnumOptions pada fitur PPD. Jika InvocationValue opsi kosong, fungsi mengatur pdwDataType seperti di atas, atur pcbNeeded = 0, lalu kembalikan S_OK.
OrderDependencyValue pdwDataType: kADT_LONG

pbData: urutan relatif yang ditentukan oleh kata kunci OrderDependency atau NonUIOrderDependency PPD untuk opsi ini. Perhatikan bahwa parameter pertama kata kunci ini adalah angka riil yang dikonversi ke LONG dan dikembalikan.

pcbNeeded: sizeof(LONG)

Atribut opsi ini hanya tersedia untuk opsi yang memiliki entri OrderDependency atau*NonUIOrderDependency di PPD, dan entri tidak menghilangkan optionKeyword.
OrderDependencySection pdwDataType: kADT_ASCII

pbData: string ASCII yang dihentikan null yang berisi salah satu nama bagian berikut: "ExitServer" "Prolog" "DocumentSetup" "PageSetup" "JCLSetup" "AnySetup"

pcbNeeded: jumlah byte string ASCII yang diakhiri oleh pbData (termasuk terminator null)

Atribut opsi ini hanya tersedia untuk opsi yang memiliki entri OrderDependency atau NonUIOrderDependency di PPD, dan entri tidak menghilangkan optionKeyword.

Parameter output untuk atribut opsi tertentu

Selain atribut opsi umum yang dijelaskan sebelumnya, atribut opsi yang tercantum dalam tabel berikut dapat memiliki batasan saat tersedia. Beberapa atribut tersedia untuk semua opsi fitur PPD tertentu, sementara yang lain hanya tersedia untuk opsi tertentu dari fitur PPD mereka. Batasan tersebut tercantum untuk setiap atribut opsi.

Kata kunci Atribut opsi Parameter output
InputSlot
RequiresPageRegion pdwDataType: kADT_BOOL

pbData: TRUE jika kode pemanggilan PageRegion harus dikirim dengan kode pemanggilan InputSlot, dan FALSE sebaliknya. Ini didasarkan pada kata kunci RequiresPageRegion PPD. Jika kata kunci dihilangkan untuk opsi slot input ini, TRUE dikembalikan untuk atribut ini.

pcbNeeded: sizeof(BOOL)

Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "InputSlot", kecuali untuk opsi yang dihasilkan driver "*UseFormTrayTable".
OutputBin
OutputOrderReversed pdwDataType: kADT_BOOL

pbData: TRUE jika urutan output binOption adalah "Reverse", dan FALSE jika urutan outputnya adalah "Normal". Ini didasarkan pada kata kunci DefaultOutputOrder dan ageStackOrder PPD.

pcbNeeded: sizeof(BOOL)

Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "OutputBin".
PageSize
ImageableArea pdwDataType: kADT_RECT

pbData: kotak pembatas area gambar opsi PageSize, seperti yang ditentukan oleh kata kunci ImageableArea PPD, dikembalikan dalam struktur RECT, yang anggota kiri dan bawahnya berisi nilai llx dan lly, dan anggota kanan dan atasnya berisi nilai urx dan ury. Semua nilai berada dalam mikron. Nilai llx PPD, dan lly dibulatkan ke atas ke bilangan bulat terdekat sebelum dikonversi menjadi mikron. Nilai urx dan ury PPD dibulatkan ke bawah ke bilangan bulat terdekat sebelum dikonversi menjadi mikron.

pcbNeeded: sizeof(RECT)

Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "PageSize", kecuali opsi "CustomPageSize".
PaperDimension pdwDataType: kADT_SIZE

pbData: dimensi fisik opsi PageSize, seperti yang ditentukan oleh kata kunci PaperDimension PPD, dikembalikan dalam struktur SIZE, yang anggota cx-nya berisi nilai lebar dan anggota cy-nya berisi nilai tinggi. Semua nilai berada dalam mikron.

pcbNeeded: sizeof(SIZE)

Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "PageSize", kecuali opsi "CustomPageSize".
Ukuran Halaman: CustomPageSize
HWMargins pdwDataType: kADT_RECT

pbData: empat nilai yang ditentukan oleh kata kunci HWMargins PPD dikembalikan dalam struktur RECT. Semua nilai berada dalam mikron.

pcbNeeded: sizeof(RECT)

Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize".
MaxMediaHeight pdwDataType: kADT_DWORD

pbData: nilai yang ditentukan oleh kata kunci PPD *MaxMediaHeight, dalam mikron.

pcbNeeded: sizeof(DWORD)

Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize".
MaxMediaWidth pdwDataType: kADT_DWORD

pbData: nilai yang ditentukan oleh kata kunci MaxMediaWidth PPD, dalam mikron.

pcbNeeded: sizeof(DWORD)

Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize".
ParamCustomPageSize pdwDataType: kADT_CUSTOMSIZEPARAMS

pbData: array elemen CUSTOMPARAM_MAX, di mana setiap elemen adalah struktur CUSTOMSIZEPARAM . Setiap elemen array ini menyimpan nilai yang ditentukan dalam entri paramOption kata kunci ParamCustomPageSize PPD. Untuk nilai paramOption selain "Orientasi", nilai lMinVal dan lMaxVal berada dalam mikron. Untuk nilai "Orientasi", lMinVal dan lMaxVal berada dalam rentang [0, 3].

pcbNeeded: sizeof(CUSTOMSIZEPARAM) * CUSTOMPARAM_MAX

Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize".

Untuk informasi selengkapnya, lihat catatan berikut di ParamCustomPageSize.
InstallMemory
VMOption pdwDataType: kADT_DWORD

pbData: nilai yang ditentukan oleh kata kunci VMOption PPD, atau 0 jika PPD tidak menentukan kata kunci VMOption untuk opsi ini.

pcbNeeded: sizeof(DWORD)

Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "InstalledMemory".
FCacheSize pdwDataType: kADT_DWORD

pbData: nilai yang ditentukan oleh kata kunci FCacheSize PPD, atau 0 jika PPD tidak menentukan kata kunci FCacheSize untuk opsi ini.

pcbNeeded: sizeof(DWORD)

Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "InstalledMemory".

Catatan tentang ParamCustomPageSize

Berikut adalah beberapa kode sampel yang menunjukkan cara mendapatkan urutan asli file PPD, min, dan nilai maks entri "Lebar ParamCustomPageSize". Konstanta CUSTOMPARAM_WIDTH, yang didefinisikan dalam printoem.h, menunjukkan offset struktur CUSTOMSIZEPARAM yang berisi informasi yang terkait dengan entri Lebar. Struktur ini adalah salah satu CUSTOMPARAM_MAX struktur CUSTOMSIZEPARAM yang membentuk array struktur tersebut. Header printoem.h mendefinisikan sekumpulan konstanta bernama CUSTOMPARAM_XXX mencantumkan offset struktur dalam array ini (Lebar, Tinggi, LebarOffset, HeightOffset, dan Orientasi).

PCUSTOMSIZEPARAM  pCSParam;

pCSParam = (PCUSTOMSIZEPARAM)pbData + CUSTOMPARAM_WIDTH;

order = pCSParam->dwOrder;
// Convert lMinVal and lMaxVal from microns to points.
//   To convert microns to inches, divide by 25400.
//   To convert inches to points, multiply by 72.
min = pCSParam->lMinVal / 25400.0 * 72.0;
max = pCSParam->lMaxVal / 25400.0 * 72.0;