Struktur OPTITEM (compstui.h)

Struktur OPTITEM digunakan oleh aplikasi CPSUI (termasuk DLL antarmuka printer) untuk menjelaskan satu opsi lembar properti pada halaman lembar properti, jika halaman dijelaskan oleh struktur COMPROPSHEETUI .

Sintaks

typedef struct _OPTITEM {
  WORD      cbSize;
  BYTE      Level;
  BYTE      DlgPageIdx;
  DWORD     Flags;
  ULONG_PTR UserData;
  LPTSTR    pName;
  union {
    LONG   Sel;
    LPTSTR pSel;
  } DUMMYUNIONNAME;
  union {
    PEXTCHKBOX pExtChkBox;
    PEXTPUSH   pExtPush;
  } DUMMYUNIONNAME2;
  POPTTYPE  pOptType;
  DWORD     HelpIndex;
  BYTE      DMPubID;
  BYTE      UserItemID;
  WORD      wReserved;
  POIEXT    pOIExt;
  ULONG_PTR dwReserved[3];
} OPTITEM, *POPTITEM;

Anggota

cbSize

Ukuran, dalam byte, dari struktur OPTITEM .

Level

Menentukan tingkat opsi ini dalam tampilan pohon. Untuk informasi selengkapnya, lihat bagian Keterangan di bawah ini.

DlgPageIdx

Mengidentifikasi dialog tempat opsi berada. Menentukan indeks array ke dalam array DLGPAGE yang diarahkan oleh anggota pDlgPage dari struktur COMPROPSHEETUI .

Jika pDlgPage menunjuk ke struktur DLGPAGE yang disediakan CPSUI, CPSUI memasok indeks ini.

Flags

Bendera bit opsional yang memodifikasi karakteristik opsi. Bendera OPTIF_CHANGEONCE ditetapkan oleh CPSUI; semua bendera lainnya diatur oleh pemanggil. Kombinasi bendera berikut dapat diatur.

OPTIF_CALLBACK

Saat pengguna memodifikasi opsi , CPSUI harus memanggil fungsi panggilan balik yang diketik _CPSUICALLBACK yang ditentukan dalam struktur COMPROPSHEETUI .

OPTIF_CHANGED

Fungsi panggilan balik yang diketik _CPSUICALLBACK harus mengatur bendera ini jika memodifikasi opsi, sehingga CPSUI akan memutarnya kembali.

OPTIF_CHANGEONCE

CPSUI mengatur bit ini jika pengguna mengubah opsi.

OPTIF_COLLAPSE

Ciutkan opsi ini dan turunannya agar tidak diperluas di tampilan pohon.

OPTIF_DISABLED

Menonaktifkan opsi agar tidak dapat dimodifikasi pengguna.

OPTIF_ECB_CHECKED

Kotak centang perluasan terkait berada dalam status dicentang.

OPTIF_EXT_IS_EXTPUSH

Jika diatur, anggota pExtPush valid (kecuali NULL).

Jika tidak diatur, anggota pExtChkBox valid (kecuali NULL).

OPTIF_EXT_DISABLED

Kotak centang yang diperluas atau tombol tekan yang diperluas tidak dapat dipilih.

OPTIF_EXT_HIDE

CPSUI tidak akan menampilkan kotak centang yang diperluas atau tombol tekan yang diperluas.

OPTIF_HAS_POIEXT

Jika diatur, anggota pOIExt valid.

OPTIF_HIDE

CPSUI tidak akan menampilkan opsi ini di tampilan pohon. CPSUI memeriksa bendera ini hanya ketika awalnya membuat tampilan pohon, sehingga mengubah bendera dari nilai awalnya tidak berpengaruh.

OPTIF_INITIAL_TVITEM

Jika diatur, CPSUI mengatur fokus jendela awal ke opsi ini saat menampilkan tampilan pohon. CPSUI memperluas simpul pohon dan menggulir opsi ke tampilan seperlunya. Jika opsi disembunyikan, atau jika bendera ini tidak diatur untuk struktur OPTITEM apa pun, CPSUI memilih fokus awal.

OPTIF_NO_GROUPBOX_NAME

Jika tidak diatur, dan pOptype bukan nol, CPSUI menggunakan string pName sebagai judul kotak grup.

