Metode IPrintCoreHelper::SetOptions (prcomoem.h)

Metode IPrintCoreHelper::SetOptions mengatur beberapa pasangan opsi fitur secara bersamaan.

Sintaks

HRESULT SetOptions(
  [in, optional] IN PDEVMODE                      pDevmode,
  [in]           IN DWORD                         cbSize,
  [in]           IN BOOL                          bResolveConflicts,
  [in]           IN const PRINT_FEATURE_OPTION [] pFOPairs,
  [in]           IN DWORD                         cPairs,
  [out]          OUT PDWORD                       pcPairsWritten,
  [out]          OUT PDWORD                       pdwResult
);

Parameter

[in, optional] pDevmode

Penunjuk ke struktur DEVMODEW . Jika pointer ini disediakan, IPrintCoreHelper::SetOptions harus menggunakan struktur DEVMODEW yang diarahkan oleh pDevmode alih-alih struktur DEVMODEW default atau saat ini. Jika metode ini dipanggil dari penyedia plug-in atau dari IPrintOemPS::D evMode atau IPrintOemUni::D evMode, parameter ini diperlukan. Dalam sebagian besar situasi lain, parameter harus NULL. Ketika driver inti mengatur pDevmode ke NULL, driver ini memodifikasi status internalnya daripada struktur DEVMODEW yang diteruskan. Ini diperlukan selama operasi seperti penggantian UI penuh, di mana struktur DEVMODEW yang dikembalikan oleh DDI, seperti DrvDocumentPropertySheets, sedang dilayanakan oleh modul UI driver inti.

[in] cbSize

Ukuran, dalam byte, dari struktur DEVMODEW yang diarahkan oleh parameter pDevmode .

[in] bResolveConflicts

Nilai Boolean yang menunjukkan apakah IPrintCoreHelper::SetOptions harus menyelesaikan konflik yang muncul dari satu atau beberapa batasan yang ditentukan dalam tampilan GPD atau PPD dari file konfigurasi, serta batasan untuk fungsionalitas yang diterapkan oleh Unidrv atau Pscript atau prosesor cetak. Jika TRUE, metode ini harus mencoba menyelesaikan konflik. Jika FALSE, metode ini tidak boleh mencoba menyelesaikan konflik. Untuk informasi lebih lanjut, lihat bagian Keterangan.

[in] pFOPairs

Array elemen PRINT_FEATURE_OPTION , di mana setiap elemen berisi pasangan opsi fitur. Setiap pasangan opsi fitur mencantumkan fitur dan opsi untuk dipilih untuk fitur tersebut. Semua pengaturan diterapkan secara berurutan. Duplikat tidak diizinkan, tetapi pengaturan yang muncul nanti dalam array (yaitu, pada indeks yang lebih tinggi) mengambil alih yang muncul sebelumnya dalam array.

[in] cPairs

Jumlah pasangan opsi fitur yang ditujukkan oleh parameter pFOPairs .

[out] pcPairsWritten

Pointer ke variabel yang menerima jumlah pasangan opsi fitur yang berhasil disimpan sebelum IPrintCoreHelper::SetOptions dikembalikan atau gagal. Jika metode ini berhasil dikembalikan, *pcPairsWritten akan memiliki nilai yang sama dengan cPairs. Jika metode gagal,*pcPairsWritten dapat memiliki nilai apa pun dari nol melalui nilai cPairs. Parameter ini bersifat opsional dan dapat berupa NULL.

[out] pdwResult

Penunjuk ke variabel yang menerima status resolusi konflik. Statusnya bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
SETOPTIONS_RESULT_NO_CONFLICT Tidak ada batasan yang ditentukan dalam tampilan GPD atau PPD dari file konfigurasi yang dilanggar, relatif terhadap pengaturan baru.
SETOPTIONS_RESULT_CONFLICT_RESOLVED Setidaknya satu batasan yang ditentukan dalam tampilan GPD atau PPD dari file konfigurasi dilanggar, dan pemanggil meminta agar metode tersebut harus menyelesaikan konflik. Nilai ini menghasilkan pengaturan yang diubah dengan konflik yang diselesaikan.
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED Setidaknya satu batasan yang ditentukan dalam tampilan GPD atau PPD dari file konfigurasi dilanggar, dan pemanggil meminta agar metode tersebut tidak menyelesaikan konflik. Pengaturan tidak berubah, dan konflik tetap ada.

Nilai kembali

IPrintCoreHelper::SetOptions harus mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
S_OK Operasi berhasil.
E_INVALIDARG Satu atau beberapa argumen tidak valid, atau fitur ini tidak didukung.
E_OUTOFMEMORY Memori untuk array hasil tidak dapat dialokasikan.

Untuk kegagalan lain, metode harus mengembalikan kode kesalahan COM standar.

Keterangan

IPrintCoreHelper::SetOptions dapat digunakan untuk mengubah beberapa pengaturan secara bersamaan dan untuk mengatasi batasan setelah semua opsi yang dipilih telah diatur. Perubahan pada opsi diterapkan secara berurutan, mulai dari awal array pFOPairs , jadi jika fitur yang sama muncul dua kali dalam array ini, hanya opsi terakhir untuk fitur yang akan dipilih. Perubahan pada opsi tidak diterapkan (yaitu, disimpan ke registri) kecuali parameter bResolveConflicts adalah TRUE.

Untuk sebagian besar skenario, parameter bResolveConflicts harus diatur ke TRUE. Atur parameter ini ke FALSE jika Anda ingin meminta pengguna untuk mengatasi konflik.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header prcomoem.h (termasuk Prcomoem.h)

Lihat juga

IPrintCoreHelper

IPrintCoreHelper::GetOption