/* An example of using the RexxInet functions to download a file * from the internet using Ftp protocol and save it to a file on * disk. */ /* ========================= STEP 1 ========================== * Just some preliminary settings to make our programming * easier. */ /* So that we don't need the CALL keyword. */ OPTIONS "C_CALL" /* Some OS functions deal with 32-bit addresses so we need * 10 digits to prevent dealing with exponential form. */ NUMERIC DIGITS 10 /* ========================= STEP 2 ========================== * Load RexxInet functions. Set up error handling for RexxInet. * Have it raise ERROR condition. This is done once at the * start of our script. */ /* Load REXXINET.DLL and register all its functions. */ DO RxFuncAdd("rexxinet") /* Here you would RxFuncAdd() or FuncDef() any additional DLLs you use. */ /* If REXXINET fails to load and register its functions, we do the following. */ CATCH FAILURE /* Display an error message box, and end the script. */ CONDITION("M") RETURN END InetErr = "ERROR" InetHeading = 1 /* ========================= STEP 3 ========================== * Make sure we're connected to the internet (if a dial-up * account), and initialize RexxInet. */ DO /* Make sure we're connected to the internet. If not, * automatically connect the default account. */ InetDial("ONLINE") /* Initialize REXXINET. We tell WinINet that our script name is "My test" */ InetOpen(, , "My test") /* Let's CATCH ERROR so we don't have to error check * any of the above calls to RexxINet functions. Yay! */ CATCH ERROR CONDITION('M') RETURN END /* ========================= STEP 4 ========================== * Download the file. */ /* Here's the FTP server hosting the file I want. I could pass * this directly to InternetConnect if desired. */ myFtpSite = "ftp.microsoft.com" /* Connect to the server that hosts the file, and save the handle in "MyFtpHandle". */ InetConnect("MyFtpHandle", myFtpSite, "FTP") /* Set the current directory to "developr/visual_c". */ InetDir("developr/visual_c") /* Download the file README.TXT from that directory and save * it on the local drive as "README.TXT" in the temp directory. */ InetFile("README.TXT", SEARCHPATH("%TEMP%") || "README.TXT") /* If desired, you can now download another file from the same * FTP server by doing another FtpGetFile(). If the file is in * a different directory, you should do an InetDir() "SET" call * first to set that directory as the current. */ /* Close that Ftp handle. */ InetClose("MyFtpHandle") /* If desired, you can now download another file from a different * FTP server by looping back to InetConnect() and passing it * a different FTP server. */ /* Done */ RETURN /* ================ Error handling and cleanup ================ */ CATCH ERROR CONDITION('M') FINALLY /* Terminate use of RexxInet and disconnect from the internet. * NOTE: If our main script ends without doing this, then * RexxInet implicitly does this for us. */ InetClose()