Tarma WebUpdate

Outline of operation | Where to find Tarma WebUpdate | System requirements | Reference

Tarma WebUpdate (TWU) is a dynamic link library (DLL) that enables you to perform automatic software updates from your applications. It offers the following functionality:

Local and remote package retrieval
Routines that retrieve package information either locally or remotely (using FTP, HTTP, or HTTPS) and download the corresponding installers to a local file.
Update version checking
Routines that retrieve information about locally installed packages and compare them with the remote package information to determine if an update is required.
Installer execution
Routines that run the downloaded installers in order to update an application.

Outline of operation

To use the Tarma WebUpdate functionality in your own application, you must add some application-specific code that uses the Tarma WebUpdate (TWU) routines. In addition, you must provide the following:

During a typical Tarma WebUpdate session, the following actions take place:

  1. Your application contacts your Internet server and retrieves the package information file for your application. This is done with the TWUOpenUpdateURL function.
  2. The package information is enumerated and compared to the currently installed version of the application. This is done with a combination of the TWUEnumPackages, TWUFindInstalledInfo, TWUCheckUpdateVersion, and TWUCompareVersions functions.
  3. For each package that must be installed, its installer is retrieved from the server by the TWUGetPackageInstaller function and executed by the TWURunPackageInstaller function.
  4. Any (temporary) downloaded files are removed with TWUCleanupDownloads and the connection is closed with TWUCloseSession.

The Tarma WebUpdate sample application demonstrates how to use the Tarma WebUpdate functionality.

Where to find Tarma WebUpdate

The Tarma WebUpdate components are installed along with the rest of Tarma ExpertInstall. The following files are used with Tarma WebUpdate (all files and folders are relative to the Tarma ExpertInstall installation folder, typically C:\Program Files\Tarma ExpertInstall):

File Description
Bin\TWU32.dll Tarma WebUpdate DLL, ANSI version. If you are a registered user of Tarma ExpertInstall, then you may redistribute this DLL with your own applications.
Bin\TWU32D.dll Tarma WebUpdate DLL, ANSI Debug version. This version is for your own testing only; it may not be redistributed.
Bin\TWUNT.dll Tarma WebUpdate DLL, Unicode version. If you are a registered user of Tarma ExpertInstall, then you may redistribute this DLL with your own applications.
Bin\TWUNTD.dll Tarma WebUpdate DLL, Unicode Debug version. This version is for your own testing only; it may not be redistributed.
Include\TWU.h Header file that defines the Tarma WebUpdate functions and data structures. You must #include this file in your own C/C++ project to use the Tarma WebUpdate functionality.
Include\TWU.pas Unit file for Borland Delphi that defines the Tarma WebUpdate functions and data structures. You must add a uses TWU clause to your own Delphi source files to use the Tarma WebUpdate functionality.
Include\TWUDefs.h Base declarations for Tarma WebUpdate, automatically #included by TWU.h
Lib\TWU32.lib ANSI import library for Tarma WebUpdate.
Lib\TWU32D.lib ANSI import library for Tarma WebUpdate, Debug version.
Lib\TWUNT.lib Unicode import library for Tarma WebUpdate.
Lib\TWUNTD.lib Unicode import library for Tarma WebUpdate, Debug version.
Samples\WebUpdate\*.* Source code for the Tarma WebUpdate sample application that demonstrates how to use the Tarma WebUpdate functionality. It includes Microsoft Visual C++ 6 and Microsoft Visual Studio 2003 project files to build the sample application. It also includes a Borland Delphi sample application with equivalent functionality.

System requirements

Tarma WebUpdate has the following system requirements:

To build an application that uses Tarma WebUpdate, you will need the a Microsoft Visual C++ compiler (6.0, 7.0, 7.1) and the files mentioned above. You can use either the ANSI or the Unicode versions of the TWU entry points.

Reference

Refer to the following topics for more information about the various functions and types.

Name Description
fTWUCallback General event/progress callback function prototype
fTWUPackageCB Callback function prototype for use by TWUEnumPackages and TWUEnumPackageDependencies.
TWUCheckUpdateVersion Compares the file version of a local file against the version of an update package.
TWUCleanupDownloads Deletes all downloaded files.
TWUCloseSession Closes an update session.
TWUCompareVersions Compares two version numbers.
TWUDebugPrintf Prints a formatted string in the debugging log file.
TWUEnumPackageDependencies Enumerates the dependencies of a package.
TWUEnumPackages Enumerates the packages in the package information file.
TWUFindInstalledInfo Retrieves the installation information of a currently installed application.
TWUFindPackage Finds a package by name.
TWUGetErrorMessage Retrieves a Win32 error message text.
TWUGetEventArg Returns a pointer to an additional event callback argument.
TWUGetPackage Returns a package by index.
TWUGetPackageCount Returns the number of packages in the package information file.
TWUGetPackageInstaller Downloads a package installer.
TWUGetPIF Retrieves and parses a package information file.
TWUGetVersionInfo Get the fixed VERSIONINFO for a file.
TWUInstalledInfo Defines the installed product information returned by TWUFindInstalledInfo.
TWUOpenSession Opens an update session.
TWUOpenUpdateURL Opens an update session and downloads a package information file.
TWUPackageData Defines the package information.
TWUParseVersion Parse a version string into a numeric version number.
TWURegisterCallback Registers an event/progress callback function
TWURunPackageInstaller Executes a downloaded package installer.