lhUrlFile = InternetOpenUrl( lhInternetSession, pcUrlName, '', 0, ; INTERNET_FLAG_RELOAD, 0)I think it is something to do with not being able to get out through ISA2004. Have you come across this or have any idea what it could be that is causing it to hang. The same code works fine on my home pc which does not have the same firewall setup.
>Function getfilefromurl >Lparameters lcRemoteFile,lcLocalFile >Local lnReturn >Declare Integer URLDownloadToFile In urlmon.Dll; > INTEGER pCaller, String szURL, String szFileName,; > INTEGER dwReserved, Integer lpfnCB >lnReturn = URLDownloadToFile (0, lcRemoteFile, lcLocalFile, 0, 0) >Return lnReturn=0>
>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) > >* 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