Составители:
сервиса. По идентификатору экземпляра DDEML узнает о том, какая процедура обрат-
ного вызова и какой поток поддерживают данный сервис.
HDDEDATA DdeNameService (DWORD dwInstID, // идентификатор экземпляра
HSZ hszl, // строка с именем сервиса
HSZ hszRes, // зарезервирован
UINT uFlags ); // флаги
Значение параметра dwInstID возвращается функцией DdeInitialize. Параметр
uFlags может содержать следующие флаги:
DNS_REGISTER - Регистрация имени сервиса.
DNS_UNREGISTER - Отмена регистрации имени сервиса. Если аргумент hszl имеет
значение NULL, происходит отмена регистрации всех сервисов данного сервера.
DNS_FILTERON - Предотвращает получение сервером сообщений XTYP_CONNECT
для незарегистрированных сервисов.
DNS_FILTEROFF - Позволяет серверу получать сообщения XTYP_CONNECT при вы-
зове любой DDE-программой функции DdeConnect.
Возвращаемый функцией DdeNameService результат в действительности представ-
ляет собой логическое значение, причем он соответствует ошибке, а ненулевое значение
- успешному выполнению функции. Но в настоящее время он имеет тип HDDEDATA,
что позволяет в будущем расширить диапазон значений этого индикатора.
Если приложение поддерживает более одного сервиса, каждый из них должен ре-
гистрироваться отдельно. Использование для каждого сервиса отдельного потока так-
же имеет ряд преимуществ (в частности, в этом случае обеспечивается неизменность
дескриптора экземпляра потока на протяжении всего времени существования данного
сервиса).
"Сердцем" любого DDEML-приложения является функция DdeCallback. Windows
передает ей восемь параметров вызова. Функция DdeCallback аналогична функции
WndProc в том, что возвращаемый ею ответ определяется приложением. Ниже приведен
список поступающих в функцию DdeCallback сообщений с указанием типов ожидаемых
ответов (табл. 8.5).
Таблица 8.5
Сообщение Ответ
XTYP_ADVSTART, XTYP_CONNECT Логическое значение (TRUE, FALSE)
XTYP_ADVREQ, XTYP_REQUEST,
XTYP_WILDCONNECT
Дескриптор блока данных (или NULL)
XTYP_ADVDATA, XTYP_EXECUTE,
XTYP_POKE
Флаг : DDE_FACK, DDE_FBUSY или
DDE_FNOTPROCESSED
XTYP_ADVSTOP, XTYP_DISCONNECT,
XTYP_CONNECT_CONFIRM, XTYP_ERROR,
XTYP_REGISTER, XTYP_UNREGISTER,
XTYP_XACT_COMPLETE
Нет ответа; только уведомление
Функция DdeClientTransaction дает команду DDEML отправить сообщение серве-
ру. Тип сообщения зависит от характера действий, запрашиваемых клиентом. В табл. 8.6
перечислены некоторые типы сообщений и соответствующие им транзакции, выполняе-
мые сервером.
Таблица 8.6
Сообщение Транзакция
204
сервиса. По идентификатору экземпляра DDEML узнает о том, какая процедура обрат- ного вызова и какой поток поддерживают данный сервис. HDDEDATA DdeNameService (DWORD dwInstID, // идентификатор экземпляра HSZ hszl, // строка с именем сервиса HSZ hszRes, // зарезервирован UINT uFlags ); // флаги Значение параметра dwInstID возвращается функцией DdeInitialize. Параметр uFlags может содержать следующие флаги: DNS_REGISTER - Регистрация имени сервиса. DNS_UNREGISTER - Отмена регистрации имени сервиса. Если аргумент hszl имеет значение NULL, происходит отмена регистрации всех сервисов данного сервера. DNS_FILTERON - Предотвращает получение сервером сообщений XTYP_CONNECT для незарегистрированных сервисов. DNS_FILTEROFF - Позволяет серверу получать сообщения XTYP_CONNECT при вы- зове любой DDE-программой функции DdeConnect. Возвращаемый функцией DdeNameService результат в действительности представ- ляет собой логическое значение, причем он соответствует ошибке, а ненулевое значение - успешному выполнению функции. Но в настоящее время он имеет тип HDDEDATA, что позволяет в будущем расширить диапазон значений этого индикатора. Если приложение поддерживает более одного сервиса, каждый из них должен ре- гистрироваться отдельно. Использование для каждого сервиса отдельного потока так- же имеет ряд преимуществ (в частности, в этом случае обеспечивается неизменность дескриптора экземпляра потока на протяжении всего времени существования данного сервиса). "Сердцем" любого DDEML-приложения является функция DdeCallback. Windows передает ей восемь параметров вызова. Функция DdeCallback аналогична функции WndProc в том, что возвращаемый ею ответ определяется приложением. Ниже приведен список поступающих в функцию DdeCallback сообщений с указанием типов ожидаемых ответов (табл. 8.5). Таблица 8.5 Сообщение Ответ XTYP_ADVSTART, XTYP_CONNECT Логическое значение (TRUE, FALSE) XTYP_ADVREQ, XTYP_REQUEST, Дескриптор блока данных (или NULL) XTYP_WILDCONNECT XTYP_ADVDATA, XTYP_EXECUTE, Флаг : DDE_FACK, DDE_FBUSY или XTYP_POKE DDE_FNOTPROCESSED XTYP_ADVSTOP, XTYP_DISCONNECT, Нет ответа; только уведомление XTYP_CONNECT_CONFIRM, XTYP_ERROR, XTYP_REGISTER, XTYP_UNREGISTER, XTYP_XACT_COMPLETE Функция DdeClientTransaction дает команду DDEML отправить сообщение серве- ру. Тип сообщения зависит от характера действий, запрашиваемых клиентом. В табл. 8.6 перечислены некоторые типы сообщений и соответствующие им транзакции, выполняе- мые сервером. Таблица 8.6 Сообщение Транзакция 204
Страницы
- « первая
- ‹ предыдущая
- …
- 200
- 201
- 202
- 203
- 204
- …
- следующая ›
- последняя »