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.

MsiEmbeddedUI Identifier YN
FileName Text NN
Attributes Integer NN
MessageFilter DoubleInteger NY
Data Binary NN




The primary key for the table.


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.


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

None0x000The file is not the DLL file for the user interface. It may be a resource file used by the user interface.
msidbEmbeddedUI0x011The 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.
msidbEmbeddedHandlesBasic0x022Enables 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.



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.

INSTALLLOGMODE_FATALEXIT0x000011Premature termination.
INSTALLLOGMODE_ERROR0x000022Error messages.
INSTALLLOGMODE_WARNING0x000044Warning messages.
INSTALLLOGMODE_USER0x000088User messages.
INSTALLLOGMODE_INFO0x0001016Unlogged status messages.
INSTALLLOGMODE_FILESINUSE0x0002032Files currently held in use.
INSTALLLOGMODE_RESOLVESOURCE0x0004064Source resolution requests.
INSTALLLOGMODE_OUTOFDISKSPACE0x00080128Disk space messages.
INSTALLLOGMODE_ACTIONSTART0x00100256Action start messages.
INSTALLLOGMODE_ACTIONDATA0x00200512Action data messages.
INSTALLLOGMODE_PROGRESS0x004001024Progress messages.
INSTALLLOGMODE_COMMONDATA0x008002048UI initialization messages.
INSTALLLOGMODE_INITIALIZE0x010004096UI startup messages sent when a product installation is starting.
INSTALLLOGMODE_TERMINATE0x020008192UI shutdown messages sent after a product installation has finished.
INSTALLLOGMODE_SHOWDIALOG0x0400016384Messages sent prior to the display of UI dialog.
INSTALLLOGMODE_RMFILESINUSE0x0200000033554432Files currently held in use.
INSTALLLOGMODE_INSTALLSTART0x0400000067108864Installation of product begins. The message contains the product's ProductName and ProductCode.
INSTALLLOGMODE_INSTALLEND0x08000000134217728Installation of product ends. The message contains the product's ProductName, ProductCode, and return value.



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.


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.