лиотекой DDEML (DDE Management Library) вместо термина имя прило-
жения применяется термин имя сервиса.
2. Тема
Каждый DDE-диалог должен иметь по крайней мере одну тему (topic), хо-
тя один и тот же диалог может "переключаться" между несколькими тема-
ми либо же несколько диалогов могут использовать несколько тем. Если
провести аналогию с разговором между людьми, тема эквивалентна пред-
мету беседы. При DDE-диалоге тема может указываться и распознаваться
обеими сторонами. Имя темы обычно совпадает с именем файла.
3. Элемент
Имя элемента представляет собой идентификатор внутри темы, указы-
вающий конкретный элемент данных, который передается в результате те-
кущей операции обмена. Если участник диалога не распознает тему, обмен
данными прерывается и диалог нарушается, хотя и не прекращается полно-
стью. Имя элемента может указывать на страницу документа, строку, изо-
бражение, ячейку таблицы или любой другой фрагмент данных, который
обычно передается от одной программы к другой.
Пусть, например, электронная таблица поддерживает два типа сервисов:
spreadsheet (таблица) и chart (диаграмма). Каждый из этих сервисов
в качестве темы может использовать имена определенных файлов данных
электронной таблицы. Элементами сервиса spreadsheet могут быть ячейки
электронной таблицы, а элементами сервиса chart – форматы представления
данных, такие как pie (круговая диаграмма) или bar (гистограмма).
Количество тем и элементов ограничивается лишь словарем, который со-
вместно используется всеми участниками сеанса. Элементы могут представ-
лять собой как простейшие типы данных (например, целые числа) так
и растровые изображения, метафайлы, массивы или структурированные запи-
си. В роли информационного элемента может также выступать любой пользо-
вательский тип данных, распознаваемый всеми участниками диалога.
Можно ограничить число сервисов на сервере до одного. В данном слу-
чае, если имена сервиса и сервера одинаковы, то клиент, который знает одно
имя, автоматически узнает и второе. Следовательно, он может инициировать
диалог, используя заданное имя ЕХЕ-файла.
Если сервер и сервис имеют разные имена или у сервера в наличии имеет-
ся несколько сервисов, приложениям-клиентам (а также их разработчикам) для
инициирования диалога нужна дополнительная информация. Альтернативным
вариантом является создание специального сервиса с каким-либо легко распо-
знаваемым именем (например, system), который просто сообщает приложени-
ям-клиентам имена сервисов, доступных на этом сервере.
Кроме того, если приложение-клиент знает и имя сервера (программы), и
имя сервиса, оно может запустить сервер, например с помощью функции Crea-
teProcess(), и восстановить связи из предыдущего сеанса.
DDE-диалоги состоят из транзакций трех типов: подключения, принуди-
117