Интерфейс ImaMethod предназначен для использования методов, в отличие от интерфейса ImaMethodDef, служащего для упрощения их реализации. Класс метода поддерживает интерфейсы ImaReadList и ImaMethod. Внутри себя он хранит указатель на интерфейс ImaMethodDef.

- SetMethodDef ([in] ImaMethodDef* mdef)
- GetMethodDef ([out,retval] ImaMethodDef** mdef)
- GetParam ([out,retval] ImaList** param)
- SetInput ([in] int argno, [in] imamatrix* arg)
- GetInput ([in] int argno, [out,retval] ImaMatrix** arg)
- SetOutput ([in] int argno, [in] ImaMatrix* arg)
- GetOutput ([in] int argno, [out,retval] ImaMatrix** arg)
- Calc ()
- CalcCell ([in] int argno, [in] maIndex index, [out] ImaCell *cell)

    HRESULT SetMethodDef ([in] ImaMethodDef* mdef)

Функция служит для установки указателя на интерфейс определителя метода. Она также вызывает функцию Init определителя метода.
Никогда не вызывайте эту функцию напрямую. Списки входных и выходных параметров при вызове не изменяются. Пользуйтесь функцией SetMethod алгоритма.

Параметры:

mdef устанавливаемый определитель метода

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

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

    HRESULT GetMethodDef ([out,retval] ImaMethodDef** mdef)

Функция служит для получения определителя метода, хранящегося в методе.

Параметры:

mdef указатель на возвращаемый определитель метода

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

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

    HRESULT GetParam ([out,retval] ImaList** param)

Функция служит для получения списка параметров метода. Список параметров устанавливается во время создания поддерева метода и далее предполагается неизменным.

Параметры:

param указатель на возвращаемый список

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

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

    HRESULT SetInput ([in] int argno, [in] ImaMatrix* arg)

Функция служит для установки argno-го входного аргумента метода.

Параметры:

argno номер записываемого аргумента
arg записываемая матрица

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

MA_NOERROR при отсутствии ошибок
MA_ERR_NOTFOUND если у метода нет входного аргумента с номером argno

    HRESULT GetInput ([in] int argno, [out,retval] ImaMatrix** arg)

Функция служит для получения argno-го входного аргумента метода.

Параметры:

argno номер получаемого аргумента
arg указатель на получаемую матрицу

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

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если arg==NULL
MA_ERR_NOTFOUND если у метода нет входного аргумента с номером argno

    HRESULT SetOutput ([in] int argno, [in] ImaMatrix* arg)

Функция служит для установки argno-го выходного аргумента метода.

Параметры:

argno номер записываемого аргумента
arg записываемая матрица

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

MA_NOERROR при отсутствии ошибок
MA_ERR_NOTFOUND если у метода нет выходного аргумента с номером argno

    HRESULT GetOutput ([in] int argno, [out,retval] ImaMatrix** arg)

Функция служит для получения argno-го выходного аргумента метода.

Параметры:

argno номер получаемого аргумента
arg указатель на получаемую матрицу

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

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если arg==NULL
MA_ERR_NOTFOUND если у метода нет выходного аргумента с номером argno

    HRESULT Calc ()

Функция выполняет метод путем вызова функции CalcDef определителя метода.

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

код ошибки, возвращенный определителем метода всегда

    HRESULT CalcCell ([in] int argno, [in] maIndex index, [in] ImaCell *cell)

Функция вычисляет значение единственной ячейки в выходном аргументе метода путем вызова функции CalcCellDef определителя метода. Смысл аргументов тот же, что и для функции CalcCellDef.

Параметры:

argno номер выходного аргумента метода
index координата вычисляемого элемента матрицы. Подробнее смотри интерфейс матрицы
cell ячейка, в которую будет записан результат вычислений или NULL, если результат надо записать в соответствующую выходную матрицу

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

код ошибки, возвращенный определителем метода всегда