Составители:
Рубрика:
сможете вызвать функцию DdeUninitialize(), осуществляющую корректное за-
вершение сеанса.
После инициализации сервер должен зарегистрировать имена предлагае-
мых сервисов. Для этой цели служит функция DdeNameService(), которая вы-
зывается с указанием дескриптора строки, содержащей имя сервиса,
и идентификатора экземпляра данного сервиса. По идентификатору экземпля-
ра DDEML узнает о том, какая процедура обратного вызова и какой поток
поддерживают данный сервис:
HDDEDATA DdeMameService (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() сооб-
щений с указанием типов ожидаемых ответов (табл. 9.1).
Таблица 9.1
Сообщение Ответ
120
сможете вызвать функцию DdeUninitialize(), осуществляющую корректное за-
вершение сеанса.
После инициализации сервер должен зарегистрировать имена предлагае-
мых сервисов. Для этой цели служит функция DdeNameService(), которая вы-
зывается с указанием дескриптора строки, содержащей имя сервиса,
и идентификатора экземпляра данного сервиса. По идентификатору экземпля-
ра DDEML узнает о том, какая процедура обратного вызова и какой поток
поддерживают данный сервис:
HDDEDATA DdeMameService (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() сооб-
щений с указанием типов ожидаемых ответов (табл. 9.1).
Таблица 9.1
Сообщение Ответ
120
Страницы
- « первая
- ‹ предыдущая
- …
- 118
- 119
- 120
- 121
- 122
- …
- следующая ›
- последняя »
