Составители:
вать имена определенных файлов данных электронной таблицы. Элементами сервиса
spreadsheet могут быть ячейки электронной таблицы, а элементами сервиса chart - форма-
ты представления данных, такие как pie (круговая диаграмма) или bar (гистограмма).
Количество тем и элементов ограничивается лишь словарем, который совместно
используется всеми участниками сеанса. Элементы могут представлять собой как про-
стейшие типы данных, например целые числа, так и растровые изображения, метафайлы,
массивы или структурированные записи. В роли информационного элемента может так-
же выступать любой пользовательский тип данных, распознаваемый всеми участниками
диалога.
Возможно ограничение числа сервисов на сервере до одного. В данном случае если
имена сервиса и сервера одинаковы, то клиент, который знает одно имя, автоматически
узнает и второе. Следовательно, он может инициировать диалог, используя заданное имя
ЕХЕ-файла.
Если сервер и сервис имеют разные имена или у сервера в наличии имеется не-
сколько сервисов, приложениям-клиентам (а также их разработчикам) для инициирова-
ния диалога нужна дополнительная информация. Альтернативным вариантом является
создание специального сервиса с каким-либо легко распознаваемым именем (например,
system), который просто сообщает приложениям-клиентам имена сервисов, доступных
на этом сервере.
Кроме того, если приложение-клиент знает и имя сервера (программы), и имя сер-
виса, оно может запустить сервер, например с помощью функции CreateProcess, и вос-
становить связи из предыдущего сеанса.
DDE-диалоги состоят из транзакций трех типов: подключения, принудительных
и командных [6, 12].
В транзакциях подключения, являющихся наиболее распространенными, клиент
запрашивает элемент данных, который находится на сервере. Различают три вида под-
ключения [12].
С необязательным ответом. Такой вид диалога инициируется приложением-
клиентом, посылающим широковещательный запрос WM_DDE_INITIATE, в котором
указывается вызываемое приложение и тип запрашиваемых данных (как первый, так и
второй параметры могут быть пустыми, если приемлемыми считаются любые сервер и
тема). В зависимости от обстоятельств на этот запрос может откликнуться один или не-
сколько серверов, идентифицируя себя для установления диалога. Если сервер не соот-
ветствует запрашиваемому имени или не распознает тему, он просто не откликается, по-
скольку приложение-клиент ожидает поступления только подтверждающих ответов.
После получения данных диалог немедленно завершается.
С полуобязательным ответом. Такой вид диалога подразумевает, что клиент и сервер
"знают" друг друга и сервер имеет новую информацию, которая, как он полагает, заин-
тересует клиента. Обычно клиент посылает серверу сообщение WM_DDE_ADVISE, де-
лая запрос о необходимости обновить тему (и элемент). Сервер подтверждает получение
запроса, но посылает данные только при наличии новой информации.
С обязательным ответом. Такой вид диалога отличается от предыдущего тем, что
клиент ожидает от сервера подтверждения и немедленного ответа. Если информация в
данный момент отсутствует, сервер просто ответит клиенту, что данные недоступны, и
будет ожидать следующего запроса. Сервер не будет передавать информацию до тех
пор, пока не поступит запрос от клиента.
В процессе одного и того же диалога могут чередоваться подключения всех трех
типов. Кроме того, их границы бывают настолько расплывчатыми, что порой трудно оп-
ределить, где заканчивается один тип подключения и начинается другой.
Принудительные транзакции используются для передачи от клиента к серверу
элемента данных, который специально не запрашивался.
202
вать имена определенных файлов данных электронной таблицы. Элементами сервиса spreadsheet могут быть ячейки электронной таблицы, а элементами сервиса chart - форма- ты представления данных, такие как pie (круговая диаграмма) или bar (гистограмма). Количество тем и элементов ограничивается лишь словарем, который совместно используется всеми участниками сеанса. Элементы могут представлять собой как про- стейшие типы данных, например целые числа, так и растровые изображения, метафайлы, массивы или структурированные записи. В роли информационного элемента может так- же выступать любой пользовательский тип данных, распознаваемый всеми участниками диалога. Возможно ограничение числа сервисов на сервере до одного. В данном случае если имена сервиса и сервера одинаковы, то клиент, который знает одно имя, автоматически узнает и второе. Следовательно, он может инициировать диалог, используя заданное имя ЕХЕ-файла. Если сервер и сервис имеют разные имена или у сервера в наличии имеется не- сколько сервисов, приложениям-клиентам (а также их разработчикам) для инициирова- ния диалога нужна дополнительная информация. Альтернативным вариантом является создание специального сервиса с каким-либо легко распознаваемым именем (например, system), который просто сообщает приложениям-клиентам имена сервисов, доступных на этом сервере. Кроме того, если приложение-клиент знает и имя сервера (программы), и имя сер- виса, оно может запустить сервер, например с помощью функции CreateProcess, и вос- становить связи из предыдущего сеанса. DDE-диалоги состоят из транзакций трех типов: подключения, принудительных и командных [6, 12]. В транзакциях подключения, являющихся наиболее распространенными, клиент запрашивает элемент данных, который находится на сервере. Различают три вида под- ключения [12]. С необязательным ответом. Такой вид диалога инициируется приложением- клиентом, посылающим широковещательный запрос WM_DDE_INITIATE, в котором указывается вызываемое приложение и тип запрашиваемых данных (как первый, так и второй параметры могут быть пустыми, если приемлемыми считаются любые сервер и тема). В зависимости от обстоятельств на этот запрос может откликнуться один или не- сколько серверов, идентифицируя себя для установления диалога. Если сервер не соот- ветствует запрашиваемому имени или не распознает тему, он просто не откликается, по- скольку приложение-клиент ожидает поступления только подтверждающих ответов. После получения данных диалог немедленно завершается. С полуобязательным ответом. Такой вид диалога подразумевает, что клиент и сервер "знают" друг друга и сервер имеет новую информацию, которая, как он полагает, заин- тересует клиента. Обычно клиент посылает серверу сообщение WM_DDE_ADVISE, де- лая запрос о необходимости обновить тему (и элемент). Сервер подтверждает получение запроса, но посылает данные только при наличии новой информации. С обязательным ответом. Такой вид диалога отличается от предыдущего тем, что клиент ожидает от сервера подтверждения и немедленного ответа. Если информация в данный момент отсутствует, сервер просто ответит клиенту, что данные недоступны, и будет ожидать следующего запроса. Сервер не будет передавать информацию до тех пор, пока не поступит запрос от клиента. В процессе одного и того же диалога могут чередоваться подключения всех трех типов. Кроме того, их границы бывают настолько расплывчатыми, что порой трудно оп- ределить, где заканчивается один тип подключения и начинается другой. Принудительные транзакции используются для передачи от клиента к серверу элемента данных, который специально не запрашивался. 202
Страницы
- « первая
- ‹ предыдущая
- …
- 198
- 199
- 200
- 201
- 202
- …
- следующая ›
- последняя »