Jika diatur, CPSUI menyediakan judul kotak grup.

OPTIF_OVERLAY_NO_ICON

Jika mengatur overlay CPSUI, ikon IDI_CPSUI_NO ke ikon yang terkait dengan opsi. (Lihat anggota Sel/pSel .)

OPTIF_OVERLAY_STOP_ICON

Jika diatur, CPSUI melapisi ikon IDI_CPSUI_STOP ke ikon yang terkait dengan opsi . (Lihat anggota Sel/pSel .)

OPTIF_OVERLAY_WARNING_ICON

Jika diatur, CPSUI melapisi ikon IDI_CPSUI_WARNING ke ikon yang terkait dengan opsi . (Lihat anggota Sel/pSel .)

OPTIF_SEL_AS_HICON

Jika diatur, anggota Sel berisi handel ikon.

Jika tidak diatur, anggota Sel berisi pengidentifikasi sumber daya ikon.

Bendera ini hanya dapat digunakan ketika pOptType berisi NULL.

UserData

Nilai opsional 32-bit yang dapat diatur dan digunakan oleh pemanggil.

(DLL antarmuka printer untuk Unidrv dan Pscript menggunakan anggota ini untuk menyediakan pointer ke struktur USERDATA . Plug-in antarmuka pengguna dapat mereferensikan struktur ini.)

pName

Pengidentifikasi string yang mewakili nama opsi yang dilokalkan dan dapat ditampilkan. Ini bisa menjadi penunjuk 32-bit ke string yang dihentikan NULL, atau dapat menjadi pengidentifikasi sumber daya string 16-bit, dengan HIWORD diatur ke nol. (Lihat juga deskripsi DMPubID, di bawah ini.)

DUMMYUNIONNAME

DUMMYUNIONNAME.Sel

Serikat ini menunjukkan nilai parameter opsi yang saat ini dipilih. Penggunaannya tergantung pada jenis opsi CPSUI.

Jika pOptType adalah NULL, opsi tidak memiliki parameter, sehingga serikat ini mengidentifikasi ikon yang akan dikaitkan dengan simpul tampilan pohon untuk opsi tersebut. Pengidentifikasi ikon dapat berupa handel ikon atau pengidentifikasi sumber daya ikon, seperti yang ditunjukkan oleh OPTIF_SEL_AS_HICON di Bendera.

DUMMYUNIONNAME.pSel

Serikat ini menunjukkan nilai parameter opsi yang saat ini dipilih. Penggunaannya tergantung pada jenis opsi CPSUI.

Jika pOptType adalah NULL, opsi tidak memiliki parameter, sehingga serikat ini mengidentifikasi ikon yang akan dikaitkan dengan simpul tampilan pohon untuk opsi tersebut. Pengidentifikasi ikon dapat berupa handel ikon atau pengidentifikasi sumber daya ikon, seperti yang ditunjukkan oleh OPTIF_SEL_AS_HICON di Bendera.

DUMMYUNIONNAME2

Mendefinisikan serikat DUMMYUNIONNAME2 .

DUMMYUNIONNAME2.pExtChkBox

Penunjuk ke struktur EXTCHKBOX

DUMMYUNIONNAME2.pExtPush

Gabungan ini dapat menjadi penunjuk ke struktur EXTCHKBOX , penunjuk ke struktur EXTPUSH , atau NULL.

Struktur OPTITEM dapat secara opsional memiliki struktur EXTCHKBOX, struktur EXTPUSH, atau tidak keduanya, yang terkait dengannya. Jika gabungan ini bukan NULL, dan jika OPTIF_EXT_IS_EXTPUSH diatur dalam Bendera, pExtPush valid. Jika bendera tidak diatur, pExtChkBox valid.

pOptType

Penunjuk ke struktur OPTTYPE yang menjelaskan jenis tampilan opsi. Jika NULL, opsi tidak memiliki parameter dan digunakan sebagai induk untuk opsi dengan nilai Tingkat yang lebih tinggi. Opsi turunan harus segera mengikuti induk dalam array OPTITEM. (Lihat bagian Keterangan berikut.)

HelpIndex

