Основы программирования в Win32API. Марапулец Ю.В. - 124 стр.

UptoLike

Составители: 

ет от сервера уведомление об изменении данных, но не отправляет ему сооб-
щения с запросом данных. Вместо этого DDEML посылает клиенту сообщение
XTYP_ADVDATA
с пустым дескриптором блока данных.
Сервер, который не поддерживает транзакции с обязательным и полуобя-
зательным ответом, должен установить флаг CBF_FAIL_ADVISES
в функции DdeInitialize(). Таким образом он предотвратит получение нежела-
тельных сообщений XTYP_ADVSTART и XTYP_ADVSTOP.
Для получения нового значения элемента данных клиент должен выпол-
нить транзакцию с необязательным ответом (рис. 9.3):
1. Сервер объявляет о поступлении новых данных.
2. DDEML информирует клиента, но клиент игнорирует это уведомле-
ние. Уведомления будут посылаться клиенту всякий раз при изменении дан-
ных на сервере, однако клиент может проигнорировать их всех.
3. Сервер вновь объявляет об изменениях в запрашиваемом элементе
данных.
4. Клиент откликается, запрашивая данные (сообщение
XTYP_REQUEST).
5. DDEML передает запрос серверу.
6. Сервер посылает запрашиваемые данные клиенту
Рис. 9.3. Цикл транзакции с полуобязательным ответом
9.3.4. Принудительные и командные транзакции
Некоторые серверы предпочитают получать данные от клиента иным спо-
124
ет от сервера уведомление об изменении данных, но не отправляет ему сооб-
щения с запросом данных. Вместо этого DDEML посылает клиенту сообщение
XTYP_ADVDATA с пустым дескриптором блока данных.
     Сервер, который не поддерживает транзакции с обязательным и полуобя-
зательным ответом, должен установить флаг CBF_FAIL_ADVISES
в функции DdeInitialize(). Таким образом он предотвратит получение нежела-
тельных сообщений XTYP_ADVSTART и XTYP_ADVSTOP.
     Для получения нового значения элемента данных клиент должен выпол-
нить транзакцию с необязательным ответом (рис. 9.3):
     1. Сервер объявляет о поступлении новых данных.
     2. DDEML информирует клиента, но клиент игнорирует это уведомле-
ние. Уведомления будут посылаться клиенту всякий раз при изменении дан-
ных на сервере, однако клиент может проигнорировать их всех.
     3. Сервер вновь объявляет об изменениях в запрашиваемом элементе
данных.
     4. Клиент      откликается,     запрашивая      данные    (сообщение
XTYP_REQUEST).
     5. DDEML передает запрос серверу.
     6. Сервер посылает запрашиваемые данные клиенту




              Рис. 9.3. Цикл транзакции с полуобязательным ответом
             9.3.4. Принудительные и командные транзакции

    Некоторые серверы предпочитают получать данные от клиента иным спо-

                                      124