The main page for the series is here.

Introduction

This post starts a series on Windows Installer Object Model. We will explore how and when to use automation interface objects, properties, and functions.

Roughly, we have three main groups:

- Getting information about installed products
- Updating installed products
- Making changes in the MSI database during installation

There also few methods to deal with advertising and few helper methods (getting value of environment variable or registry, few file related functions).

The following table shows in which version of MSI objects and methods/properties were introduced:

Object | Property/Method | 2.0 | 3.0 | 3.1 | 4.0 | 4.5 |
---|---|---|---|---|---|---|

Installer | AddSource | X | ||||

AdvertiseProduct | X | |||||

AdvertiseScript | X | |||||

ApplyPatch | X | |||||

ApplyMultiplePatches | X | |||||

ClearSourceList | X | |||||

CollectUserInfo | X | |||||

ComponentClients | X | |||||

ComponentPath | X | |||||

ComponentQualifiers | X | |||||

Components | X | |||||

ConfigureFeature | X | |||||

ConfigureProduct | X | |||||

CreateAdvertiseScript | X | |||||

CreateRecord | X | |||||

EnableLog | X | |||||

Environment | X | |||||

ExtractPatchXMLData | X | |||||

FeatureParent | X | |||||

Features | X | |||||

FeatureState | X | |||||

FeatureUsageCount | X | |||||

FeatureUsageDate | X | |||||

FileAttributes | X | |||||

FileHash | X | |||||

FileSignatureInfo | X | |||||

FileSize | X | |||||

FileVersion | X | |||||

ForceSourceListResolution | X | |||||

InstallProduct | X | |||||

LastErrorRecord | X | |||||

OpenPackage | X | |||||

OpenDatabase | X | |||||

OpenProduct | X | |||||

Patches | X | |||||

PatchesEx | X | |||||

PatchFiles | X | |||||

PatchInfo | X | |||||

PatchTransforms | X | |||||

ProductInfo | X | |||||

ProductInfoFromScript | X | |||||

ProductElevated | X | |||||

ProductsEx | X | |||||

Products | X | |||||

ProductState | X | |||||

ProvideAssembly | X | |||||

ProvideComponent | X | |||||

ProvideQualifiedComponent | X | |||||

QualifierDescription | X | |||||

RegistryValue | X | |||||

ReinstallFeature | X | |||||

ReinstallProduct | X | |||||

RelatedProducts | X | |||||

RemovePatches | X | |||||

ShortcutTarget | X | |||||

SummaryInformation | X | |||||

UILevel | X | |||||

UseFeature | X | |||||

Version | X | |||||

Product | SourceListAddMediaDisk | X | ||||

SourceListAddSource | X | |||||

SourceListClearSource | X | |||||

SourceListClearAll | X | |||||

SourceListClearMediaDisk | X | |||||

SourceListForceResolution | X | |||||

SourceListInfo | X | |||||

ComponentState | X | |||||

ProductCode | X | |||||

InstallProperty | X | |||||

Context | X | |||||

FeatureState | X | |||||

MediaDisks | X | |||||

Sources | X | |||||

State | X | |||||

UserSid | X | |||||

FeatureInfo | Attributes | X | ||||

Description | X | |||||

Title | X | |||||

Patch | SourceListAddMediaDisk | X | ||||

SourceListAddSource | X | |||||

SourceListClearSource | X | |||||

SourceListClearAll | X | |||||

SourceListClearMediaDisk | X | |||||

SourceListForceResolution | X | |||||

Context | X | |||||

MediaDisks | X | |||||

PatchCode | X | |||||

PatchProperty | X | |||||

ProductCode | X | |||||

SourceListInfo | X | |||||

Sources | X | |||||

State | X | |||||

UserSid | X | |||||

Database | ApplyTransform | X | ||||

Commit | X | |||||

CreateTransformSummaryInfo | X | |||||

DatabaseState | X | |||||

EnableUIPreview | X | |||||

Export | X | |||||

GenerateTransform | X | |||||

Import | X | |||||

Merge | X | |||||

OpenView | X | |||||

PrimaryKeys | X | |||||

SummaryInformation | X | |||||

TablePersistent | X | |||||

Session | ComponentCosts | X | ||||

ComponentCurrentState | X | |||||

ComponentRequestState | X | |||||

Database | X | |||||

DoAction | X | |||||

EvaluateCondition | X | |||||

FeatureCost | X | |||||

FeatureCurrentState | X | |||||

FeatureInfo | X | |||||

FeatureRequestState | X | |||||

FeatureValidStates | X | |||||

FormatRecord | X | |||||

Installer | X | |||||

Language | X | |||||

Message | X | |||||

Mode | X | |||||

ProductProperty | X | |||||

Property | X | |||||

Sequence | X | |||||

SetInstallLevel | X | |||||

SourcePath | X | |||||

TargetPath | X | |||||

VerifyDiskSpace | X | |||||

SummaryInfo | Persist | X | ||||

Property | X | |||||

PropertyCount | X | |||||

View | Close | X | ||||

ColumnInfo | X | |||||

Execute | X | |||||

Fetch | X | |||||

GetError | X | |||||

Modify | X | |||||

UIPreview | Property | X | ||||

ViewBillboard | X | |||||

ViewDialog | X | |||||

Record | ClearData | X | ||||

DataSize | X | |||||

FieldCount | X | |||||

FormatText | X | |||||

IntegerData | X | |||||

IsNull | X | |||||

ReadStream | X | |||||

StringData | X | |||||

RecordList | Count | X | ||||

Item | X | |||||

StringList | Count | X | ||||

Item | X |