Indeks file bantuan, yang mengidentifikasi teks bantuan yang akan dikaitkan dengan opsi . Jika nol, teks file bantuan tidak ada untuk opsi ini. Perhatikan bahwa anggota pOIExt dari struktur ini harus diatur dengan alamat struktur OIEXT agar fungsionalitas teks bantuan ada.

DMPubID

Anggota ini dimaksudkan untuk digunakan oleh DLL antarmuka printer, saat membuat lembar properti Properti Dokumen (lihat DrvDocumentPropertySheets). Ini adalah nilai konstan yang menentukan, jika ada, anggota publik struktur DEVMODEW dikaitkan dengan opsi ini. Tabel berikut mencantumkan konstanta yang tersedia, anggota struktur DEVMODE terkait, dan nilai yang diperlukan untuk pName untuk setiap konstanta.

Nilai Konstanta Nilai pName yang diperlukan Anggota Struktur
DMPUB_COLOR dmColor IDS_CPSUI_COLOR_APPERANCE
DMPUB_COPIES_COLLATE dmCopies dan dmCollate IDS_CPSUI_COPIES
DMPUB_DEFSOURCE dmDefSource IDS_CPSUI_SOURCE
DMPUB_DITHERTYPE dmDitherType IDS_CPSUI_DITHERING
DMPUB_DUPLEX dmDuplex IDS_CPSUI_DUPLEX
DMPUB_FORMNAME dmFormName IDS_CPSUI_FORMNAME
DMPUB_ICMINTENT dmICMIntent IDS_CPSUI_ICMINTENT
DMPUB_ICMMETHOD dmICMMethod IDS_CPSUI_ICMMETHOD
DMPUB_MEDIATYPE dmMediaType IDS_CPSUI_MEDIA
DMPUB_NUP Tidak terkandung dalam bagian publik DEVMODE. IDS_CPSUI_NUP
DMPUB_ORIENTATION dmOrientation IDS_CPSUI_ORIENTATION
DMPUB_OUTPUTBIN Tidak terkandung dalam bagian publik DEVMODE. IDS_CPSUI_OUTPUTBIN
DMPUB_PAGEORDER Tidak terkandung dalam bagian publik DEVMODE. IDS_CPSUI_PAGEORDER
DMPUB_PRINTQUALITY dmPrintQuality IDS_CPSUI_PRINTQUALITY atau IDS_CPSUI_RESOLUTION. Jika tidak ditentukan, nama defaultnya adalah IDS_CPSUI_RESOLUTION.
DMPUB_QUALITY Tidak terkandung dalam bagian publik DEVMODE. IDS_CPSUI_QUALITY_SETTINGS
DMPUB_SCALE dmScale IDS_CPSUI_SCALE
DMPUB_TTOPTION dmTTOption IDS_CPSUI_TTOPTION
DMPUB_NONE Tidak terkandung dalam bagian publik DEVMODE.
Lebih besar dari atau sama dengan DMPUB_USER Diabaikan oleh CPSUI, dapat menjadi nilai yang ditentukan penelepon.

CPSUI tidak mempertahankan struktur DEVMODE. Aplikasi ini bertanggung jawab untuk menyalin parameter opsi yang dipilih pengguna ke dalam struktur DEVMODE . CPSUI menggunakan konten DMPubID untuk menentukan penempatan treeview opsi standar, dan untuk menentukan konten tab Tata Letak dan Kertas/Kualitas (lihat anggota pDlgPage dari struktur COMPROPSHEETUI ).

Untuk informasi tambahan tentang menggunakan anggota DMPubID , lihat bagian Keterangan berikut ini.

UserItemID

Nilai opsional yang disediakan aplikasi yang dapat digunakan untuk tujuan identifikasi opsi. Tidak dirujuk oleh CPSUI.

wReserved

Dicadangkan, harus diinisialisasi ke nol.

pOIExt

Penunjuk ke struktur OIEXT opsional. Pemanggil bertanggung jawab untuk mengalokasikan penyimpanan untuk struktur ini.

dwReserved[3]

Dicadangkan, harus diinisialisasi ke nol.

Keterangan

Struktur OPTITEM harus ditempatkan dalam array, dan alamat array harus ditempatkan di anggota pOptItem dari struktur COMPROPSHEETUI .

