Список ячеек — это универсальная структура данных, позволяющая хранить алгоритмы, деревья параметров и методы со всеми их входными и выходными аргументами. Элементами списка являются ячейки данных ImaCell. Элементы списка доступны как по номерам, так и по именам. Элемент может иметь или не иметь имя. Элементы одного списка не могут иметь одинаковых имён. Элемент списка может хранить ещё один список, образуя тем самым дерево ячеек.
Интерфейс ImaReadList предоставляет доступ к ячейкам списка по именам и по номерам, но не позволяет модифицировать список. Этот интерфейс также поддерживают компоненты Список, Метод и Алгоритм .

- GetSize ([out,retval] int* size)
- GetCell ([in] int cellno, [out,retval] ImaCell** cell)
- FindCellno ([in] maString name, [out,retval] int* cellno)
- FindCell ([in,string] maString name, [out,retval] ImaCell** cell)
- GetCellName ([in] int cellno, [out,retval,string] maString* name)

    HRESULT GetSize ([out,retval] int* size)

Функция возвращает размер (количество элементов) списка.

Параметры:

size указатель на размер списка

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если size==NULL

    HRESULT GetCell ([in] int cellno, [out,retval] ImaCell** cell)

Функция возвращает ячейку списка с порядковым номером cellno. Если ячейка не существует, в cell записывается нулевой указатель.

Параметры:

cellno номер ячейки. Ячейки нумеруются от 0 до (size-1), где size — размер списка, выдаваемый функцией Size.
cell указатель на возвращаемую ячейку

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если cell==NULL
MA_ERR_NOTFOUND если ячейки с номером cellno нет в списке

    HRESULT FindCellno ([in] maString name, [out,retval] int* cellno)

Функция ищет в списке ячейку с именем name и записывает номер найденной ячейки в cellno. Если ячейка не найдена, в cellno записывается (-1).

Параметры:

name имя ячейки
cellno указатель на возвращаемый номер ячейки

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если name==NULL или cellno==NULL
MA_ERR_NOTFOUND если ячейки с именем name нет в списке

    HRESULT FindCell ([in,string] maString name, [out,retval] ImaCell** cell)

Функция совмещает в себе FindCellno и GetCell. Она возвращает в cell указатель на найденную ячейку. Если ячейка не существует, в cell записывается нулевой указатель.

Параметры:

name имя ячейки
cell указатель на возвращаемую ячейку

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если name==NULL или cell==NULL
MA_ERR_NOTFOUND если ячейки с именем name нет в списке

    HRESULT GetCellName ([in] int cellno, [out,retval,string] maString* name)

Функция возвращает имя ячейки с заданным номером. Если ячейка не имеет имени, в name записывается нулевой указатель. Если ячейка не существует, возвращается код ошибки MA_ERR_NOTFOUND.

Параметры:

cellno номер ячейки
name указатель на возвращаемое имя ячейки

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если name==NULL
MA_ERR_NOTFOUND если ячейки с номером cellno нет в списке