OPTTYPE

typedef struct _OPTTYPE {

    WORD             cbSize;

    BYTE             Type;

    BYTE             Flags;

    WORD             Count;

    WORD             BegCtrlID;

    POPTPARAM        pOptParam;

    WORD             Style;

    WORD             wReserved[3];

    DWORD            dwReserved[3];

} OPTTYPE, *POPTTYPE;

The OPTTYPE structure describes the set of possible selections for an option item, and the selection method for the set.

Members

cbSize

Size in bytes of this structure.

Type

Specifies the type of the option item. The CPSUI uses Type to determine how to lay out the OPTPARAM selections associated with an OPTITEM option item. This field must be one of the following predefined TVOT_Xxx values.

Value Description
TVOT_2STATES There are two option buttons for the item’s two possible states.
TVOT_3STATES There are three option buttons for the item’s three possible states.
TVOT_UDARROW The item has an up-down control.
TVOT_TRACKBAR The item has a trackbar.
TVOT_SCROLLBAR The item has a scroll bar.
TVOT_LISTBOX The item has a list box.
TVOT_COMBOBOX The item has a combo box.
TVOT_EDITBOX The item has an edit box.
TVOT_PUSH BUTTON The item has a push button.
TVOT_CHKBOX The item has a check box.

Flags

Bitmask containing a bitwise OR of any of the following values.

Flag Description
OPTTF_TYPE_DISABLED Specifies that the array of OPTPARAM structures to which pOptParam points are disabled, meaning that none of the selectable items can be selected.
OPTTF_NOSPACE_
BEFORE_POSTFIX
Specifies that the CPSUI should not add a space character before the postfix string when combining it with the string specified in the pName field of the associated OPTITEM. For example, this bit could be set when the postfix string is “%”, so that the percent value and percent sign are displayed without a space between them.

This bit is valid only when an associated OPTPARAM item specifies a postfix string.


Count

Specifies the number of OPTPARAM structures to which pOptParam points. This value depends on the value of Type, and must be set as shown in the following table.

TVOT_Xxx Count
TVOT_2STATES 2
TVOT_3STATES 3
TVOT_UDARROW 2
TVOT_TRACKBAR 3
TVOT_SCROLLBAR 3
TVOT_LISTBOX n
TVOT_COMBOBOX n
TVOT_EDITBOX 2
TVOT_PUSH BUTTON 1
TVOT_CHKBOX 1

BegCtrlID

Specifies the start control window ID. Each OPTITEM has a predefined number of control window IDs associated with it. This field must be set to zero if the caller is using the CPSUI’s standard pages.

The CPSUI uses BegCtrlID to manage the selections and initializations of an item associated with the caller’s dialog box. It uses BegCtrlID only when the OPTITEM is associated with a user-defined DLGTEMPLATE; that is, only when the DlgTemplateID field of the associated DLGPAGE structure is not a standard DP_STD_Xxx template ID.

The caller must organize control IDs based on Type as shown in the following table.

