Exemple #1
0
 public static void PopExternalUI()
 {
     TaskLogger.LogEnter();
     MsiUtility.InternalUISettings internalUISettings = (MsiUtility.InternalUISettings)MsiUtility.uiSettings.Pop();
     MsiNativeMethods.SetExternalUI(internalUISettings.UIHandlerDelegate, InstallLogMode.None, null);
     MsiNativeMethods.SetInternalUI(internalUISettings.UILevel, ref internalUISettings.Window);
     TaskLogger.LogExit();
 }
Exemple #2
0
        public static void PushExternalUI(MsiUIHandler handler, InstallLogMode logMode)
        {
            TaskLogger.LogEnter();
            IntPtr         zero           = IntPtr.Zero;
            InstallUILevel installUILevel = MsiNativeMethods.SetInternalUI(InstallUILevel.None | InstallUILevel.SourceResOnly, ref zero);

            if (installUILevel == InstallUILevel.NoChange)
            {
                throw new ArgumentOutOfRangeException("uiLevel", installUILevel, Strings.ExceptionInvalidUILevel);
            }
            MsiUIHandlerDelegate handlerDelegate = MsiNativeMethods.SetExternalUI(handler.UIHandlerDelegate, logMode, null);

            MsiUtility.uiSettings.Push(new MsiUtility.InternalUISettings(InstallUILevel.None | InstallUILevel.SourceResOnly, zero, handlerDelegate));
        }