Struttura OPTITEM (compstui.h)
La struttura OPTITEM viene usata dalle applicazioni CPSUI (incluse le DLL dell'interfaccia della stampante) per descrivere un'opzione del foglio delle proprietà in una pagina del foglio delle proprietà, se la pagina è descritta da una struttura COMPROPSHEETUI .
Sintassi
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;
Members
cbSize
Dimensioni, in byte, della struttura OPTITEM .
Level
Specifica il livello di questa opzione nella visualizzazione albero. Per altre informazioni, vedere la sezione Osservazioni di seguito.
DlgPageIdx
Identifica la finestra di dialogo a cui appartiene l'opzione. Specifica un indice di matrice nella matrice DLGPAGE a cui punta il membro pDlgPage della struttura COMPROPSHEETUI .
Se pDlgPage punta a una struttura CPSUI fornita, la struttura DLGPAGE predefinita fornisce questo indice.
Flags
Flag di bit facoltativi che modificano le caratteristiche dell'opzione. Il flag OPTIF_CHANGEONCE è impostato da CPSUI; tutti gli altri flag vengono impostati dal chiamante. È possibile impostare qualsiasi combinazione dei flag seguenti.
OPTIF_CALLBACK
Quando un utente modifica l'opzione, CPSUI deve chiamare la funzione di callback _CPSUICALLBACK tipizzata specificata nella struttura COMPROPSHEETUI .
OPTIF_CHANGED
La funzione di callback tipizzata _CPSUICALLBACK deve impostare questo flag se ha modificato l'opzione, in modo che CPSUI lo ririeseguirà.
OPTIF_CHANGEONCE
CPSUI imposta questo bit se un utente ha modificato l'opzione.
OPTIF_COLLAPSE
Comprimere questa opzione e i relativi elementi figlio in modo che non venga espanso nella visualizzazione albero.
OPTIF_DISABLED
Disabilita l'opzione in modo che non sia modificabile dall'utente.
OPTIF_ECB_CHECKED
La casella di controllo estesa associata si trova nello stato selezionato.
OPTIF_EXT_IS_EXTPUSH
Se impostato, il membro pExtPush è valido (a meno che NULL).
Se non è impostato, il membro pExtChkBox è valido (a meno che NON SIA NULL).
OPTIF_EXT_DISABLED
La casella di controllo estesa o il pulsante push esteso non è selezionabile.
OPTIF_EXT_HIDE
CPSUI non visualizzerà la casella di controllo estesa o il pulsante push esteso.
OPTIF_HAS_POIEXT
Se impostato, il membro pOIExt è valido.
OPTIF_HIDE
CPSUI non visualizzerà questa opzione nella visualizzazione albero. CPSUI esamina questo flag solo quando si crea inizialmente la visualizzazione albero, quindi la modifica del flag dal valore iniziale non ha alcun effetto.
OPTIF_INITIAL_TVITEM
Se impostato, CPSUI imposta lo stato attivo della finestra iniziale su questa opzione quando visualizza la visualizzazione albero. CPSUI espande i nodi dell'albero e scorre l'opzione nella visualizzazione in base alle esigenze. Se l'opzione è nascosta o se questo flag non è impostato per alcuna struttura OPTITEM, CPSUI sceglie lo stato attivo iniziale.
OPTIF_NO_GROUPBOX_NAME
Se non è impostato e pOptype non è zero, CPSUI usa la stringa pName come titolo della casella di gruppo.
Se impostato, CPSUI fornisce un titolo groupbox.
OPTIF_OVERLAY_NO_ICON
Se imposta CPSUI sovrappone l'icona IDI_CPSUI_NO sull'icona associata all'opzione. Vedere il membro Sel/pSel .
OPTIF_OVERLAY_STOP_ICON
Se impostato, CPSUI sovrappone l'icona IDI_CPSUI_STOP sull'icona associata all'opzione. Vedere il membro Sel/pSel .
OPTIF_OVERLAY_WARNING_ICON
Se impostato, CPSUI sovrappone l'icona IDI_CPSUI_WARNING sull'icona associata all'opzione. Vedere il membro Sel/pSel .
OPTIF_SEL_AS_HICON
Se impostato, il membro Sel contiene un handle dell'icona.
Se non è impostato, il membro Sel contiene un identificatore di risorsa icona.
Questo flag può essere usato solo quando pOptType contiene NULL.
UserData
Valore facoltativo a 32 bit che può essere impostato e usato dal chiamante.
Le DLL dell'interfaccia della stampante per Unidrv e Pscript usano questo membro per fornire un puntatore a una struttura USERDATA . I plug-in dell'interfaccia utente possono fare riferimento a questa struttura.
pName
Identificatore di stringa che rappresenta un nome di opzione localizzato e visualizzabile. Questo può essere un puntatore a 32 bit a una stringa con terminazione NULL oppure può essere un identificatore di risorsa stringa a 16 bit, con HIWORD impostato su zero. Vedere anche la descrizione di DMPubID, di seguito.
DUMMYUNIONNAME
DUMMYUNIONNAME.Sel
Questa unione indica il valore del parametro attualmente selezionato dell'opzione. L'utilizzo dipende dal tipo di opzione CPSUI.
Se pOptType è NULL, l'opzione non ha parametri, quindi questa unione identifica un'icona da associare al nodo treeview per l'opzione. L'identificatore dell'icona può essere un handle icona o un identificatore di risorsa icona, come indicato da OPTIF_SEL_AS_HICON in Flag.
DUMMYUNIONNAME.pSel
Questa unione indica il valore del parametro attualmente selezionato dell'opzione. L'utilizzo dipende dal tipo di opzione CPSUI.
Se pOptType è NULL, l'opzione non ha parametri, quindi questa unione identifica un'icona da associare al nodo treeview per l'opzione. L'identificatore dell'icona può essere un handle icona o un identificatore di risorsa icona, come indicato da OPTIF_SEL_AS_HICON in Flag.
DUMMYUNIONNAME2
Definisce l'unione DUMMYUNIONNAME2 .
DUMMYUNIONNAME2.pExtChkBox
Struttura puntatore a EXTCHKBOX
DUMMYUNIONNAME2.pExtPush
Questa unione può essere un puntatore a una struttura EXTCHKBOX , un puntatore a una struttura EXTPUSH o NULL.
Una struttura OPTITEM può facoltativamente avere una struttura EXTCHKBOX, una struttura EXTPUSH o nessuno dei due associati. Se questa unione non è NULL e se OPTIF_EXT_IS_EXTPUSH è impostata in Flag, pExtPush è valida. Se il flag non è impostato, pExtChkBox è valido.
pOptType
Puntatore a una struttura OPTTYPE che descrive il tipo di visualizzazione dell'opzione. Se NULL, l'opzione non ha parametri e viene usata come elemento padre per le opzioni con un valore di livello superiore. Le opzioni figlio devono seguire immediatamente l'elemento padre nella matrice OPTITEM. Vedere la sezione Osservazioni seguenti.
HelpIndex
Indice file della Guida, che identifica il testo della Guida da associare all'opzione . Se zero, il testo del file della Guida non esiste per questa opzione. Si noti che il membro pOIExt di questa struttura deve essere impostato con l'indirizzo di una struttura OIEXT per consentire l'esistenza della funzionalità del testo della Guida.
DMPubID
Questo membro è destinato all'uso dalle DLL dell'interfaccia della stampante, quando si crea una finestra delle proprietà Proprietà documento (vedere DrvDocumentPropertySheets). Si tratta di un valore costante che specifica quale, se presente, membro pubblico della struttura DEVMODEW è associato a questa opzione. Nella tabella seguente sono elencate costanti disponibili, il membro della struttura DEVMODE associato e il valore necessario per pName per ogni costante.
Constant Value | Valore pName obbligatorio | Membro struttura |
---|---|---|
DMPUB_COLOR | dmColor | IDS_CPSUI_COLOR_APPERANCE |
DMPUB_COPIES_COLLATE | dmCopies e 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 | Non contenuto nella sezione pubblica di DEVMODE. | IDS_CPSUI_NUP |
DMPUB_ORIENTATION | dmOrientation | IDS_CPSUI_ORIENTATION |
DMPUB_OUTPUTBIN | Non contenuto nella sezione pubblica di DEVMODE. | IDS_CPSUI_OUTPUTBIN |
DMPUB_PAGEORDER | Non contenuto nella sezione pubblica di DEVMODE. | IDS_CPSUI_PAGEORDER |
DMPUB_PRINTQUALITY | dmPrintQuality | IDS_CPSUI_PRINTQUALITY o IDS_CPSUI_RESOLUTION. Se non specificato, il nome predefinito è IDS_CPSUI_RESOLUTION. |
DMPUB_QUALITY | Non contenuto nella sezione pubblica di DEVMODE. | IDS_CPSUI_QUALITY_SETTINGS |
DMPUB_SCALE | dmScale | IDS_CPSUI_SCALE |
DMPUB_TTOPTION | dmTTOption | IDS_CPSUI_TTOPTION |
DMPUB_NONE | Non contenuto nella sezione pubblica di DEVMODE. | |
Maggiore o uguale a DMPUB_USER | Ignorato da CPSUI, può essere un valore definito dal chiamante. |
CPSUI non gestisce una struttura DEVMODE. L'applicazione è responsabile della copia dei parametri di opzione selezionati dall'utente in una struttura DEVMODE . CPSUI usa il contenuto DMPubID per determinare la posizione ad albero delle opzioni standard e per determinare il contenuto delle schede Layout e Paper/Quality (vedere il membro pDlgPage della struttura COMPROPSHEETUI ).
Per altre informazioni sull'uso del membro DMPubID , vedere la sezione Osservazioni seguenti.
UserItemID
Valore facoltativo fornito dall'applicazione che può essere usato per scopi di identificazione delle opzioni. Non fatto riferimento a CPSUI.
wReserved
Riservato, deve essere inizializzato su zero.
pOIExt
Puntatore a una struttura OIEXT facoltativa. Il chiamante è responsabile dell'allocazione dell'archiviazione per questa struttura.
dwReserved[3]
Riservato, deve essere inizializzato su zero.
Commenti
Le strutture OPTITEM devono essere posizionate in una matrice e l'indirizzo della matrice deve essere inserito nel membro pOptItem di una struttura COMPROPSHEETUI .
Il membro Level consente di creare nodi figlio nella visualizzazione albero. Ad esempio, per creare un set di nodi di opzione sotto un nodo padre di livello 1, specificare il livello 2 per ogni nodo figlio e includere le strutture OPTITEM nella matrice OPTITEM, immediatamente dopo la struttura OPTITEM dell'elemento padre. Nella struttura OPTITEM padre, pOptType deve essere NULL.
Il nodo radice di treeview è il livello 0. Le opzioni visualizzate quando un utente espande il nodo radice sono di livello 1. Il numero massimo di livelli è 256.
Per i valori di opzione archiviati nella struttura DEVMODE di una stampante, il membro DMPubID deve identificare l'opzione. Per ogni valore DMPubID usato, una DLL dell'interfaccia della stampante deve specificare il tipo di opzione CPSUI elencato nella tabella seguente.
Valore DMPubID | Tipo di opzione CPSUI obbligatorio |
---|---|
DMPUB_COLOR | TVOT_2STATES |
DMPUB_COPIES_COLLATE | TVOT_UDARROW più EXTCHKBOX (Vedere i commenti che seguono questa tabella). |
DMPUB_DEFSOURCE | TVOT_LISTBOX |
DMPUB_DITHERTYPE | TVOT_LISTBOX |
DMPUB_DUPLEX | TVOT_2STATES o TVOT_3STATES |
DMPUB_FORMNAME | TVOT_LISTBOX |
DMPUB_ICMINTENT | TVOT_2STATES o TVOT_3STATES |
DMPUB_ICMMETHOD | TVOT_2STATES o TVOT_3STATES |
DMPUB_MEDIATYPE | TVOT_LISTBOX |
DMPUB_NUP | TVOT_LISTBOX |
DMPUB_ORIENTATION | TVOT_2STATES o TVOT_3STATES |
DMPUB_OUTPUTBIN | TVOT_LISTBOX |
DMPUB_PAGEORDER | TVOT_2STATES o TVOT_3STATES |
DMPUB_PRINTQUALITY | TVOT_LISTBOX |
DMPUB_QUALITY | TVOT_2STATES o TVOT_3STATES |
DMPUB_SCALE | TVOT_UDARROW |
DMPUB_TTOPTION | TVOT_LISTBOX |
Se DMPubID è DMPUB_COPIES_COLLATE e la stampante può collare copie, è necessario specificare una casella di controllo estesa (struttura EXTCHKBOX ). I membri della struttura EXTCHCKBOX devono essere impostati come segue:
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;
Se OPTIF_EXT_HIDE non è impostato in Flag, CPSUI abilita la casella di controllo se un utente richiede più di una copia e lo disabilita se viene richiesta una sola copia.
Inoltre, CPSUI imposta il testo visualizzato dell'opzione da copiare per una copia e copia per più di una copia.
Se DMPubID è DMPUB_COLOR, la prima struttura OPTPARAM (Sel=0) deve rappresentare La scala grigia e pData nella struttura OPTPARAM deve essere IDS_CPSUI_GRAYSCALE. La seconda struttura OPTPARAM (Sel=1) deve rappresentare Color e pData nella struttura OPTPARAM deve essere IDS_CPSUI_COLOR. Se DMPubID di un'altra opzione è DMPUB_ICMINTENT e se Color non è selezionato, CPSUI disabilita l'opzione per cui viene specificato DMPUB_ICMINTENT.
CPSUI disabilita la corrispondenza dei colori quando l'opzione Color non è selezionata.
Requisiti
Requisito | Valore |
---|---|
Intestazione | compstui.h (include Compstui.h) |