VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "clsAsyncWeb" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True Option Explicit 'Public Event OnReadyStateChange(ByVal iNewState As Integer) Public Event OnRequestComplete(ByVal sData As String) Public Event OnRequestFailed() Private m_HttpReq As MSXML2.XMLHTTP40 Private Sub Class_Initialize() Call Randomize(Time) Set m_HttpReq = Nothing End Sub Private Sub Class_Terminate() Set m_HttpReq = Nothing End Sub Public Function FunctionReadyStateChange() 'Debug.Print "AsyncRequest ReadyStateChange : " & m_HttpReq.readyState If m_HttpReq.readyState = 4 Then RaiseEvent OnRequestComplete(m_HttpReq.responseText) End If End Function Public Function Send(ByVal sURL As String) As Boolean Set m_HttpReq = New MSXML2.XMLHTTP40 m_HttpReq.onreadystatechange = Me Call m_HttpReq.Open("GET", sURL, True) Call m_HttpReq.setRequestHeader("Cache-control", "no-cache") 'Disable caching Call m_HttpReq.Send End Function