Обработчики уведомлений
Асинхронный вызов RasDial должен указывать обработчик уведомлений. Во время асинхронной операции подключения диспетчер подключений удаленного доступа использует обработчик уведомлений для информирования клиента RAS при изменении состояния подключения или возникновении ошибки.
Действия, выполняемые обработчиком уведомлений, можно разделить на следующие категории:
- обработка ошибок.
- Предоставление отзывов пользователю по мере выполнения операции подключения через различные состояния подключения. См. информационные уведомления.
- Обработка приостановленных состояний.
- Сигнализирует клиентскому приложению RAS при завершении операции подключения. См. уведомления о завершении.
Существует три типа обработчиков уведомлений, каждый из которых получает одну и ту же базовую информацию: текущее состояние подключения и код ошибки, отличный от нуля, только если произошла ошибка.
Ценность | Определение |
---|---|
RasDialFunc | Прототип функции обратного вызова, который получает только текущие сведения о состоянии подключения и коде ошибки. |
RasDialFunc1 | Прототип функции обратного вызова, который получает HRASCONN дескриптор подключения и расширенные сведения об ошибках в дополнение к основным сведениям. Параметр дескриптора подключения делает RasDialFunc1 полезным для клиентских приложений, поддерживающих несколько одновременных операций подключения. Это позволяет клиенту указать одну функцию обратного вызова для всех операций и включить функцию обратного вызова, чтобы определить, какие состояния изменяются. |
RasDialFunc2 | Функция обратного вызова, аналогичная RasDialFunc1. Однако RasDialFunc2 улучшены для поддержки подключений с несколькими каналами. |
Дескриптор окна | Дескриптор окна, в который RAS отправляет WM_RASDIALEVENT сообщения, содержащие текущие сведения о состоянии подключения и коде ошибки. Используйте этот метод, если исходный код должен быть совместим с 16-разрядными Windows, так как 16-разрядная Windows не поддерживает ни один из функций обратного вызова. |
Диспетчер подключений удаленного доступа приостанавливает операцию подключения, пока обработчик уведомлений не возвращается. По этой причине обработчик должен вернуться как можно скорее, если не произошла ошибка.
Функция RasDial не должна вызываться из обработчика уведомлений. Другие функции удаленного доступа (RasGetConnectStatus, RasEnumEntries, RasEnumConnections, RasGetErrorStringи RasHangUp) можно вызывать из обработчика.