Authoring to Windows Installer 4.0 Features mentioned at PDC 2005

As Tyler recently mentioned, you can find the Professional Developers Conference 2005 session and presentation of the Windows Installer 4.0. Here's a preliminary view of how to author to these features. Note: This documentation is preliminary and is subject to change.

Restart Manager Support

As Tyler presented in the slide titled "Windows Installer 4.0: Fewer Reboots", Restart Manager support in MSI just requires MsiRMFilesInUse be present in the package when installing on Windows Vista. This dialog looks a lot like the FilesInUse dialog with a couple of radio buttons added under the list box to represent the new Restart Manager Option along with the fallback option to the old behavior.

Automatically close all applications and attempt to restart them after setup is complete.

ShutdownOption

2

2

6

21

322

17

Do not close applications. (A reboot will be required.)

Elevation Privleges Not Required

As Tyler presented in the slide titled "What's new in MSI: UAP Elevation and Installs and Patches", you can set the msidbSumInfoSourceTypeLUAPackage bit in the Summary Information Stream of a MSI and prevent the Windows Installer from invoking the UAP elevation prompt. To do this, one just needs to set the 4th position (0x08) in the Word Count property. You can do this with the Windows Installer SDK tool msiinfo.exe. As an example, here's the command and output before setting the bit

Windows Vista Multilingual User Interface (MUI) Shortcut Support

As Tyler presented in the slide titled "What's new in MSI: More...", you can now add Windows Vista Multilingual User Interface (MUI) Shortcut support to your MSI. The way you do this is to add for new columns to the Shortcut Table of your MSI. These are rows DisplayResourceDLL, DisplayResourceId, DescriptionResourceDLL, DescriptionResourceId placed as follows:

Column

Type

Key

Nullable

Shortcut

Identifier

Y

N

Directory_

Identifier

N

Name

Filename

N

Component_

Identifier

N

Target

Shortcut

N

Arguments

Formatted

Y

Description

Text

Y

Hotkey

Integer

Y

Icon_

Identifier

Y

IconIndex

Integer

Y

ShowCmd

Integer

Y

WkDir

Identifier

Y

DisplayResourceDLL

Formatted

Y

DisplayResourceId

Integer

Y

DescriptionResourceDLL

Formatted

Y

DescriptionResourceId

Integer

Y

Both the DisplayResourceDLL and DescriptionResourceDLL values represent fully qualified paths to files on disk that the MUI system will load (per the Windows Vista protocol) to get the localized strings. Both the DisplayResourceDId and DescriptionResourceId represent the resource index of the string of interest. This integer is non-negative and will be negated before the call to the Shell API to reguster the MUI shortcuts.