示例#1
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));
        }
 internal static extern MsiUIHandlerDelegate SetExternalUI([MarshalAs(UnmanagedType.FunctionPtr)] MsiUIHandlerDelegate handler, InstallLogMode filter, object context);
示例#3
0
 public InternalUISettings(InstallUILevel uiLevel, IntPtr window, MsiUIHandlerDelegate handlerDelegate)
 {
     this.UILevel           = uiLevel;
     this.Window            = window;
     this.UIHandlerDelegate = handlerDelegate;
 }