Устанавливает канал динамического обмена данными (DDE) между Visual FoxPro и другим приложением на базе Microsoft Windows.

DDEInitiate(cServiceName, cTopicName)

Параметры

cServiceName

Задает имя службы приложения-сервера; в большинстве случаев это имя исполняемого файла без расширения. По умолчанию для Visual FoxPro используется имя службы Visual FoxPro. Если вы устанавливаете канал с Microsoft Excel, в качестве cServiceName берется Excel.

cTopicName

Задает имя темы. Тема определяется приложением и должна быть понятна ему. Например, одной из тем, предоставляемых почти на всех серверах DDE, является тема System. Имена служб и тем, поддерживаемых данным приложением, смотрите в документации на это приложение.

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

Numeric

Expand imageЗамечания

Функция DDEInitiate( ) устанавливает канал DDE между Visual FoxPro и приложением-сервером DDE. Как только канал установлен, Visual FoxPro может запрашивать данные из сервера, указывая в последующих функциях DDE номер этого канала. Visual FoxPro выступает в роли клиента, запрашивая данные из приложения-сервера по каналу связи.

Если канал успешно установлен, DDEInitiate( ) возвращает его номер. Номера каналов представляют собой неотрицательные числа, а общее количество каналов, которые можно установить, ограничено только системными ресурсами.

Если канал установить нельзя, DDEInitiate( ) возвращает -1. Если приложение-сервер не открыто, Visual FoxPro спрашивает, желаете ли вы его открыть. Если вы ответите Yes, нажав соответствующую кнопку, Visual FoxPro попытается открыть приложение. (С помощью функции DDELastError( ) можно определить, почему не удалось установить канал.)

Чтобы запретить выдачу запросов, предлагающих открыть приложение, установите в функции DDESetOption( ) опцию SAFETY. Можно для запуска приложения использовать и команду RUN с опцией /N.

Канал можно закрыть с помощью функции DDETerminate( ).

Expand imageПример

В следующем примере функция DDEInitiate( ) спользуется для установки канала DDE между Visual FoxPro и электронной таблицей Sheet1. 'Excel' представляет собой имя службы, а 'Sheet1' - имя темы. Номер канала * сохраняется в переменной памяти mchannum для использования в следующих функциях DDE.

  CopyCode imageCopy Code
mchannum = DDEInitiate('Excel', 'Sheet1')
IF mchannum != -1
   * Process client actions
   = DDETerminate(mchannum)  && Close the channel
ENDIF

Expand imageСмотри также