MSDN posted Windows Installer 4.5 Beta documentation

Microsoft Developer Network (MSDN) now contains the Windows Installer 4.5 beta documentation.  From the What's New in Windows Installer 4.5 page, you'll find information on our new multi-package transaction APIs: MsiBeginTransaction, MsiEndTransaction, and MsiJoinTransaction.  You'll also find context for the Embedded features including MsiEmbeddedUI table, MsiEmbeddedChainer table and the EmbeddedUIHandler prototype.

Many thanks to Mark, Jen, Matt, Lee, and Julie for getting these pages out to you.

[Author: Robert Flaming]
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at

Comments (5)

  1. Kalle Olavi Niemitalo says:

    It is nice to finally see the MSI4.5 documentation without agreeing to Connect NDAs.

    In EmbeddedUIHandler, it is not clear what the hRecord will contain.  Is it directly the record passed to MsiProcessMessage, or does Windows Installer itself look up strings from the Error table?

    In InitializeEmbeddedUI, I expected a hwndParent parameter like in MsiSetInternalUI, so that an external chainer could set up a parent window and use it for all installations regardless of whether those have embedded UI or use the internal UI.

    Are the new Component.Attributes bits only for compatibility, or are there specific use cases in which new packages should not set them?  Apart from permanent components.

    In multiple-package transactions, how are the actions of different packages interleaved?  I imagine the Installer might run basically one package at a time but delay commit/rollback custom actions to MsiEndTransaction.  Is it possible to reboot (MSIRUNMODE_REBOOTNOW) during such a transaction?  The MsiEmbeddedChainer topic suggests it is not, because the chainer function would presumably have to exit, and Installer would then roll back.

    The Windows Installer start page used to mention that Windows Installer 4.1 would be coming in Windows Vista SP1, but this information seems to have been removed.  Has 4.1 been cancelled?

  2. zhakim says:

    Hello Kalle,

    Great questions.  

    Given it’ll take me a bit to walk through these answers, I’ll post the answers in up coming blogs.

    Really insightful ;^)



  3. Kalle Olavi Niemitalo says:

    Placing Win32 MUI Resource Files <; advises that language-specific resource files should be placed in subdirectories.  However the MsiEmbeddedUI.FileName column <; has type Filename, so it cannot contain backslashes.  I suppose one can work around this by making the embedded UI DLL move the files or load them explicitly with LoadLibrary.

    In MsiEmbeddedChainer, the executable file gets the transaction handle on the command line.  Please document how Windows Installer formats the MSIHANDLE as a string.  I presume it is a decimal integer in ASCII digits regardless of locale.

    Past versions of Windows Installer have included an unsupported mechanism that can choose and apply an embedded language transform automatically, based on the user’s locale settings.  Does MSI4.5 finally make it possible to implement equivalent behaviour in a supported way, via MsiEmbeddedChainer?  I mean the chainer would install just the one package but set the TRANSFORMS property to match the user’s language.  If the process that originally called MsiInstallProduct and triggered the embedded chainer has also called MsiSetExternalUIRecord, does MSI4.5 forward the messages to that UI handler, even across the embedded chainer?  If it doesn’t, I think changing a redistributable MSI package to use MsiEmbeddedChainer like this would potentially require changes in callers.

    If I understand correctly, Windows Installer remembers which language transform was used to install the package, and applies the same one in later maintenance operations.  It would be nicer if the language could be chosen afresh each time.  Perhaps you are already intending to phase out language transforms in favor of some other mechanism.  Windows Vista added MUI support to the Shortcut table and to ServiceInstall.Description, but that does not affect the UI and log file of the installation itself.

  4. As announced in the Windows Installer Team Blog , the documentation for Windows Installer 4.5 (beta)

Skip to main content