From: John N. <Joh...@mi...> - 2009-04-30 16:42:48
|
InstallLogModes is defined with the Flags attribute, so you can "or" your log modes together... Example: InstallLogModes ilm = InstallLogModes.Progress | InstallLogModes.FatalExit | InstallLogModes.Error | InstallLogModes.Warning | InstallLogModes.User | InstallLogModes.Info | InstallLogModes.ResolveSource | InstallLogModes.OutOfDiskSpace | InstallLogModes.ActionStart | InstallLogModes.ActionData | InstallLogModes.CommonData | InstallLogModes.Progress | InstallLogModes.Initialize | InstallLogModes.Terminate | InstallLogModes.ShowDialog; ExternalUIHandler oldUiHandle = Installer.SetExternalUI(newUiHandle, ilm); (or, of course inline in place of "ilm") -----Original Message----- From: Lewis99 [mailto:and...@gm...] Sent: Thursday, April 30, 2009 10:45 AM To: wix...@li... Subject: [WiX-devs] SetExternalUI - Multiple InstallLogModes Hello, Apologies if this is a basic question as I am quite new to both C# and DTF. I am trying to put a test application together to silently run MSI's and test Custom Actions that are kicked off within them. I am setting the MSI User Interface to Silent and attempting to add my own handler for the messages coming in. The method signature for SetExternalUI is as follows: public static ExternalUIHandler SetExternalUI( ExternalUIHandler uiHandler, InstallLogModes messageFilter How can I specify more than one InstallLogMode to ensure that all the necessary messages are handled by my user interface? At the moment I can only specify one. In reality I need an enum value something like this: ExternalUI = FatalExit | Error | Warning | User | ActionStart | ActionData | CommonData | Progress | ShowDialog. Is there a way to do this with the existing enum or by using the ExternalUIHandler differently? Here is my existing code: private void RunInstall(string PathToMSI, string CommandLineArguments) { try { Installer.SetInternalUI(InstallUIOptions.Silent, ref parent); ExternalUIHandler handler = new ExternalUIHandler(ActionStartHandler); ExternalUIHandler result = Installer.SetExternalUI(handler, InstallLogModes.ActionData); // can only specify one mode Session session = Installer.OpenPackage(PathToMSI, false); //session.DoActionSequence("InstallUISequence"); session.DoActionSequence("InstallExecuteSequence"); session.Close(); } catch (Exception e) { Debug.WriteLine("EXCEPTION -- " + e.ToString()); } } public MessageResult ActionStartHandler(InstallMessage MessageType, string Message, MessageBoxButtons Buttons, MessageBoxIcon Icons, MessageBoxDefaultButton DefaultButton) { switch (MessageType) { case InstallMessage.ActionStart: ChangeListViewProperly(Message + " " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:fffff")); break; case InstallMessage.ActionData: ChangeListViewProperly(Message + " " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:fffff")); break; } return MessageResult.OK; } Thanks in advance for your help. Lewis -- View this message in context: http://n2.nabble.com/SetExternalUI---Multiple-InstallLogModes-tp2747927p2747927.html Sent from the wix-devs mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ WiX-devs mailing list WiX...@li... https://lists.sourceforge.net/lists/listinfo/wix-devs |