MsiEmbeddedUI Table

The MsiEmbeddedUI table defines a user interface embedded in the Windows Installer package.

Windows Installer 4.0 or earlier: Not supported. This table is available beginning with Windows Installer 4.5.

The MsiEmbeddedUI table has the following columns.

Column Type Key Nullable
MsiEmbeddedUI Identifier Y N
FileName Text N N
Attributes Integer N N
MessageFilter DoubleInteger N Y
Data Binary N N

 

Columns

MsiEmbeddedUI

The primary key for the table.

FileName

The name of the file that receives the binary information in the Data column. The name of the file is required to include an extension. For example, the name embeddedui.dll is acceptable, but embeddedui is unacceptable. The name may be localized. This field can contain a short file name or a long file name, but it cannot contain both. The format of this field is like the Filename column data type except that the vertical bar (|) separator for the short file name/long file name syntax is not available. Because some web servers can be case sensitive, FileName should match the case of the source files exactly to ensure support of Internet downloads.

Attributes

Information about the data in the Data column. The value in this field can contain one or more of the following constants.

Constant Hexadecimal Decimal Meaning
None 0x00 0 The file is not the DLL file for the user interface. It may be a resource file used by the user interface.
msidbEmbeddedUI 0x01 1 The primary DLL file for the user interface. No more than one row in the table can be marked with this attribute. If multiple rows are marked with this attribute, it is an error and it cannot be guaranteed which DLL is used.
msidbEmbeddedHandlesBasic 0x02 2 Enables the installer to invoke the embedded UI during a basic UI level installation. The installer ignores this attribute if it is not combined with the msidbEmbeddedUI attribute.

 

MessageFilter

Specifies the types of messages that are sent to the user interface DLL. This column is only relevant for rows with the msidbEmbeddedUI attribute. This field should be null if a row references a resource file and the value of Attributes is null. If a row references a user interface DLL, the value in this column should not be null.

The value in this column can be a combination of the following values. The installer ignores any other values.

Constant Hexadecimal Decimal Description
INSTALLLOGMODE_FATALEXIT 0x00001 1 Premature termination.
INSTALLLOGMODE_ERROR 0x00002 2 Error messages.
INSTALLLOGMODE_WARNING 0x00004 4 Warning messages.
INSTALLLOGMODE_USER 0x00008 8 User messages.
INSTALLLOGMODE_INFO 0x00010 16 Unlogged status messages.
INSTALLLOGMODE_FILESINUSE 0x00020 32 Files currently held in use.
INSTALLLOGMODE_RESOLVESOURCE 0x00040 64 Source resolution requests.
INSTALLLOGMODE_OUTOFDISKSPACE 0x00080 128 Disk space messages.
INSTALLLOGMODE_ACTIONSTART 0x00100 256 Action start messages.
INSTALLLOGMODE_ACTIONDATA 0x00200 512 Action data messages.
INSTALLLOGMODE_PROGRESS 0x00400 1024 Progress messages.
INSTALLLOGMODE_COMMONDATA 0x00800 2048 UI initialization messages.
INSTALLLOGMODE_INITIALIZE 0x01000 4096 UI startup messages sent when a product installation is starting.
INSTALLLOGMODE_TERMINATE 0x02000 8192 UI shutdown messages sent after a product installation has finished.
INSTALLLOGMODE_SHOWDIALOG 0x04000 16384 Messages sent prior to the display of UI dialog.
INSTALLLOGMODE_RMFILESINUSE 0x02000000 33554432 Files currently held in use.
INSTALLLOGMODE_INSTALLSTART 0x04000000 67108864 Installation of product begins. The message contains the product's ProductName and ProductCode.
INSTALLLOGMODE_INSTALLEND 0x08000000 134217728 Installation of product ends. The message contains the product's ProductName, ProductCode, and return value.

 

Data

This column contains binary information. If the Attribute field is marked with the msidbEmbeddedUI attribute, the information in this field must be a DLL. If the Attribute field is not the msidbEmbeddedUI attribute, the information in this field can be a resource file in any format.

Remarks

To use an embedded user interface, the setup developer must author this functionality into the Windows Installer package. The MsiEmbeddedUI table defines the embedded user interface. The DLL for the embedded UI should export the InitializeEmbeddedUI, EmbeddedUIHandler, and ShutdownEmbeddedUI functions. Packages that do not support an embedded user interface can use the Windows Installer internal user interface.

To run Debugging Tools for Windows on an embedded user interface, use the techniques described in Debugging Custom Actions. Set the value of MsiBreak to MsiEmbeddedUI.

For an example of an embedded custom UI see Using an Embedded UI.