MS WinInet API based plug-in for http and ftp downloads with 
improved proxy (compare to NSISdl). Command line may include few 
URL/File pairs to be downloaded. Plug-in supports 3 "download in 
progress" display modes: 1) old NSISdl style - additional 
embedded progress bar and text on the INSTFILES page; 2) POPUP 
dialog mode with detailed info; 3) BANNER mode with simple popup 
window. Plug-in recognizes Installer' Silent mode and this case 
hides any output. Program implements simple re-get functionality 
- host reconnect and download from current position after short 
pause. NSISdl code fragment was used for progress bar displaying 
in the "old style" mode. 

Requires NSIS 2.03 or later


Command line parameters (NSIS script):

  InetLoad::load [/PROXY IP:PORT] [/USERNAME LOGIN /PASSWORD PASSWD] [/SILENT | /RESUME RETRY_QUESTION] [/POPUP PREFIX | /BANNER CAPTION TEXT] [/TRANSLATE LANG_PARAMS] URL1 local_file1 [URL2 local_file2 [...]] [/END]

/PROXY    overwrites current proxy settings, not required in most cases, IE
          settings will be used by default

/USERNAME proxy username (http only)

/PASSWORD proxy password (http only)

/SILENT hides plug-in' output (both popup dialog and embedded progress bar)
        Not required if installer is running in the 'silent' mode.

/RESUME on the permanent connection/transfer error instead of exit first displays 
        message box with "resume download" question. Usefull for dial-up connections and
        big files - allows user to restore connection and resume download. Default is
        "Your internet connection seems to have dropped out!\nPlease reconnect and click Retry to resume downloading..."

/POPUP  displays detailed download dialog instead of embedded progress bar.
        Useful in .onInit function (i.e. not in Section). Sets caption prefix 
        (before text "-"), "InetLoad plug-in" is a default if "" was used.

/BANNER displays simple popup dialog (MSI Banner mode) and sets dialog CAPTION 
        ("InetLoad plug-in" is a default for "" parameter) and TEXT (no default).

/END    allows to limit plug-in stack reading (optional, required if you stores other 
        vars in the stack) 

/TRANSLATE allows to translate plug-in text in the "embedded" mode. Usage:

  /TRANSLATE downloading connecting second minute hour plural progress remaining

Default values are:

  downloading - "Downloading %s"
  connecting - "Connecting ..."
  second - "second"
  minute - "minute"
  hour - "hour"
  plural - "s"
  progress - "%dkB (%d%%) of %dkB @ %d.%01dkB/s"
  remaining -  "(%d %s%s remaining)"


For example:

  InetLoad::load "http://dl.zvuki.ru/6306/mp3/12.mp3" "$EXEDIR\12.mp3" "ftp://dl.zvuki.ru/6306/mp3/11.mp3" "$EXEDIR\11.mp3"

or

  InetLoad::load /BANNER "" "Cameron Diaz download in progress, please wait ;)" "http://www.dreamgirlswallpaper.co.uk/fiveyearsonline/wallpaper/Cameron_Diaz/camerond09big.JPG" "$EXEDIR\cd.jpg"

Return value is "OK" string if successful, error description 
string if failed (see InetLoad.cpp file for a full set of status 
strings). Result processing may be following:

  Pop $0
  StrCmp $0 "OK" dlok
  MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to abort installation" /SD IDOK
  Abort
dlok:
  ...

Takhir Bedertdinov, Moscow, Russia
ineum@narod.ru
