ctimeout.cls
来自「vb网络通信协议,参考例程」· CLS 代码 · 共 70 行
CLS
70 行
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "CTimeout"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'SetTimer函数创建一个有时间限制的定时器
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
'KillTimer函数销毁一个特定的定时器
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private m_lngTimerID As Long
Private m_intTimeoutValue As Integer
'
Public Sub StartTimer()
'启动定时器
If m_lngTimerID > 0 Then
'如果原来有定时器,则销毁
KillTimer 0, m_lngTimerID
End If
MFtpSupport.p_intCounter = 0
'创建定时器
m_lngTimerID = SetTimer(0, 0, 1000, AddressOf MFtpSupport.TimerProc)
End Sub
'销毁定时器
Public Sub StopTimer()
MFtpSupport.p_intCounter = 0
KillTimer 0, m_lngTimerID
End Sub
'设定TimeoutValue属性值,用来设置限制时间
Public Property Let TimeoutValue(NewValue As Integer)
m_intTimeoutValue = NewValue
End Property
'获得TimeoutValue属性值
Public Property Get TimeoutValue() As Integer
TimeoutValue = m_intTimeoutValue
End Property
'获得timeout属性,用来判断是否已经超时
Public Property Get Timeout() As Boolean
If MFtpSupport.p_intCounter > m_intTimeoutValue Then
Timeout = True
Call StopTimer
Else
Timeout = False
End If
End Property
'让计时器回0
Public Sub Reset()
MFtpSupport.p_intCounter = 0
End Sub
'类销毁的时候,同时销毁定时器
Private Sub Class_Terminate()
Call StopTimer
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?