A COM component offering Internet download utilities





4.00/5 (5 votes)
Dec 23, 2002
2 min read

71616

1747
A COM component written in C++ that offers functions for multiple parallel downloads, Internet cache access, URL and path resolving.
Introduction
A year ago I wanted to create a large multi-download program. I implemented the
visual interface in VB6 and the actual download functionality in an ATL COM
component. I used the URL monikers and specifically the CBindStatusCallback
ATL
class to implement downloading. Unfortunately the documentation for URL monikers
is poor and I have only scratched the surface of this subject. I have not yet succeeded
in
implementing suspend and resume of downloads. The component also includes some
other useful functions for cache access, URL and resolving of paths. I hope you'll
find it useful. The figure above shows a small VB6 program that simultaneously downloads 3
files from the Microsoft download
site.
Below there is a brief listing of the interface methods. In the source code zip file, you'll find also an HtmlHelp, created with my 'Automatic HTMLHelp Documentation' tool.
Object AsyncDownloader
Interface IAsyncDownloader | ||
Name | Type | Explanation |
---|---|---|
AbortDownload | Method | Abort downloading (does not work) |
ConcurrentDownloads | Property Get/Let | Number of concurrent downloads |
DownloadedBytes | Property Get | Downloaded bytes yet |
MaxBytes | Property Get | Maximum bytes to download |
RequestDownload | Method | Request Download |
ResumeDownload | Method | Resume Download (does not work) |
Status | Property Get | Status of download (in progress, etc.) |
SuspendDownload | Method | Suspend Download (does not work) |
Event Interface _IAsyncDownloaderEvents | ||
OnData | Event | Data arrived |
OnFinish | Event | Finished downloading |
OnStart | Event | Started downloading |
Object CacheUtils
Interface ICacheUtils | ||
Name | Type | Explanation |
---|---|---|
CrackUrl | Method | Crack Url into a UrlComponents object (host,path,etc.) |
DownloadToFile | Method | Download URL To local file |
MakeSureDirectoryPathExists | Method | Make Sure Directory Path Exists |
PathCombine | Method | Combine paths |
SaveURLfileFromCacheToLocalfile | Method | Save URL file From Cache To Local file |
UrlCombine | Method | Url Combine |
Object UrlComponents
Interface IUrlComponents | ||
Name | Type | Explanation |
---|---|---|
ExtraInfo | Property Get/Let | ExtraInfo |
FullURL | Property Get/Let | FullURL |
HostName | Property Get/Let | HostName |
Password | Property Get/Let | Password |
Port | Property Get/Let | Port |
Scheme | Property Get/Let | Scheme |
UrlPath | Property Get/Let | UrlPath |
UserName | Property Get/Let | UserName |
Object PathUtils
Interface IPathUtils | ||
Name | Type | Explanation |
---|---|---|
GetFullPathName | Method | Get Full PathName |
GetModuleFileName | Method | Get Module FileName |
GetShortPathName | Method | Get Short PathName |
MakeSureDirectoryPathExists | Method | Make Sure Directory Path Exists |
PathCanonicalize | Method | Path Canonicalize |
PathCombine | Method | Path Combine |
PathCommonPrefix | Method | Path Common Prefix |
PathFindFileName | Method | Path Find FileName |
PathIsDirectory | Method | Path Is Directory |
PathIsFileSpec | Method | Path Is File Spec |
PathIsPrefix | Method | Path Is Prefix |
PathIsRelative | Method | Path Is Relative |
PathIsRoot | Method | Path Is Root |
PathIsSameRoot | Method | Path Is Same Root |
PathIsUNC | Method | Path Is UNC |
PathIsURL | Method | Path Is URL |
PathMatchSpec | Method | Path Match Spec |
PathQuoteSpaces | Method | Path Quote Spaces |
PathRelativePathTo | Method | Path Relative Path To |
PathRemoveArgs | Method | Path Remove Args |
PathRemoveBackslash | Method | Path Remove Backslash |
PathRemoveBlanks | Method | Path Remove Blanks |
PathRemoveExtension | Method | Path Remove Extension |
PathRemoveFileSpec | Method | Path Remove File Spec |
PathRenameExtension | Method | Path Rename Extension |
UrlCombine | Method | Url Combine |