TVOT_Xxx Control ID Values
TVOT_2STATES BegCtrlID      =  2 States group box ID
BegCtrlID+1  =  2 States static title text ID
BegCtrlID+2  =  State 1 radio button ID
BegCtrlID+3  =  State 1 icon control ID
BegCtrlID+4  =  State 2 radio button ID
BegCtrlID+5  =  State 2 icon control ID
BegCtrlID+6  =  Extended check box/push button control ID
BegCtrlID+7  =  Extended check box/push button icon control ID
TVOT_3STATES BegCtrlID      =  3 States group box ID
BegCtrlID+1  =  3 States static title text ID
BegCtrlID+2  =  State 1 radio button ID
BegCtrlID+3  =  State 1 icon control ID
BegCtrlID+4  =  State 2 radio button ID
BegCtrlID+5  =  State 2 icon control ID
BegCtrlID+6  =  State 3 radio button ID
BegCtrlID+7  =  State 3 icon control ID
BegCtrlID+8  =  Extended check box/push button control ID
BegCtrlID+9  =  Extended check box/push button icon control ID
TVOT_UDARROW BegCtrlID      =  Up-down arrow group box ID
BegCtrlID+1  =  Up-down arrow static title text ID
BegCtrlID+2  =  Up-down arrow edit box ID
BegCtrlID+3  =  Up-down arrow icon control ID
BegCtrlID+4  =  Up-down arrow postfix static text ID
BegCtrlID+5  =  Up-down arrow help static text ID
BegCtrlID+6  =  Up-down arrow’s arrow ID
BegCtrlID+7  =  Extended check box/push button control ID
BegCtrlID+8  =  Extended check box/push button icon control ID
TVOT_TRACKBAR
TVOT_SCROLLBAR
BegCtrlID      =  Track/Scroll bar group box ID
BegCtrlID+1  =  Track/Scroll bar static title text ID
BegCtrlID+2  =  Horizontal Track/Scroll bar ID
BegCtrlID+3  =  Track/Scroll bar icon control ID
BegCtrlID+4  =  Track/Scroll bar low range text control ID
BegCtrlID+5  =  Track/Scroll bar high range text control ID
BegCtrlID+6  =  Track/Scroll bar postfix ID
BegCtrlID+7  =  Extended check box/push button control ID
BegCtrlID+8  =  Extended check box/push button icon control ID
TVOT_LISTBOX
TVOT_COMBOBOX
BegCtrlID      =  List/Combo box group box ID
BegCtrlID+1  =  List/Combo box static title text ID
BegCtrlID+2  =  List/Combo box ID
BegCtrlID+3  =  List/Combo box icon control ID
BegCtrlID+4  =  Extended check box/push button control ID
BegCtrlID+5  =  Extended check box/push button icon control ID
TVOT_EDITBOX BegCtrlID      =  Edit box group box ID
BegCtrlID+1  =  Edit box static title text ID
BegCtrlID+2  =  Edit box ID
BegCtrlID+3  =  Edit box icon control ID
BegCtrlID+4  =  Edit box postfix static text ID
BegCtrlID+5  =  Edit box help static text ID
BegCtrlID+6  =  Extended check box/push button control ID
BegCtrlID+7  =  Extended check box/push button icon control ID
TVOT_PUSH BUTTON
TVOT_CHKBOX
BegCtrlID      =  Push button/Check box group box ID
BegCtrlID+1  =  Push button/Check box static title text ID (not used by CPSUI)
BegCtrlID+2  = Push button/Check box ID
BegCtrlID+3  = Push button/Check box icon control ID
BegCtrlID+4  =  Extended check box/push button control ID
BegCtrlID+5  =  Extended check box/push button icon control ID

pOptParam

Pointer to an array of OPTPARAM structures describing the selections that belong to an OPTITEM item’s set.

Style

Specifies the style of the group box for an option item. OTS_LBCB_Xxx styles are applied only to the TVOT_LISTBOX and TVOT_COMBOBOX item types; OTS_PUSH_Xxx styles are applied only to TVOT_PUSH BUTTON  types. This field can be a bitwise OR of the following values.

Value Description
OTS_LBCB_SORT The CPSUI sorts the listbox or combobox selectable items in ascending order, based on the pData fields of the OPTPARAM structures to which pOptParam points.
OTS_LBCB_
PROPPAGE_LBUSECB
If Type is TVOT_LISTBOX and the selection set identified by this OPTTYPE structure is on a non-treeview user-defined property sheet page dialog box, the CPSUI interprets control for a combobox rather than a listbox.
OTS_LBCB_
PROPPAGE_CBUSELB
If Type is TVOT_COMBOBOX and the selection set identified by this OPTTYPE structure is on a non-treeview user-defined property sheet page dialog box, the CPSUI interprets control for a listbox rather than a combobox.
OTS_LBCB_
INCLUDE_ITEM_NONE
The CPSUI adds Not Available to the list of selections in a listbox or combobox. The CPSUI sets the Sel field of the OPTITEM structure to -1 when a user selects None from the list. It also validates Sel during page initialization, setting any out-of-range values to -1.
OTS_LBCB_
NO_ICON16_IN_ITEM
The CPSUI does not include icons in the listbox or combobox. By default, each item string in a listbox or combobox has a 16x16 icon placed in front of it.
OTS_PUSH_
INCLUDE_SETUP_TITLE
The CPSUI appends “Setup” to the push button’s text string.
OTS_PUSH_
NO_DOT_DOT_DOT
The CPSUI does not append “…” to the text string on a push button.
OTS_PUSH_ENABLE_ALWAYS Regardless of permissions, the CPSUI allows the user to select the push button. The associated callback or dialog box procedure should display the current setting but not allow the user to modify it.

wReserved[3]

Reserved; these fields must be set to zero.

dwReserved[3]

Reserved; these fields must be set to zero.