Database Functions

This material is intended for developers who are writing their own setup programs and developers who want to learn more about the installer database tables. For general information on the installer, see About Windows Installer.

You can use the installer access functions to access the database and the installation process. These functions should only be used by custom installation actions and authoring tools. Some of the installer access functions require SQL query strings for querying the database. Queries must adhere to the installer SQL syntax.

This topic lists the installer database access functions by category.

General Database Access Functions

Function Description
MsiDatabaseCommit Commits changes to a database.
MsiDatabaseGetPrimaryKeys Returns the names of all the primary key columns.
MsiDatabaseIsTablePersistent Returns an enumeration describing the state of a table.
MsiDatabaseOpenView Prepares a database query and creates a view object.
MsiGetActiveDatabase Returns the active database for the installation.
MsiViewGetColumnInfo Returns column names or definitions.
MsiOpenDatabase Opens a database file for data access.
MsiViewClose Releases the result set for an executed view.
MsiViewExecute Executes the view query and supplies required parameters.
MsiViewFetch Fetches the next sequential record from the view.
MsiViewGetError Returns the error that occurred in the MsiViewModify function.
MsiViewModify Updates a fetched record.


Database Management Functions

Function Description
MsiCreateTransformSummaryInfo Creates summary information for an existing transform.
MsiDatabaseApplyTransform Applies a transform to a database.
MsiDatabaseExport Exports a table from an open database to a text archive file.
MsiDatabaseGenerateTransform Generates a transform file of differences between two databases.
MsiDatabaseImport Imports an installer text archive table into an open database.
MsiDatabaseMerge Merges two databases together.
MsiGetDatabaseState Returns the state of the database.


Record Processing Functions

Function Description
MsiCreateRecord Creates new record object with specified number of fields.
MsiFormatRecord Formats record field data and properties using a format string.
MsiRecordClearData Sets all fields in a record to null.
MsiRecordDataSize Returns the length of a record field.
MsiRecordGetFieldCount Returns the number of fields in a record.
MsiRecordGetInteger Returns the integer value from a record field.
MsiRecordGetString Returns the string value of a record field.
MsiRecordIsNull Reports whether a record field is null.
MsiRecordReadStream Reads bytes from a record stream field into a buffer.
MsiRecordSetInteger Sets a record field to an integer field.
MsiRecordSetStream Sets a record stream field from a file.
MsiRecordSetString Copies a string into the designated field.


Summary Information Property Functions

Function Description
MsiGetSummaryInformation Obtains handle to summary information stream of installer database.
MsiSummaryInfoGetProperty Gets a single property from the summary information.
MsiSummaryInfoGetPropertyCount Returns number of properties in the summary information stream.
MsiSummaryInfoPersist Writes changed summary information back to summary information stream.
MsiSummaryInfoSetProperty Sets a single summary information property.


Installer State Access Functions

Function Description
MsiGetLanguage Returns the numeric language of the current installation.
MsiGetLastErrorRecord Returns error record last returned for the calling process.
MsiGetMode Returns one of the Boolean internal installation states.
MsiGetProperty Gets the value of an installer property.
MsiSetProperty Sets the value of an installation property.
MsiSetMode Sets an internal engine Boolean state.


Installer Action Functions

Function Description
MsiDoAction Executes built-in action, custom action, or user-interface wizard action.
MsiEvaluateCondition Evaluates a conditional expression containing property names and values.
MsiProcessMessage Sends an error record to the installer for processing.
MsiSequence Executes an action sequence.


Installer Location Functions

Function Description
MsiGetSourcePath Returns the full source path for a folder in the Directory table.
MsiGetTargetPath Returns the full target path for a folder in the Directory table.
MsiSetTargetPath Sets the full target path for a folder in the Directory table.


Installer Selection Functions

Function Description
MsiEnumComponentCosts Enumerates the disk-space per drive required to install a component.
MsiGetComponentState Obtains the state of a component.
MsiGetFeatureCost Returns the disk space required by a feature.
MsiGetFeatureState Gets the state of a feature.
MsiGetFeatureValidStates Returns a valid installation state.
MsiSetComponentState Sets a component to the specified state.
MsiSetFeatureAttributes Modifies the default attributes of a feature at run time.
MsiSetFeatureState Sets a feature to a specified state.
MsiSetInstallLevel Sets the installation level of a full product installation.
MsiVerifyDiskSpace Checks for sufficient disk space.


User Interface Functions

Function Description
MsiEnableUIPreview Enables preview mode of the user interface.
MsiPreviewBillboard Displays a billboard with the host control in the displayed dialog box.
MsiPreviewDialog Displays a dialog box as modeless and inactive.


All functions support both ANSI and Unicode calls. To use these functions, include MsiQuery.h and link with Msi.lib.

Installation Functions

In addition to the database access functions listed above, you create an installation package for an application by using the installer functions listed in the Installer Function Reference section.