>Option Explicit >' ***************** >Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0 >Private Const INTERNET_OPEN_TYPE_DIRECT = 1 >Private Const INTERNET_OPEN_TYPE_PROXY = 3 > >Private Const scUserAgent = "VB Project" >Private Const INTERNET_FLAG_RELOAD = &H80000000 > >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 hOpen As Long, ByVal sUrl As String, _ >ByVal sHeaders As String, ByVal lLength 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 > >Public Function OpenURL(ByVal sUrl As String) As String > Dim hOpen As Long > Dim hOpenUrl As Long > Dim bDoLoop As Boolean > Dim bRet As Boolean > Dim sReadBuffer As String * 2048 > Dim lNumberOfBytesRead As Long > Dim sBuffer As String > > hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, _ > vbNullString, vbNullString, 0) > > hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, _ > INTERNET_FLAG_RELOAD, 0) > > bDoLoop = True > While bDoLoop > sReadBuffer = vbNullString > bRet = InternetReadFile(hOpenUrl, sReadBuffer, _ > Len(sReadBuffer), lNumberOfBytesRead) > sBuffer = sBuffer & Left$(sReadBuffer, _ > lNumberOfBytesRead) > If Not CBool(lNumberOfBytesRead) Then bDoLoop = False > Wend > > If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl) > If hOpen <> 0 Then InternetCloseHandle (hOpen) > OpenURL = sBuffer > >End Function >