* Define constants #DEFINE INTERNET_OPEN_TYPE_PRECONFIG 0 #DEFINE INTERNET_OPEN_TYPE_DIRECT 1 #DEFINE INTERNET_OPEN_TYPE_PROXY 3 #DEFINE SYNCHRONOUS 0 #DEFINE ASYNCHRONOUS 1 #DEFINE INTERNET_FLAG_RELOAD 2147483648 * Prepare for the Internet session DECLARE INTEGER InternetOpen IN wininet.dll ; STRING cAgent, ; INTEGER nAccessType, ; STRING cProxyName, ; STRING cProxyBypass, ; INTEGER nFlags DECLARE INTEGER InternetOpenUrl IN wininet.dll ; INTEGER hInternetSession, ; STRING cURL, ; STRING cHeaders, ; INTEGER nHeadersLength, ; INTEGER nFlags, ; INTEGER nContext DECLARE INTEGER InternetReadFile IN wininet.dll ; INTEGER nfile, ; STRING @cBuffer, ; INTEGER nNumberOfBytesToRead, ; INTEGER @nBytesRead DECLARE SHORT InternetCloseHandle IN wininet.dll INTEGER hInst * Open the Internet session liInternetSession = InternetOpen("VFP 8.0", INTERNET_OPEN_TYPE_PRECONFIG, "", "", SYNCHRONOUS) * Open the Internet URL liURLFile = InternetOpenUrl(lnInternetSession, "http://jeffbowman.com/", '', 0, INTERNET_FLAG_RELOAD, 0) IF liInternetSession = 0 OR liURLFile = 0 WAIT WINDOW " The specified server cannot be contacted at this time. " ELSE * Set aside a buffer lcResponse = SPACE(100000) * Go and get it! InternetReadFile(liURLFile, @lcResponse, 100000, 0) ENDIF * Close all the sessions we opened, in reverse order InternetCloseHandle(liURLFile) InternetCloseHandle(liInternetSession)>I don't know how easy it would be to do in FoxPro but it would not be too hard to write something in C++ to handle the task.