Tarma WebUpdate sample application
The Samples\WebUpdate folder contains a sample application that illustrates how to use the Tarma WebUpdate DLL to update or install an application. The sample program is a console application written in C++ that requires Microsoft Visual C++ 6.0 or later to build.
Delphi note: There is also an equivalent Borland Delphi version of this application available; look for the WebUpdate.dpr file. Please be aware that the TWU interface uses C-style null-terminated strings rather than Pascal-style counted strings. The sample application illustrates how to use the null-terminated strings.
You may use the program as-is or copy its code to your own application, subject to the terms and conditions of the License agreement. Remember to include the appropriate version of the Tarma WebUpdate DLL with your application; see Tarma WebUpdate for a list of the available DLL versions.
Syntax
WebUpdate [/install][/update] package_name pif_url
- /install
- Specifies that package_name must be installed regardless of any existing installation.
- /update
- Specifies that package_name must be installed only if already present on the system and newer than the existing installation.
- package_name
- Name of the package to install, as listed in the package information file specified by pif_url. If the package has dependencies, the dependencies are also installed if necessary.
- pif_url
- URL to the package information file that contains the package information. This can be any valid URL, for example:
file://machine/share/updates/update.txt
ftp://ftp.tarma.com/public/update.txt
https://tarma.com/download/update.txt
https://secure.tarma.com/download/update.txt
Be sure to include the file:// prefix if you are referring to a local or UNC file path.
If neither /install nor /update are specified, the program lists the available package information.
Files
The Samples\WebUpdate folder contains the following files:
File | Description |
---|---|
WebUpdate.cpp | Source code for the application |
WebUpdate.dpr | Borland Delphi source code. You will also need TWU.pas from the Include folder. |
WebUpdate.dsp | Microsoft Visual C++ 6.0 project file |
WebUpdate.dsw | Microsoft Visual C++ 6.0 workspace file |
WebUpdate.sln | Microsoft Visual C++ 2003 solution file |
WebUpdate.vcproj | Microsoft Visual C++ 2003 project file |
Program outline
The internal implementation of the program follows this outline (the Delphi program is similar):
// Open the connection and retrieve the package information TWUOpenUpdateURL(pif_url); // Find the desired package pPackage = TWUFindPackage(package_name); // Enumerate the package and its dependencies to download them. // If a package is required and downloaded, pPackage->lUserCookie1 // is set to TRUE as a marker for the second pass. TWUEnumPackageDependencies(pPackage, _WUDownloadCB); // Enumerate the package and its dependencies to install them // (only packages with pPackage->lUserCookie1 set to TRUE). TWUEnumPackageDependencies(pPackage, _WUInstallCB); // Perform clean up TWUCleanupDownloads; TWUCloseSession;
Sample usage
To test this program, try the following scenarios. They use the update.txt file stored on Tarma's own web server; see Sample file in the package information file topic for its contents.
Check available version (only)
WebUpdate tin3 https://tarma.com/download/update.txt
Lists the latest available version of InstallMate but does not download or install anything.
Install program
WebUpdate /install tin3 https://tarma.com/download/update.txt
Download and installs the latest available version of InstallMate, regardless of the currently installed version (if any).
Update program
WebUpdate /update tin3 https://tarma.com/download/update.txt
Downloads and installs the latest available version of InstallMate, but only if an earlier version is already present.