UPDD
currently supports over 250 controllers and variants. When shipping a driver
install package a subset of these controllers will be included, along with
default settings. This package is known as a bundle.
UPDD now
provides limited support for multiple bundles. This allows support for multiple
vendors’ hardware to be supported simultaneously without needing a cutomised
bundle containing both device sets. The reason for this is that UPDD is
increasingly being shipped as the default pointer device driver on many
systems, and a user of such a system might wish to install another pointer
device, such as a separate touch monitor, a pen tablet or an electronic
whiteboard without disturbing the function of the pre-installed software. A
user might also wish to install two or more UPDD driven devices from different
manufacturers.
This functionality is currently limited to ensuring that devices from
the secondary bundle can be installed and function without disturbing the
function of the primary bundles devices. The user interface functions (DCU,
system tray etc) continue to work with the primary bundle only. Future releases
will cater for multiple bundles.
A user of
the UPDD API has to be aware of the following bundle related issues.
A bundle is
represented internally by a GUID. This is entered in the registry as shown
below
A program
which uses the API must indicate to the API functions which bundle to use as
shown in the following examples:
1) Automatic
selection
TBApiInit(TBApiGetBundle());
For this method to work the file tbbundle.h (shipped with the UPDD
driver release not the SDK as, no such file exists) must be
included in the header file search path. This returns a Bundle Handle for the
bundle defined in the tbbundle.h file.
2)
Manual selection
#define
INTERNALAPI
TBApiInit(TBApiInternalGetBundle("{A438AD6D-BB51-4FF3-9B8E-4BE750B5EC4B}"));
This is the
only method currently available to programs using the DLL interface (e.g.
Visual Basic). The bundle GUID is supplied in the email used to send the UPDD
package or can be accessed in the registry, as shown above, once the driver has
been installed. This returns a Bundle Handle for the defined {guid}.
3)
Default selection
#define
INTERNALAPI
TBApiInit(1);
This will always work with the first installed bundle. The use of this
method is not recommended if applications have been written for a specific
bundle as, in a multiple bundle installation, the required bundle may not be
the first installed. This method should only be used in a single bundle
environment.