>Function getdatafromurl > Lparameters pcUrlName > Declare Integer InternetOpen In wininet.Dll String sAgent, ; > INTEGER lAccessType, String sProxyName, ; > STRING sProxyBypass, Integer lFlags > > Declare Integer InternetOpenUrl In wininet.Dll ; > INTEGER hInternetSession, String sUrl, String sHeaders,; > INTEGER lHeadersLength, Integer lFlags, Integer lContext > > Declare Integer InternetReadFile In wininet.Dll Integer hfile, ; > STRING @sBuffer, Integer lNumberofBytesToRead, Integer @lBytesRead > > Declare short InternetCloseHandle In wininet.Dll Integer hInst > > #Define INTERNET_OPEN_TYPE_PRECONFIG 0 > #Define INTERNET_OPEN_TYPE_DIRECT 1 > #Define INTERNET_OPEN_TYPE_PROXY 3 > #Define SYNCHRONOUS 0 > #Define INTERNET_FLAG_RELOAD 2147483648 > #Define CR Chr(13) > > Local lsAgent, lhInternetSession, lhUrlFile, llOk, lnOk, lcRetVal, lcReadBuffer, lnBytesRead > >* what application is using Internet services? > lsAgent = "VPF 5.0" > > lhInternetSession = InternetOpen( lsAgent, INTERNET_OPEN_TYPE_PRECONFIG, ; > '', '', SYNCHRONOUS) > Thanks for that Tore Gregory's 1 liner has fixed it >* debugging line - uncomment to see session handle >* WAIT WINDOW "Internet session handle: " + LTRIM(STR(hInternetSession)) > > If lhInternetSession = 0 > Wait Window "Internet session cannot be established" Time 2 > Return .Null. > Endif > > lhUrlFile = InternetOpenUrl( lhInternetSession, pcUrlName, '', 0, ; > INTERNET_FLAG_RELOAD, 0) > >* debugging line - uncomment to see URL handle >* WAIT WINDOW "URL Handle: " + LTRIM(STR(hUrlFile)) > > If lhUrlFile = 0 > Wait Window "URL cannot be opened" > Return .Null. > Endif > > lcRetVal = "" > llOk = .T. > > Do While llOk >* set aside a big buffer > lsReadBuffer = Space(32767) > lnBytesRead = 0 > lnOk = InternetReadFile( lhUrlFile, @lsReadBuffer, Len(lsReadBuffer), @lnBytesRead) > > If ( lnBytesRead > 0 ) > lcRetVal = lcRetVal + Left( lsReadBuffer, lnBytesRead ) > Endif > >* error trap - either a read failure or read past eof() > llOk = ( lnOk = 1 ) And ( lnBytesRead > 0 ) > Enddo > >* close all the handles we opened > InternetCloseHandle( lhUrlFile ) > InternetCloseHandle( lhInternetSession ) > Clear Dlls InternetOpen,InternetCloseHandle,InternetOpenUrl ,InternetReadFile >* return the URL contents >Return lcRetVal