>* phonelookup.prg >* John Harvey 3/2/99 >* john.harvey@worldnet.att.net >* >* for testing you can run this program with - DO PHONELU WITH '9015455500' >* this should give you a listing for the Shelby County Sheriff's Office >* and other local law enforcement offices. > >parameters lcphone >PUBLIC OIE,MYHTML >IF type('oie.document.url')<>'O' > OIE=createobject('internetexplorer.application') >ENDIF >set safe off >OIE.navigate('http://www.anywho.com/telq.html') >* rudimentary delay >WAIT WINDOW "Loading phone Search . . . . " nowait >start=datetime() >do while type('oie.document.forms(0).tel')='U' or (datetime()-start)<10 >enddo >if type('oie.document.forms(0).tel')='U' > rele oie,myhtml > ? "Unable to Connect" > return >endif >myform = oie.document.forms(0) >myform.tel.value=lcphone >myform.submit() >oie.visible= .t. >suspend >* You should get a return on a phone number >* check for an object existence that you expect in the return page or >* put in a timeout of some sort. >*!* DO WHILE OIE.DOCUMENT.URL<>' ' >*!* ENDDO >* For testing purposes put in a wait. >WAIT WINDOW "Processing . . . . " timeout 6 >MYHTML=readurl(OIE.document.url) >if file('c:\x.htm') > erase c:\x.htm >endif >STRTOFILE(MYHTML,'c:\x.htm') >OIE.navigate('c:\x.htm') >OIE.VISIBLE=.T. > >PROCEDURE readurl >* Purloined from David Frankenbach's web page 11/20/98. >* readurl.prg 06-Mar-98* 06-Mar-98 pulled from Q174524 on March 98 Technet CD >* 06-Mar-98 bug fixed about the length of the sReadBuffer >*Note that Microsoft Internet Explorer must be installed on the computer. >* passed: URLName, in the form "http://www.microsoft.com"* >* returns: the content of the URL** usage:* >* uWebContent = ReadURL( "http://www.microsoft.com" ) >* uWebContent = ReadURL( "http://www.SomeSite.com/SomeJPG.jpg" )** notes: >* 1 - IE does not need to be running to use this, but must be installed, >* as the program uses an option that gets information from the registry >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 ) >* return the URL contents >RETURN lcRetVal > > >