Download DLL
IS Download DLL is a "plugin" for Inno Setup that allows you to download files from the Internet during the installation process. Support HTTP, HTTPS and FTP protocols.
Primarily written to be used from Inno Setup, but can be used by any software that can call DLL's. If you have the declarations needed for VB or other languages, please send them to us to include them on this page.
Exported Functions
- isxdl_Download
- isxdl_AddFile
- isxdl_AddFileSize
- isxdl_DownloadFiles
- isxdl_ClearFiles
- isxdl_IsConnected
- isxdl_SetOption
- isxdl_GetFileName
isxdl_Download
Immediately downloads a file from the Internet.
Syntax:
int isxdl_Download(
HWND hWndParent,
LPCWSTR pszURL,
LPCWSTR pszFileName
);
Parameters:
- hWndParent
- Handle to parent window.
- pszURL
- The URL to be downloaded.
- pszFileName
- The name of the file on the local machine.
Return Value:
Returns 1 if all files where downloaded successfully, otherwise 0.
isxdl_AddFile
Adds a file to the internal file list.
Syntax:
void isxdl_AddFile(
LPCWSTR pszURL,
LPCWSTR pszFileName
);
Parameters:
- pszURL
- The URL to be downloaded.
- pszFileName
- The name of the file on the local machine.
Return Value:
Returns nothing.
Remarks:
To access a url with basic password protection, enter something like http://username:password@www.domain.com/path/page.html as url.
isxdl_AddFileSize
Adds a file to the internal file list, and tells how big the file is. Use this if you know the size of the file, and know that it will not change. Means that the DLL won't have to find the size, which can take some time if you have many files to download.
Syntax:
void isxdl_AddFileSize(
LPCWSTR pszURL,
LPCWSTR pszFileName,
DWORD dwSize
);
Parameters:
- pszURL
- The URL to be downloaded.
- pszFileName
- The name of the file on the local machine.
- dwSize
- The size of the file.
Return Value:
Returns nothing.
isxdl_DownloadFiles
Downloads all files added with isxdl_AddFile or isxdl_AddFileSize.
Syntax:
int isxdl_DownloadFiles(
HWND hWndParent
);
Parameters:
- hWndParent
- Handle to the parent window.
Return Value:
Returns 1 if all files where downloaded successfully, otherwise 0.
isxdl_ClearFiles
Clears the internal file list. Shouldn't be necessary since files will be removed as they are successfully downloaded.
Syntax:
void isxdl_ClearFiles();
Return Value:
Returns nothing.
isxdl_IsConnected
Tells wether the computer is connected to the Internet or not. This is kind of experimental, and very little tested.
Syntax:
int isxdl_IsConnected();
Return Value:
Returns 1 if connected to the Internet, otherwise it returns 0.
isxdl_SetOption
Adds a file to the internal file list.
Syntax:
int isxdl_SetOption(
LPCWSTR pszOption,
LPCWSTR pszValue
);
Parameters:
- pszOption
- The option to be modified.
- pszValue
- The value of the option. Note that this must always be given as a string.
Return Value:
Returns 1 if the option was set successfully. Returns 0 if the option was unknown, or the option could not be set.
Remarks:
Option | Value |
---|---|
title | The title to use for the download window. |
debug | Not used. Valid values are "true" and "false". |
simple | Turns on simple mode if the value is a string, turns off simple mode if the value is an empty string. |
label | Text for header label. |
description | Text for header description. |
language | Language file to get texts from. |
resume | Tell it to use resume. Default is true. (Disabled.) |
smallwizardimage | The image to display if you want something other than the default. |
isxdl_GetFileName
Get the real file name of a downloaded file. The URL to download ISTool is 'https://www.istool.org/getistool.aspx', and before downloading isxdl_GetFileName returns 'getistool.aspx'. After downloading, the result will be 'istool-5.0.6.1.exe'.
Syntax:
LPCWSTR GetFileName(
LPCWSTR pszURL
);
Parameters:
- pszURL
- The URL to get the file name for.
Return Value:
Returns the file name if the URL was found, otherwise returns NULL.
Download Plugin
Filename | Download Sites | Downloads | Date | Description |
---|---|---|---|---|
isxdl-6.0.0.zip |
GitHub Our site (Netherlands) |
18 | 2025-04-03 | Archive containing isxdl.dll with Inno Setup usage examples. |
sha256 hash: de7d039dbd1efd710fdd72fe37e1db4bafb240f4b900cbe3d1a6fd536efc0c6b
|
Source Code
You can get the ISxDL source code via GitHub. Latest sources obtained via GitHub may contain fixes or new features not found in the latest released version of ISxDL. However, those fixes and new features may not have yet been fully tested.
Definitions for Inno Setup Pascal Scripting
function isxdl_Download(hWnd: Integer; URL, Filename: String): Integer;
external 'isxdl_Download@files:isxdl.dll stdcall';
procedure isxdl_AddFile(URL, Filename: String);
external 'isxdl_AddFile@files:isxdl.dll stdcall';
procedure isxdl_AddFileSize(URL, Filename: String; Size: Cardinal);
external 'isxdl_AddFileSize@files:isxdl.dll stdcall';
function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
procedure isxdl_ClearFiles;
external 'isxdl_ClearFiles@files:isxdl.dll stdcall';
function isxdl_IsConnected: Integer;
external 'isxdl_IsConnected@files:isxdl.dll stdcall';
function isxdl_SetOption(Option, Value: String): Integer;
external 'isxdl_SetOption@files:isxdl.dll stdcall';
function isxdl_GetFileName(URL: String): String;
external 'isxdl_GetFileName@files:isxdl.dll stdcall';
Definitions for Visual Basic
Public Declare Function isxdl_Download Lib "isxdl.dll" _
(ByVal ihWnd As Integer, ByVal strURL As String, ByVal strFilename As String) As Integer
Public Declare Function isxdl_AddFile Lib "isxdl.dll" _
(ByVal strURL As String, ByVal strFilename As String) As Integer
Public Declare Function isxdl_AddFileSize Lib "isxdl.dll" _
(ByVal strURL As String, ByVal strFilename As String, ByVal lngSize As Long) As Integer
Public Declare Function isxdl_DownloadFiles Lib "isxdl.dll" _
(ByVal ihWnd As Integer) As Integer
Public Declare Sub isxdl_ClearFiles Lib "isxdl.dll" ()
Public Declare Function isxdl_IsConnected Lib "isxdl.dll" () As Integer
Public Declare Function isxdl_SetOption Lib "isxdl.dll" _
(ByVal strOption As String, ByVal strValue As String) As Integer
Public Declare Function isxdl_GetFileName Lib "isxdl.dll" _
(ByVal strRL As String) As String
Definitions for C++
extern "C" {
int isxdl_Download(HWND hWndParent, LPCWSTR pszURL, LPCWSTR pszFileName);
void isxdl_AddFile(LPCWSTR pszURL, LPCWSTR pszFileName);
void isxdl_AddFileSize(LPCWSTR pszURL, LPCWSTR pszFileName, DWORD dwSize);
int isxdl_DownloadFiles(HWND hWndParent);
void isxdl_ClearFiles(void);
int isxdl_IsConnected(void);
int isxdl_SetOption(LPCWSTR pszOption,L PCTSTR pszValue);
LPCWSTR isxdl_GetFileName(LPCWSTR pszURL);
};
History
Version 6.0.0 (2025-04-03, 1 month ago)
- Migrate project to Unicode.
- Re-creating all language files (UTF-8) + added many new languages
- Added HTTPS protocol support
- Updated graphics (icon and small wizard image)
- Added an example of using the library
- General edits and project updates
Version 5.1.0 (2009-04-07, 16 years ago)
- Can use a custom wizard image.
- Uses SIZE command to get size of files on ftp servers.
- Disabled optimization - is it me or is msvc bugging?
- Won't add identical files more than once.
- Disabled resume.
Version 4.0.8
- Fixed a bug in resume if the server didn't support resume.
- A bug caused by aborting a download was fixed.
- Numbers are formatted in the default user locale.
- Fixed bug that prevented cancelling downloads for illegal addresses.
- Asks for user name and password if necessary when download from ftp.
- Changed some error messages.
- Shows icon for system menu.
- Uses MS Shell Dlg font.
- If resume is disabled, incomplete files will be deleted.
Version 3.0.4.3
- Can use language files.
- Doesn't hide parent window in simple mode.
- Bug fixes.
- Supports resume for http.
- Spanish translation by Lobo Lunar.
- Norwegian translation.
Version 3.0.4 (2002-11-30, 22 years ago)
- Doesn't get size of files in simple mode.
- Bugfix in isxdl_SetOption and resetting simple mode.
- Standard wizard look.
- Automatically hides parent window.
- Two new options: label and description.
Version 1.3.1 (2002-07-24, 22 years ago)
- Minor tweaks and modifications.
- Added function isxdl_GetFileName to give you the real name of the downloaded file.
- Fixed overflow when calculating remaining time.
- Added a little about box.
- Improved handling of progress bars.
- Added new option 'simple' that gives you a simple window with a custom message.
Version 1.3.0 (2002-07-14, 22 years ago)
- Abort should really abort (possible memory leaks though).
- Supports ftp.
- Handles HTTP_STATUS_MOVED if not handled by wininet (untested).
- Added function IsConnected to tell whether the computer is connected to the Internet or not (experimental?).
- Requires IE4.
- Added function SetOption to set options.
- Supported options are: 'title', 'noftpsize', 'debug', 'resume', 'language', 'label', 'description'.
- Added prefix 'isxdl_' to all functions.
- Added function AddFileSize with a parameter for file size.
- Means the DLL will not need to check the size itself.
Version 1.2.1
- Minor tweaks.
- Added method ClearFiles to clear the internal file list.
Version 1.2.0
- No more divide by zero errors for files less than 1024 bytes.
- Supports user name and password in the url.
- Demo scripts for both ISX2 and ISX3.
Version 1.0.0
- Initial release.