监控INet的StateChange事件:Private Sub Inet1_StateChanged(ByVal State As Integer) On Error Goto handler
If State = icError Then
MsgBox "ERROR"
End If
Exit Sub ' so handler doesnt run every timehandler: If err.number = 32576 then MsgBox "Timeout occurred.. or something" End If'or you can:Select Case Err.Number Case 32756 'blah Case 123456 'blah End SelectEnd Sub
On Error Goto handler
If State = icError Then
MsgBox "ERROR"
End If
Exit Sub ' so handler doesnt run every timehandler:
If err.number = 32576 then
MsgBox "Timeout occurred.. or something"
End If'or you can:Select Case Err.Number
Case 32756
'blah
Case 123456
'blah
End SelectEnd Sub
连接中状态发生改变,就会引发该事件。语法object_StateChanged(ByVal State As Integer)StateChanged 事件的语法包含下面部分:部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
State 整数。如下面的“设置值”所示,指定状态。
设置值State 的设置值:常数 值 描述
icNone 0 无状态可报告。
icHostResolvingHost 1 该控件正在查询所指定的主机的 IP 地址。
icHostResolved 2 该控件已成功地找到所指定的主机的 IP 地址。
icConnecting 3 该控件正在与主机连接。
icConnected 4 该控件已与主机连接成功。
icRequesting 5 该控件正在向主机发送请求。
icRequestSent 6 该控件发送请求已成功。
icReceivingResponse 7 该控件正在接收主机的响应。
icResponseReceived 8 该控件已成功地接收到主机的响应。
icDisconnecting 9 该控件正在解除与主机的连接。
icDisconnected 10 该控件已成功地与主机解除了连接。
icError 11 与主机通讯时出现了错误。
icResponseCompleted 12 该请求已经完成,并且所有数据均已接收到。
说明一般来说,使用 StateChanged 事件决定何时使用 GetChunk 方法来检索数据。要这样做,须使用 Select Case 语句,并测试 icResponseReceived (8) 或 icResponseCompleted (12)。注意,当该控件已完成一个操作时,且此操作在缓冲区中没有产生任何数据,此时 icResponseReceived 状态也可能出现。例如,当与某个 FTP 站点进行连接时,该控件将与此 FTP 站点“握手”,但没有在缓冲区中产生任何数据,此时会出现 icResponseReceived 状态。另一方面,一个操作完全完成后,会出现 icResponseCompleted 状态。例如,如果正在使用 Execute 方法和 GET 操作来检索某个文件,在此文件被完全检索之后,将出现 icResponseCompleted 事件,且仅出现一次。实际上,使用 icResponseReceived 状态可以对数据做语法分析,直到检索到所需信息为止(例如,检索 HTML 文件时,只对标头进行检索)。获得该信息后,就可以取消这次检索。另一方面,如果想检索整个文件,icResponseCompleted 状态还会通知传输已经完成,可以继续。