OPTITEM structure (compstui.h)
The OPTITEM structure is used by CPSUI applications (including printer interface DLLs) for describing one property sheet option on a property sheet page, if the page is described by a COMPROPSHEETUI structure.
Syntax
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
Size, in bytes, of the OPTITEM structure.
Level
Specifies the level of this option in the treeview. For more information, see the Remarks section below.
DlgPageIdx
Identifies the dialog to which the option belongs. Specifies an array index into the DLGPAGE array pointed to by the pDlgPage member of the COMPROPSHEETUI structure.
If pDlgPage points to a CPSUI-supplied, predefined DLGPAGE structure, CPSUI supplies this index.
Flags
Optional bit flags that modify the option's characteristics. The OPTIF_CHANGEONCE flag is set by CPSUI; all other flags are set by the caller. Any combination of the following flags can be set.
OPTIF_CALLBACK
When a user modifies the option, CPSUI should call the _CPSUICALLBACK-typed callback function specified in the COMPROPSHEETUI structure.
OPTIF_CHANGED
The _CPSUICALLBACK-typed callback function should set this flag if it modified the option, so that CPSUI will redisplay it.
OPTIF_CHANGEONCE
CPSUI sets this bit if a user modified the option.
OPTIF_COLLAPSE
Collapse this option and its children so that it is not expanded in the treeview.
OPTIF_DISABLED
Disables the option so that it is not user-modifiable.
OPTIF_ECB_CHECKED
The associated extended check box is in the checked state.
OPTIF_EXT_IS_EXTPUSH
If set, the pExtPush member is valid (unless NULL).
If not set, the pExtChkBox member is valid (unless NULL).
OPTIF_EXT_DISABLED
The extended check box or extended push button is not selectable.
OPTIF_EXT_HIDE
CPSUI will not display the extended check box or extended push button.
OPTIF_HAS_POIEXT
If set, the pOIExt member is valid.
OPTIF_HIDE
CPSUI will not display this option in the treeview. CPSUI examines this flag only when initially creating the treeview, so changing the flag from its initial value has no effect.
OPTIF_INITIAL_TVITEM
If set, CPSUI sets the initial window focus to this option when it displays the treeview. CPSUI expands tree nodes and scrolls the option into view as necessary. If the option is hidden, or if this flag is not set for any OPTITEM structure, CPSUI chooses the initial focus.
OPTIF_NO_GROUPBOX_NAME
If not set, and pOptype is not zero, CPSUI uses the pName string as the groupbox title.
If set, CPSUI provides a groupbox title.
OPTIF_OVERLAY_NO_ICON
If set CPSUI overlays its IDI_CPSUI_NO icon onto the icon associated with the option. (See the Sel/pSel member.)
OPTIF_OVERLAY_STOP_ICON
If set, CPSUI overlays its IDI_CPSUI_STOP icon onto the icon associated with the option. (See the Sel/pSel member.)
OPTIF_OVERLAY_WARNING_ICON
If set, CPSUI overlays its IDI_CPSUI_WARNING icon onto the icon associated with the option. (See the Sel/pSel member.)
OPTIF_SEL_AS_HICON
If set, the Sel member contains an icon handle.
If not set, the Sel member contains an icon resource identifier.
This flag can only be used when pOptType contains NULL.
UserData
Optional 32-bit value that can be set and used by the caller.
(Printer interface DLLs for Unidrv and Pscript use this member to supply a pointer to a USERDATA structure. User interface plug-ins can reference this structure.)
pName
String identifier representing a localized, displayable option name. This can be a 32-bit pointer to a NULL-terminated string, or it can be a 16-bit string resource identifier, with HIWORD set to zero. (Also see the description of DMPubID, below.)
DUMMYUNIONNAME
DUMMYUNIONNAME.Sel
This union indicates the option's currently selected parameter value. Its usage is dependent on the CPSUI option type.
If pOptType is NULL, the option has no parameters, so this union identifies an icon to be associated with the treeview node for the option. The icon identifier can be either an icon handle or an icon resource identifier, as indicated by OPTIF_SEL_AS_HICON in Flags.
DUMMYUNIONNAME.pSel
This union indicates the option's currently selected parameter value. Its usage is dependent on the CPSUI option type.
If pOptType is NULL, the option has no parameters, so this union identifies an icon to be associated with the treeview node for the option. The icon identifier can be either an icon handle or an icon resource identifier, as indicated by OPTIF_SEL_AS_HICON in Flags.
DUMMYUNIONNAME2
Defines the DUMMYUNIONNAME2 union.
DUMMYUNIONNAME2.pExtChkBox
Pointer to EXTCHKBOX structure
DUMMYUNIONNAME2.pExtPush
This union can be a pointer to an EXTCHKBOX structure, a pointer to an EXTPUSH structure, or NULL.
An OPTITEM structure can optionally have an EXTCHKBOX structure, an EXTPUSH structure, or neither, associated with it. If this union is not NULL, and if OPTIF_EXT_IS_EXTPUSH is set in Flags, pExtPush is valid. If the flag is not set, pExtChkBox is valid.
pOptType
Pointer to an OPTTYPE structure that describes the option's display type. If NULL, the option has no parameters and is used as a parent to options with a higher Level value. The child options must immediately follow the parent in the OPTITEM array. (See the following Remarks section.)
HelpIndex
Help file index, which identifies help text to be associated with the option. If zero, help file text does not exist for this option. Note that the pOIExt member of this structure must be set with the address of an OIEXT structure in order for help text functionality to exist.
DMPubID
This member is meant for use by printer interface DLLs, when creating a Document Properties property sheet (see DrvDocumentPropertySheets). It is a constant value specifying which, if any, public member of the DEVMODEW structure is associated with this option. The following table lists available constants, the associated DEVMODE structure member, and the required value for pName for each constant.
Constant Value | Required pName Value | Structure Member |
---|---|---|
DMPUB_COLOR | dmColor | IDS_CPSUI_COLOR_APPERANCE |
DMPUB_COPIES_COLLATE | dmCopies and 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 | Not contained in public section of DEVMODE. | IDS_CPSUI_NUP |
DMPUB_ORIENTATION | dmOrientation | IDS_CPSUI_ORIENTATION |
DMPUB_OUTPUTBIN | Not contained in public section of DEVMODE. | IDS_CPSUI_OUTPUTBIN |
DMPUB_PAGEORDER | Not contained in public section of DEVMODE. | IDS_CPSUI_PAGEORDER |
DMPUB_PRINTQUALITY | dmPrintQuality | IDS_CPSUI_PRINTQUALITY or IDS_CPSUI_RESOLUTION. If not specified, the default name is IDS_CPSUI_RESOLUTION. |
DMPUB_QUALITY | Not contained in public section of DEVMODE. | IDS_CPSUI_QUALITY_SETTINGS |
DMPUB_SCALE | dmScale | IDS_CPSUI_SCALE |
DMPUB_TTOPTION | dmTTOption | IDS_CPSUI_TTOPTION |
DMPUB_NONE | Not contained in public section of DEVMODE. | |
Greater than or equal to DMPUB_USER | Ignored by CPSUI, can be a caller-defined value. |
CPSUI does not maintain a DEVMODE structure. The application is responsible for copying user-selected option parameters into a DEVMODE structure. CPSUI uses DMPubID contents to determine treeview placement of standard options, and to determine the contents of the Layout and Paper/Quality tabs (see the pDlgPage member of the COMPROPSHEETUI structure).
For additional information about using the DMPubID member, see the following Remarks section.
UserItemID
Optional application-supplied value that can be used for option identification purposes. Not referenced by CPSUI.
wReserved
Reserved, must be initialized to zero.
pOIExt
Pointer to an optional OIEXT structure. The caller is responsible for allocating storage for this structure.
dwReserved[3]
Reserved, must be initialized to zero.
Remarks
OPTITEM structures should be placed in an array, and the array's address should be placed in the pOptItem member of a COMPROPSHEETUI structure.
The Level member allows you to create child nodes in the treeview. For example, to create a set of option nodes under a level 1 parent node, specify level 2 for each child node and include their OPTITEM structures in the OPTITEM array, immediately after the parent's OPTITEM structure. In the parent's OPTITEM structure, pOptType should be NULL.
The treeview root node is level 0. Options displayed when a user expands the root node are level 1. The maximum number of levels is 256.
For option values that are stored in a printer's DEVMODE structure, the DMPubID member must identify the option. For each DMPubID value that is used, a printer interface DLL must specify the CPSUI option type listed in the following table.
DMPubID Value | Required CPSUI Option Type |
---|---|
DMPUB_COLOR | TVOT_2STATES |
DMPUB_COPIES_COLLATE | TVOT_UDARROW plus EXTCHKBOX (See comments following this table.) |
DMPUB_DEFSOURCE | TVOT_LISTBOX |
DMPUB_DITHERTYPE | TVOT_LISTBOX |
DMPUB_DUPLEX | TVOT_2STATES or TVOT_3STATES |
DMPUB_FORMNAME | TVOT_LISTBOX |
DMPUB_ICMINTENT | TVOT_2STATES or TVOT_3STATES |
DMPUB_ICMMETHOD | TVOT_2STATES or TVOT_3STATES |
DMPUB_MEDIATYPE | TVOT_LISTBOX |
DMPUB_NUP | TVOT_LISTBOX |
DMPUB_ORIENTATION | TVOT_2STATES or TVOT_3STATES |
DMPUB_OUTPUTBIN | TVOT_LISTBOX |
DMPUB_PAGEORDER | TVOT_2STATES or TVOT_3STATES |
DMPUB_PRINTQUALITY | TVOT_LISTBOX |
DMPUB_QUALITY | TVOT_2STATES or TVOT_3STATES |
DMPUB_SCALE | TVOT_UDARROW |
DMPUB_TTOPTION | TVOT_LISTBOX |
If DMPubID is DMPUB_COPIES_COLLATE and the printer can collate copies, an extended check box (EXTCHKBOX structure) must be provided. The EXTCHCKBOX structure's members must be set as follows:
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;
If OPTIF_EXT_HIDE is not set in Flags, CPSUI enables the check box if a user requests more than one copy, and disables it if only one copy is requested.
Additionally, CPSUI sets the option's display text to copy for one copy and copies for more than one copy.
If DMPubID is DMPUB_COLOR, its first OPTPARAM structure (Sel=0) must represent Gray Scale, and pData in the OPTPARAM structure must be IDS_CPSUI_GRAYSCALE. Its second OPTPARAM structure (Sel=1) must represent Color, and pData in the OPTPARAM structure must be IDS_CPSUI_COLOR. If another option's DMPubID is DMPUB_ICMINTENT and if Color is not selected, CPSUI disables the option for which DMPUB_ICMINTENT is specified.
CPSUI disables color matching when Color is not selected.
Requirements
Requirement | Value |
---|---|
Header | compstui.h (include Compstui.h) |