The problem caterer?

speedy.sh/mkE4n/Thread1.zip

Thread of Inet control or Browser will use for each thread so I'm using the following code to get the source site above error I am using a separate variable for each thread of control

Code:
Private  Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA"  (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As  String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private  Declare Function InternetOpenUrl Lib "wininet.dll" Alias  "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As  String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal  lFlags As Long, ByVal lContext As Long) As Long
 
Private  Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As  Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long,  lNumberOfBytesRead As Long) As Integer
 
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Private Const IF_FROM_CACHE = &H1000000
Private Const IF_MAKE_PERSISTENT = &H2000000
Private Const IF_NO_CACHE_WRITE = &H4000000
Private Const BUFFER_LEN = 256
   
Public Function GetSource(sURL As String) As String
    Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String
    Dim hInternet As Long, hSession As Long, lReturn As Long
    hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)
    If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)
    If hInternet Then
        iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
        sData = sBuffer
        Do While lReturn <> 0
            iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
            sData = sData + Mid(sBuffer, 1, lReturn)
        Loop
    End If
    iResult = InternetCloseHandle(hInternet)
    GetSource = sData
End Function