The tables in the
Installation Procedure group control tasks performed during the installation by
standard actions and custom actions.
Some of the tables
in this group control a high level action by providing a sequence of actions.
Each of the following sequence tables controls a portion of a high level
action.
- The InstallUISequence table
- The InstallExecuteSequence table
- The AdminUISequence table
- The AdminExecuteSequence table
- The AdvtUISequence table
- The AdvtExecuteSequence table
The Program
Information Tables group contain important information that used throughout the
installation.
- The Property table provides a means to specify all of the
properties of an installation.
- The Binary table holds the binary data for items such as bitmaps,
animations, and icons. The binary table is also used to store data for
custom actions. This table can contain a bitmap for a billboard, the icon
for your program, or the executable form of a custom action.
- The Error table is used to look up error message formatting
templates when processing errors with an error code set. This is for the
usual case where there is no formatting template set. The installer has
its own error processing mechanism. Errors are passed as records.
- Shortcut table the shortcut table holds the information the
application needs to create Shortcuts on the user's computer.
- The ReserveCost table contains the disk space necessary for each
component to work properly.
The Locator Tables
group is used to locate files and applications. To search for a file, first
determine the file signature and then locate the file. The Locator tables are
used to search the registry, installer configuration data, directory tree, or
.ini files for the unique signature of a file. The file signature can then be
checked in the Signature table to ascertain that a particular file is really
the file being sought and not another file with the same name. If a record in a
locator table does not contain a key into the Signature table, then the record
refers to a directory and not a file.
The component
controlling a file is found in the File table through the external key to the
Component table. The installer resolves the location of a file through the
Component table because every file belongs to one component. The location of a
component is found through an external key in the Component table to the
Directory table.
The location of an
application is found by searching for files that make up the application. The
installer also provides two tables for searching for previous versions of an
application: the AppSearch table and the CCPSearch table.
The following
tables make up the Locator tables group and are used to determine the file
signature.
- The RegLocator table holds the information needed to search for a
file or directory in the registry.
- The IniLocator table holds the information needed to search for a
.ini file. The .ini file must be present in the default Microsoft®
Windows® directory.
- The CompLocator table holds the information needed to search for a
file or a directory using the installer's configuration data.
- The DrLocator table holds the information needed to search for a
file or directory in the directory tree.
- The AppSearch table contains the properties that must be set to
the search result of a corresponding file signature.
- The CCPSearch table contains the list of file signatures, at least
one of which needs to be present on a user's computer for the Compliance
Checking Program (CCP).
The tables of the
system tables group track the tables and columns of the installation database.
- The _Tables table tracks all the tables in the database. This
includes tables that you may have created for your own custom actions.
Query this table to find out if a table exists.
- The _Columns table tracks columns in the installation database.
Temporary columns are currently not tracked by this table. Query this
table to find out if a given column exists.
- The _Streams table lists embedded OLE data streams.
- The _Storages table lists embedded OLE data storages.
- The _Validation table. The _Validation table tracks the types and
allowed ranges of every column in the database. The _Validation table is
used during the database validation process to ensure that all columns are
accounted for and have the correct values. This table is not shipped with
the installer database.
The installer has
specific tables for the different types of registry entries. When populating
the registry tables group it is important to try to minimize the number of
entries put into the Registry table and maximize the use of the other,
specific, registry tables. This is because the installer cannot distinguish
between different types of registry entries in the Registry table and cannot
use the internal logic necessary to take full advantage of all of the installer
features, such as advertising. Authoring COM and shell-related registry entries
in this way also provides a more logical organization and can help minimize
erroneous registration of COM server information.
The registry entry
group contains the following tables of specific registry entries.
- The Extension table contains all of the filename extensions your
application uses along with their associated features and components.
- The Verb table associates command-verb information with the file
extensions listed in the Extension table. This provides an indirect link
between the Verb and Feature table that is needed for feature
advertisement.
- The TypeLib table provides information that the installer places
in the registry for the registration of type libraries. Type library
entries are not written at the time of advertisement. The installer writes
the type library entries at the time the components associated with the
library are installed.
- The MIME table associates a MIME context type with a CLSID or a
file extension. This provides a path between the MIME and Feature Table
that is needed for feature advertisement.
- The SelfReg table provides information needed to self-register
modules. Self-registration is provided by the installer only for backward
compatibility and it is not recommended as a method for populating the
registry, however if there are any modules in your application that must
register themselves, use the SelfReg table.
- The Class table is used to register Class IDs and other
information for COM objects. This table contains COM server-related
information that must be generated as a part of the product advertisement.
- The ProgId table associates program IDs with class IDs.
- The AppId table is used to register common security and
configuration settings for DCOM objects.
- The Environment table is used to set the values of environment
variables, and in Windows NT/Windows 2000 the Environment table writes to
registry as well.
- The Registry table holds any other information that the
application needs to put into the system registry. This would include
default settings, user information or data, or COM registration not
supported by the above tables.
- The RemoveRegistry table contains the registry information the
application needs to delete from the system registry at installation time.
An installer package
developer should consider populating the file table group of tables after
breaking the application into components and features and after populating the
core tables group. The file table group contains all of the files belonging to
the installation and most of these files are listed in the File table. The
Directory table is not listed in this group, but is closely related to the file
table group. The Directory table gives the directory structure of the
installation.
The file group of
tables contains all of the tables that are related to files.
- The File table lists files belonging to the installation. Files
that are not listed in the File table include disk files, which are listed
in Media table. Because every file belongs to a component, the File table
has an external key into the Component table.
- The RemoveFile table contains a list of files to be removed by the
RemoveFiles action.
- The Font table lists font files to be registered with the system.
- The SelfReg table lists module files of the installation that are
self-registered.
- The Media table lists the source media and disks belonging to the
installation.
- The BindImage table lists files that are bound to DLLs imported by
executables.
- The MoveFile table specifies which files are moved during the installation.
- The DuplicateFile table specifies which files are duplicated
during the installation.
- The IniFile table lists the .ini files and the information that
the application needs to set in the file.
- The RemoveIniFile table contains the information an application
needs to delete from a .ini file.
- The Environment table is used to set the values of environment
variables and in Windows 95, the Environment table lists changes that will
be made to the autoexec.bat file.
- The Icon table provides icon information that is copied to a file
as a part of product advertisement.
The core group
consists of tables describing the fundamental features and components of the
application and the installer package. Developers of install packages should
therefore consider how to populate these tables first because the organization
of much of the database will become apparent from the content of this group.
- The Feature table lists all features belonging to the application.
- The Condition table contains the conditional expressions that
determine whether or not a particular feature will be installed.
- The FeatureComponents table describes which components belong to
each feature.
- The Component table lists all components belonging to the
installation.
- The Directory table lists the directories that are needed during
the installation. Because each component must be associated with one and
only one directory, the Component table is closely related to this table
and has an external key to the Directory table.
- The PublishComponent table lists the features and components that
are published for use by other applications. Components and Features are
the two types of feature advertisement.