Функция DDESetService( )

Создает, освобождает или модифицирует имена и установки служб DDE.

Синтаксис:

DDESetService(cServiceName, cOption [, cDataFormat | lExpression])

Параметры:
cServiceName
Задает имя службы, которую следует создать, освободить, модифицировать или о которой нужно получить информацию.
cOption
Задает создание, освобождение, изменение службы или получение информации о ней. В следующей таблице приведен перечень опций, которые можно задать в качестве cOption, с указанием их значений, принимаемых по умолчанию, и описанием каждой опции.

Опция		По умолчанию	Описание
DEFINE		-		Создает новое имя службы
RELEASE		-		Освобождает существующее имя службы
ADVISE		.F.		Разрешает или запрещает уведомление клиента об изменениях в элементах
EXECUTE		.F.		Разрешает или запрещает выполнение команд
POKE		.F.		Разрешает или запрещает передачу клиентом информации для данной службы
REQUEST		.T.		Разрешает или запрещает запросы к службе
FORMATS		CF_TEXT		Задает поддерживаемые форматы данных

DEFINE
Создает новое имя службы. Например, следующая команда создает имя службы myservice:

glNewService = DDESetService('myservice', 'DEFINE')
RELEASE
Освобождает существующее имя службы, чтобы высвободить системные ресурсы. Когда освобождается имя службы, освобождаются и все имена тем этой службы.
Следующая команда освобождает имя службы, созданное в предыдущем примере:
glRelease = DDESetService('myservice', 'RELEASE')

Чтобы освободить службу Visual FoxPro, используемую по умолчанию, выдайте такую команду:

glRelFox = DDESetService('Visual FoxPro', 'RELEASE')

ADVISE
Указывает, будет ли клиент извещаться об изменении данных в каком-либо элементе или задает возвращение текущего статуса уведомления для данной службы. Подробнее об уведомлении клиентов см. описание функции DDEAdvise( ).
Чтобы разрешить уведомление клиента, задайте в качестве lExpression значение "истина" (.T.). Если задать "ложь" (.F.), уведомление клиента будет запрещено.
Чтобы возвратить текущий статус уведомления клиента для данной службы, опустите выражение lExpression. Функция DDESetService( ) возвратит значение "истина", если в данной службе уведомление клиента разрешено; в противном случае будет возвращено значение "ложь".

EXECUTE
Позволяет разрешать или запрещать запросы к службе на выполнение команд или определять для данной службы текущий статус выполнения.
Чтобы разрешить запросы клиента на выполнение команды, задайте в качестве lExpression значение "истина" (.T.). Если задать "ложь" (.F.), запросы клиента на выполнение команды будут запрещены. Значение .F. принимается по умолчанию.
Чтобы возвратить текущий статус выполнения команд для данной службы, опустите аргумент lExpression. Функция DDESetService( ) возвратит значение "истина", если запросы клиента на выполнение команд разрешены в данной службе; в противном случае будет возвращено значение "ложь".
Следующие команды разрешают выполнение команд и запрещают запросы данных из приложений-клиентов для службы myservice. Затем на экран выводится текущий статус выполнения команд для myservice:

glExecute = DDESetService('myservice', 'EXECUTE', .T.)
glRequest = DDESetService('myservice', 'REQUEST', .F.)
? DDESetService('myservice', 'EXECUTE')

POKE
Позволяет разрешать или запрещать запросы на пересылку для данной службы. Вы также можете определить текущий статус пересылки для службы с данным именем. Подробнее о пересылке данных клиенту или серверу см. описание функции DDEPoke( ).
Чтобы разрешить запросы клиента на передачу данных, задайте в качестве lExpression значение "истина" (.T.). Если задать "ложь" (.F.), запросы клиента на передачу будут запрещены. Значение .F. принимается по умолчанию.
Чтобы возвратить текущий статус пересылки для данной службы, опустите аргумент lExpression. Функция DDESetService( ) возвратит значение "истина", если запросы на пересылку для данной службы разрешены; в противном случае будет возвращено значение "ложь".
REQUEST
Данная опция разрешает или запрещает запросы клиента к данной службе, а также возвращает текущий статус запросов для этой службы.
Чтобы разрешить запросы клиента к службе, задайте значение "истина" (.T.) в качестве выражения lExpression. Если задать "ложь" (.F.), запросы клиента к службе будут запрещены. По умолчанию принимается значение "истина" (.T.).
Чтобы возвратить текущий статус запросов для данной службы, опустите аргумент lExpression. Функция DDESetService( ) возвращает значение "истина", если запросы клиента для данной службы разрешены; в противном случае возвращается "ложь".
Следующие команды запрещают запросы приложений-клиентов к службе myservice и выводят на экран текущий статус запросов для myservice:

glRequest = DDESetService('myservice', 'REQUEST', .F.)
? DDESetService('myservice', 'REQUEST')

FORMATS [cDataFormat]
Задает форматы данных, поддерживаемые данной службой. Запросы сервером форматов, не указанных в списке cDataFormat, отвергаются. Задавать поддерживаемые форматы данных следует списком, разделяя их запятыми. Например:

=DDESetService('myservice', 'FORMATS', 'CF_TEXT, CF_SYLK')

Если опустить аргумент cDataFormat, будет поддерживаться только формат CF_TEXT.

lExpression
Задает состояние опции REQUEST, EXECUTE, POKE или ADVISE. Задайте значение "истина" (.T.), чтобы разрешить данную опцию, или "ложь" (.F.), чтобы запретить ее.

Результат:
Логический

Комментарии:
Допустима только в Visual FoxPro и FoxPro для Windows.
Visual FoxPro может выступать в роли сервера динамического обмена данными (DDE) для передачи информации приложениями-клиентами, базирующимся на Microsoft Windows. Функция DDESetService( ) используется для создания, освобождения или модификации имен и установок служб Visual FoxPro. Для каждого имени службы с помощью функции DDESetTopic( ) может быть создан набор имен тем. Приложения-клиенты запрашивают данные по темам DDE.
Функция DDESetService( ) возвращает значение "истина" (.T.), если служба была успешно создана, освобождена или модифицирована. Если службу не удалось создать, освободить или модифицировать, DDESetService( ) возвращает "ложь" (.F.).
Функцию DDESetService( ) можно использовать и для получения информации о данной службе. В Visual FoxPro существует имя службы, используемое по умолчанию: Visual FoxPro. У этой службы есть одно имя темы System. В следующей таблице перечислены все имена элементов, поддерживаемые темой System.

Имя элемента	Элемент
Topics		Список допустимых имен тем
Formats		Список поддерживаемых форматов
Status		"Занят" или "Готов"
SysItems		Список имен элементов

С помощью функции DDESetTopic( ) можно модифицировать службу Visual FoxPro или освободить ее. О том, как манипулировать именем службы Visual FoxPro, см. описание параметров функции DDESetTopic( ).


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 01.01.2003