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.