Anggota Level memungkinkan Anda membuat simpul anak di tampilan pohon. Misalnya, untuk membuat sekumpulan simpul opsi di bawah node induk tingkat 1, tentukan tingkat 2 untuk setiap simpul anak dan sertakan struktur OPTITEM mereka dalam array OPTITEM, segera setelah struktur OPTITEM induk. Dalam struktur OPTITEM induk, pOptType harus NULL.

Simpul akar tampilan pohon adalah tingkat 0. Opsi yang ditampilkan saat pengguna memperluas simpul akar adalah tingkat 1. Jumlah maksimum tingkat adalah 256.

Untuk nilai opsi yang disimpan dalam struktur DEVMODE printer, anggota DMPubID harus mengidentifikasi opsi . Untuk setiap nilai DMPubID yang digunakan, DLL antarmuka printer harus menentukan jenis opsi CPSUI yang tercantum dalam tabel berikut.

Nilai DMPubID Jenis Opsi CPSUI yang Diperlukan
DMPUB_COLOR TVOT_2STATES
DMPUB_COPIES_COLLATE TVOT_UDARROW plus EXTCHKBOX (Lihat komentar mengikuti tabel ini.)
DMPUB_DEFSOURCE TVOT_LISTBOX
DMPUB_DITHERTYPE TVOT_LISTBOX
DMPUB_DUPLEX TVOT_2STATES atau TVOT_3STATES
DMPUB_FORMNAME TVOT_LISTBOX
DMPUB_ICMINTENT TVOT_2STATES atau TVOT_3STATES
DMPUB_ICMMETHOD TVOT_2STATES atau TVOT_3STATES
DMPUB_MEDIATYPE TVOT_LISTBOX
DMPUB_NUP TVOT_LISTBOX
DMPUB_ORIENTATION TVOT_2STATES atau TVOT_3STATES
DMPUB_OUTPUTBIN TVOT_LISTBOX
DMPUB_PAGEORDER TVOT_2STATES atau TVOT_3STATES
DMPUB_PRINTQUALITY TVOT_LISTBOX
DMPUB_QUALITY TVOT_2STATES atau TVOT_3STATES
DMPUB_SCALE TVOT_UDARROW
DMPUB_TTOPTION TVOT_LISTBOX

Jika DMPubID DMPUB_COPIES_COLLATE dan printer dapat menyusun salinan, kotak centang yang diperluas (struktur EXTCHKBOX ) harus disediakan. Anggota struktur EXTCHCKBOX harus ditetapkan sebagai berikut:

pExtCheckbox->cbSize = sizeof(EXTCHKBOX);
pExtCheckbox->pTitle = (PWSTR) IDS_CPSUI_COLLATE;
pExtCheckbox->pCheckedName = (PWSTR) IDS_CPSUI_COLLATED;
pExtCheckbox->IconID = IDI_CPSUI_COLLATE;
pExtCheckbox->Flags = ECBF_CHECKNAME_ONLY_ENABLED;
pExtCheckbox->pSeparator = (PWSTR)IDS_CPSUI_SLASH_SEP;

Jika OPTIF_EXT_HIDE tidak diatur dalam Bendera, CPSUI mengaktifkan kotak centang jika pengguna meminta lebih dari satu salinan, dan menonaktifkannya jika hanya satu salinan yang diminta.

Selain itu, CPSUI mengatur teks tampilan opsi untuk disalin untuk satu salinan dan salinan untuk lebih dari satu salinan.

Jika DMPubID DMPUB_COLOR, struktur OPTPARAM pertamanya (Sel=0) harus mewakili Skala Abu-abu, dan pData dalam struktur OPTPARAM harus IDS_CPSUI_GRAYSCALE. Struktur OPTPARAM kedua (Sel=1) harus mewakili Color, dan pData dalam struktur OPTPARAM harus IDS_CPSUI_COLOR. Jika DMPubID opsi lain DMPUB_ICMINTENT dan jika Warna tidak dipilih, CPSUI menonaktifkan opsi yang DMPUB_ICMINTENT nya ditentukan.

CPSUI menonaktifkan pencocokan warna saat Warna tidak dipilih.

Persyaratan

Persyaratan Nilai
Header compstui.h (termasuk Compstui.h)