通知处理程序
异步 RasDial 调用必须指定通知处理程序。 在异步连接操作期间,远程访问连接管理器使用通知处理程序在连接状态更改或发生错误时通知 RAS 客户端。
通知处理程序执行的操作可分为以下类别:
有三种类型的通知处理程序,每种类型的通知处理程序都接收相同的基本信息:当前连接状态和仅当发生错误时才为非零的错误代码。
值 | 定义 |
---|---|
RasDialFunc | 仅接收当前连接状态和错误代码信息的回调函数原型。 |
RasDialFunc1 | 除基本信息外,还接收 HRASCONN 连接句柄和扩展错误信息的回调函数原型。 连接句柄参数使 RasDialFunc1 对于支持多个同时连接操作的客户端应用程序非常有用。 这允许客户端为所有操作指定相同的回调函数,并使回调函数能够确定哪个连接正在更改状态。 |
RasDialFunc2 | 类似于 RasDialFunc1 的回调函数。 但是, RasDialFunc2 已增强以支持多链接连接。 |
窗口句柄 | RAS 向其发送 WM_RASDIALEVENT 消息的窗口句柄,其中包含当前连接状态和错误代码信息。 如果源代码必须与 16 位 Windows 兼容,请使用此方法,因为 16 位 Windows 不支持任一回调函数。 |
远程访问连接管理器挂起连接操作,直到通知处理程序返回。 因此,除非发生错误,否则处理程序应尽快返回 。
不应从通知处理程序中调用 RasDial 函数。 ( RasGetConnectStatus、 RasEnumEntries、 RasEnumConnections、 RasGetErrorString 和 RasHangUp) 的其他远程访问函数可以从处理程序内部调用。