Метод ДИН_COM_ОБЪЕКТ.ВЫЗВАТЬ
Метод ВЫЗВАТЬ позволяет вызвать метод СОМ-объекта. Первым параметром задается имя метода, далее в квадратных скобках может задаваться список параметров, а в конце, отделенная запятой – переменная результата.
ФУНКЦИЯ ЛОГИКА: ВЫЗВАТЬ(<имя> [([ПЕРЕМ] <параметр1> [, ...])] [,<результат>])
Параметры
- имя
- Имя метода, как оно задано в IDL (не путать с назначенным идентификатором в статической модели!).
- параметр1 ... параметрN
- Значения фактических параметров вызова. Количество заданных параметров должно соответствовать количеству параметров метода. Также должные соответствовать типы параметров и способ передачи. Входные параметры (in) передаются по значению, для них задается выражение соответствующего типа. Выходные (out) и входные/выходные (in/out) параметры передаются по ссылке, для них задается переменная, перед идентификатором которой ставится ключевое слово ПЕРЕМ. Т.к. код вызова метода ВЫЗВАТЬ генерируется компилятором внутреннего языка в момент, когда информация о COM-интерфейсе недоступна, необходимо явно указывать в списке все выходные параметры с помощью ключевого слова ПЕРЕМ.
- результат
- Переменная результата. Отделяется от имени функции или списка параметров запятой. Переменная результата может не указываться, даже если вызываемый метод возвращает результат. И наоборот, может указываться, когда метод ничего не возвращает.
Возвращаемое значение
ДА – в случае успешного выполнения вызова метод COM, НЕТ – в противном случае. Текст сообщения об ошибки можно получить вызовом метода ПОСЛ_ОШИБКА.
Замечание: на момент вызова COM-объект должен быть создан методом СОЗДАТЬ_ЭКЗЕМПЛЯР.
Для доступа к свойствам COM-объекта используются методы СЧИТАТЬ и ЗАПИСАТЬ.
Пример:
// объявляем переменную ПЕРЕМ ДИН_COM_ОБЪЕКТ: об // создаем COM-объект, используя ProgId класса ЕСЛИ об.СОЗДАТЬ_ЭКЗЕМПЛЯР ( "", "", "MyLib.MyClass" ) ТО ПЕРЕМ ЧИСЛО: и = 1 ПЕРЕМ СТРОКА: с ПЕРЕМ ЛОГИКА: рез // первый параметр – числовое выражение (по значению) // второй параметр – строка по ссылке // рез – переменная логического типа для возвращаемого значения ЕСЛИ об.ВЫЗВАТЬ ( "SomeMethod" ( и + 10, ПЕРЕМ с), рез) ТО // … КОНЕЦ_ЕСЛИ // вызов простейшего метода без параметров и результата ЕСЛИ об.ВЫЗВАТЬ ( "SimpleMethod" ) ТО // … КОНЕЦ_ЕСЛИ КОНЕЦ_ЕСЛИ