/// <summary> /// Obtains and stores the user information and product ID from an installation wizard. /// </summary> /// <remarks><p> /// This method is typically called by an application during the first run of the application. The application /// first gets the <see cref="ProductInstallation.ProductId"/> or <see cref="ProductInstallation.RegOwner"/>. /// If those properties are missing, the application calls CollectUserInfo. /// CollectUserInfo opens the product's installation package and invokes a wizard sequence that collects /// user information. Upon completion of the sequence, user information is registered. Since this API requires /// an authored user interface, the user interface level should be set to full by calling /// <see cref="Installer.SetInternalUI(InstallUIOptions)"/> as <see cref="InstallUIOptions.Full"/>. /// </p><p> /// The CollectUserInfo method invokes a FirstRun dialog from the product installation database. /// </p><p> /// Win32 MSI API: /// <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicollectuserinfo.asp">MsiCollectUserInfo</a> /// </p></remarks> public void CollectUserInfo() { if (this.properties == null) { uint ret = NativeMethods.MsiCollectUserInfo(this.InstallationCode); if (ret != 0) { throw InstallerException.ExceptionFromReturnCode(ret); } } }