2.5.147 FtLbsData

The FtLbsData structure specifies the properties of a list or drop-down list embedded object in a sheet.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

ft

cbFContinued

fmla (variable)

...

cLines

iSel

A

B

C

D

E

F

G

lct

idEdit

dropData (variable)

...

rgLines (variable)

...

bsels (variable)

...

ft (2 bytes):  Reserved. MUST be 0x0013.

cbFContinued (2 bytes):  An unsigned integer that indirectly specifies whether some of the data in this structure appear in a subsequent Continue record. If cbFContinued is 0x0000, all of the fields in this structure except ft and cbFContinued MUST NOT exist. If this entire structure is contained within the same record, then cbFContinued MUST be greater than or equal to the size, in bytes, of this structure, not including the four bytes for the ft and cbFContinued fields. If part of this structure is in one or more subsequent Continue records, then the cbFContinued field MUST hold the value calculated according to the following formula:

cbFContinued = size of the fields of this structure in the current record - 1.

fmla (variable):  An ObjFmla that specifies the range of cell values that are the items in this list.

cLines (2 bytes): An unsigned integer that specifies the number of items in the list. MUST be less than or equal to 0x7FFF.

iSel (2 bytes): An unsigned integer that specifies the one-based index of the first selected item in this list. A value of 0x0000 specifies there is no currently selected item. MUST be less than or equal to cLines.

A - fUseCB (1 bit): A bit that specifies whether the lct field MUST be ignored. MUST be a value from the following table:

Value

Meaning

0

The lct field MUST be ignored.

1

The lct field MUST NOT be ignored.

B - fValidPlex (1 bit): A bit that specifies whether the rgLines field exists.

C - fValidIds (1 bit): A bit that specifies whether the idEdit field MUST be ignored. MUST be a value from the following table:

Value

Meaning

0

The idEdit field MUST be ignored.

1

The idEdit field MUST NOT be ignored.

D - fNo3d (1 bit): A bit that specifies whether this control is displayed without 3-dimensional effects. MUST be a value from the following table:

Value

Meaning

0

The control is displayed with 3-dimentional effects.

1

The control is not displayed with 3-dimentional effects.

E - wListSelType (2 bits): An unsigned integer that specifies the type of selection behavior this list control is expected to support. MUST be a value from the following table:

Value

Meaning

0

The list control is only allowed to have one selected item.

1

The list control is allowed to have multiple items selected by clicking on each item.

2

The list control is allowed to have multiple items selected by holding the CTRL key and clicking on each item.

F - unused (1 bit):  Undefined and MUST be ignored.

G - reserved (1 bit):  MUST be zero, and MUST be ignored.

lct (8 bits): An unsigned integer that specifies the behavior class of this list. MUST be ignored if the fUseCB field is 0. Otherwise, MUST be a value from the following table:

Value

Expected behavior of the control

0x00

Regular sheet dropdown control (like a list box object).

0x01

PivotTable page field dropdown.

0x03

AutoFilter dropdown. The lct field MUST NOT have this value unless this object is in a worksheet or macro sheet.

0x05

AutoComplete dropdown.

0x06

Data validation list dropdown. The lct field MUST NOT have this value unless this object is in a worksheet or macro sheet.

0x07

PivotTable row or column field dropdown.

0x09

Dropdown for the Total Row of a table.

idEdit (2 bytes): An ObjId that specifies the edit box associated with this list. A value of idEdit.id equal to 0x0000 or a value of fValidIds equal to 0 specifies that there is no edit box associated with this list.

dropData (variable): An optional LbsDropData that specifies properties for this dropdown control. This field MUST exist if and only if the containing Obj’s cmo.ot is equal to 0x0014.

rgLines (variable): An optional array of XLUnicodeString. Each string in this array specifies an item in the list. This array MUST exist if and only if the fValidPlex field is equal to 1. The number of elements in this array, if it exists, MUST be cLines. The cch field of each string in this array MUST be less than or equal to 0x00FF. If this array does not fit in the owning Obj record, Continue records are used. Each string in this array MUST be entirely contained within the same record.

bsels (variable): An optional array of one-byte Booleans (section 2.5.14)  that specifies which items in the list are part of a multiple selection. This array MUST exist if and only if the wListSelType field is not equal to 0. The number of elements in this array, if it exists, MUST be cLines. The nth byte in this array specifies whether the nth list item is part of the multiple selection. The value of each element MUST be taken from the following table:

Value

Meaning

0x00

List item is not part of the multiple selection.

0x01

List item is part of the multiple selection.

If this array does not fit in the current record, or would come within eight bytes of the end of the maximum allowable size of that record, Continue records are used.