Определяет, как массивы переменных памяти VFP передаются внешним объектам COM.
COMARRAY(oObject [, nNewValue]) |
Параметры
- oObject
-
Определяет объектную ссылку на соответствующий объект COM.
- nNewValue
-
Определяет, как массивы переменных памяти передаются в объект COM, заданный в параметре oObject.
В следующей далее таблице приводятся возможные допустимые значения данного параметра nNewValue, определяющего вариант передачи массивов параметров в объекты COM.
nNewValue Краткое описание 0
Передаваемые массивы типа "zero-based", передаеются по-значению (by value).
1
Передаваемые массивы типа "one-based", передаются по-значению. Для совместимости с младшими версиями Visual FoxPro. (По-умолчанию)
10
Передаваемые массивы типа "zero-based", передаются по-ссылке (by reference).
11
Передаваемые массивы типа "one-based", передаются по-ссылке (by reference).
100
Передаваемые массивы имеют фиксированный размер, и не могут быть переопределены (изменены размеры).
1000
Двоичные массивы не могут быть конвертированы в символьные строки.
Данная функция COMARRAY( ) возвращает текущее значение варианта передачи параметров, при отсутствии аргумента nNewValue.
Возвращаемое значение
Числового типа. COMARRAY( ) возвращает текущий вариант передачи массивов в объекты COM.
Комментарии
Используйте функцию COMARRAY( ) только в тех случаях, когда передаете массивы данных во внешние объекты COM, при использовании следующего синтаксиса:
oComObject.Method(@MyArray)
Примечание |
---|
Если вы не указываете оператор передачи параметров "по-ссылке" (@), тогда только первый элемент массива передается в соответствующий объект COM, и, тем самым, функция and COMARRAY( ) - не работает. Данное правило используется для совместимости с младшими версиями Visual FoxPro. |
Когда вы работаете с двоичными массивами данных (VT_UI1), для взаимодействия с требуемыми объектами, серверами COM, система Visual FoxPro конвертирует двоичные массивы в символьные строки. В этом случае, используйте параметр nValue = 1000, который обеспечивает запрет конвертации исходных двоичных массивов данных в символьные строки.
Если некоторый внешний Клиент (внешняя программа) передает двоичные массивы по-ссылке в Visual FoxPro COM Server, то данный сервер Visual FoxPro COM должен также иметь соответствующую установку рассматриваемого параметра nValue =1000. Вы можете выполнить следующую далее команду в соответствующем событии Init создаваемого сервера автоматизации Visual FoxPro COM Server:
Копировать Код | |
---|---|
COMARRAY(THIS,1000) |
Другой вариант аддитивного параметра nValue = 100 обеспечивает сохранность размерности передаваемого массива данных. Вам необходимо контролировать возможные ошибки при попытках изменения размерности передаваемых массивов данных. В следующем далее примере демонстрируется, как предотвратить изменение размерности передаваемого массива данных. Для запуска этого примера требуется предварительное определение и создание модуля DLL, с именем "t1.dll".
Копировать Код | |
---|---|
LOCAL loSvr, laTest |