Ячейка данных способна хранить значение любого типа, как простого, так и объектного. Ячейки используются при записи и чтении данных в матрицах. Из ячеек составляются списки параметров.

Ниже перечислены функции интерфейса ImaCell.




HRESULT GetType ([out,retval] maType* type)
Функция возвращает тип значения ячейки.

Параметры:

type Указатель на возвращаемое значение

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

MA_NOERROR всегда



HRESULT GetAsBoolean ([out,retval] boolean* value)
HRESULT GetAsLong ([out,retval] int* value)
HRESULT GetAsDouble ([out,retval] double* value)
HRESULT GetAsString ([out,retval] maString* value)
Функции считывают из ячейки значение соответствующего типа. При необходимости выполняется преобразование данных к нужному типу.

Параметры:

value Указатель не возвращаемое значение

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

MA_NOERROR при отсутствии ошибок
MA_ERR_ACCESS, если запрещено чтение из ячейки

Замечание:

Функция GetAsString может возвращать NULL, если ячейка пуста (тип MA_EMPTY) или в неё записана NULL строка функцией SetAsString.


HRESULT SetAsBoolean ([in] boolean value)
HRESULT SetAsLong ([in] int value)
HRESULT SetAsDouble ([in] double value)
HRESULT SetAsString ([in] maString value)
Функции записывают в ячейку значение соответствующего типа и изменяет тип ячейки. Если в ячейке хранился компонент, число ссылок на него уменьшается на 1.

Параметры:

value Записываемое значение

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

MA_NOERROR при отсутствии ошибок
MA_ERR_ACCESS, если запрещена запись в ячейку

Замечание:

Аргумент функции SetAsString может быть == NULL. При этом тип ячейки будет MA_STRING.


HRESULT GetAsComponent ([in] maType type,[out,retval] IPersist** value)
HRESULT GetAsAnyComponent ([out,retval] IPersist** value)
Функции считывают из ячейки хранящийся там компонент. Если в ячейке значение простого типа или типа MA_EMPTY, то обе функции возвращают NULL. Функция GetAsComponent также возвращает NULL, если в ячейке — компонент не типа type.

Параметры:

type Тип затребованного компонента
value Указатель не возвращаемое значение

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

MA_NOERROR при отсутствии ошибок
MA_ERR_ACCESS, если запрещено чтение из ячейки


HRESULT SetAsComponent ([in] maType type,[in] IPersist* value);
HRESULT SetAsAnyComponent ([in] IPersist* value);
Функции записывает компонент в ячейку. Тип ячейки устанавливается равным type (SetAsComponent) или типу, совместимому с любым компонентом (SetAsAnyComponent).

Параметры:

type Тип записываемого компонента
value Указатель не возвращаемое значение

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

MA_NOERROR при отсутствии ошибок
MA_ERR_ACCESS, если запрещена запись в ячейку


HRESULT Copy ([in] ImaCell* cell)
Функция копирует значение ячейки из ячейки cell.

Параметры:

cell ячейка, из которой будет скопировано значение

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

MA_NOERROR при отсутствии ошибок
MA_ERR_ACCESS, если запрещена запись в ячейку или чтение из ячейки cell


HRESULT IsEmpty ()
Функция проверяет, является ли ячейка пустой.

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

MA_TRUE если ячейка пуста
MA_FALSE если ячейка непуста


HRESULT Clear ()
Функция устанавливает пустое значение ячейки. Если ячейка содержала указатель на интерфейс, для него вызывается Release.

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

MA_NOERROR при отсутствии ошибок
MA_ERR_ACCESS, если запрещена запись в ячейку