Prev: MSCOMCT2.OCX registration error "ClassFactory cannot supply requested class"
Next: Can't create an Object (Some sort of ActiveX thing?)
From: Paul Martin on 27 Jan 2009 00:17 Hi guys I need to download files from a static URL and am using the following code from http://officeone.mvps.org/vba/http_download_file.html: Sub HTTPDownloadFile(ByVal URL As String, _ ByVal LocalFileName As String) Dim HTTP As Inet Dim Contents() As Byte Set HTTP = New Inet ' <<<< CODE FAILS HERE With HTTP .Protocol = icHTTP .URL = URL Contents() = .OpenURL(.URL, icByteArray) End With Set HTTP = Nothing Open LocalFileName For Binary Access Write As #1 Put #1, , Contents() Close #1 End Sub The code works on some machines but not others, failing at "Set HTTP = New Inet". The error message is: "Run-time error '429': ActiveX component can't create object". I can't detect any reason why the code works on one machine and not the other, as they are allegedly built from the same profile (both running WinXP, Office2003). Both machines have MSINET.OCX, same version (6). I'm thinking maybe it's a registry entry, but hopefully someone on here has come across this and has a solution? TIA Paul Martin Melbourne, Australia
From: Chip Pearson on 27 Jan 2009 12:13
Try using the URLDownloadToFile API function. For example, Private Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" _ (ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Long, _ ByVal lpfnCB As Long) As Long Sub AAA() Dim URL As String Dim DestFile As String Dim Res As Long URL = "http://www.cpearson.com/Excel/about.htm" DestFile = "C:\Test\About.htm" On Error Resume Next Kill DestFile On Error GoTo 0 Res = URLDownloadToFile(0&, URL, DestFile, 0&, 0&) If Res = 0 Then Debug.Print "Success" Else Debug.Print "Failure" End If End Sub Cordially, Chip Pearson Microsoft Most Valuable Professional Excel Product Group, 1998 - 2009 Pearson Software Consulting, LLC www.cpearson.com (email on web site) On Mon, 26 Jan 2009 21:17:00 -0800 (PST), Paul Martin <melbournefilm(a)gmail.com> wrote: >Hi guys > >I need to download files from a static URL and am using the following >code from http://officeone.mvps.org/vba/http_download_file.html: > >Sub HTTPDownloadFile(ByVal URL As String, _ > ByVal LocalFileName As String) > Dim HTTP As Inet > Dim Contents() As Byte > > Set HTTP = New Inet ' <<<< CODE FAILS HERE > > With HTTP > .Protocol = icHTTP > .URL = URL > Contents() = .OpenURL(.URL, icByteArray) > End With > > Set HTTP = Nothing > > Open LocalFileName For Binary Access Write As #1 > Put #1, , Contents() > Close #1 >End Sub > >The code works on some machines but not others, failing at "Set HTTP = >New Inet". > >The error message is: > "Run-time error '429': > ActiveX component can't create object". > >I can't detect any reason why the code works on one machine and not >the other, as they are allegedly built from the same profile (both >running WinXP, Office2003). Both machines have MSINET.OCX, same >version (6). > >I'm thinking maybe it's a registry entry, but hopefully someone on >here has come across this and has a solution? > >TIA > >Paul Martin >Melbourne, Australia |