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);
public InternalUISettings(InstallUILevel uiLevel, IntPtr window, MsiUIHandlerDelegate handlerDelegate) { this.UILevel = uiLevel; this.Window = window; this.UIHandlerDelegate = handlerDelegate; }