// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A // PARTICULAR PURPOSE. // // Copyright (c) 2006 Microsoft Corporation. All rights reserved. using System; using System.Windows.Forms; using System.Globalization; namespace Microsoft.Samples.RssPlatform.ScreenSaver { /// /// Thrown in the event that the Interop.Feeds.dll cannot be located. /// [Serializable] public class NoInteropException : System.Exception { public NoInteropException() { } public NoInteropException(string message) : base(message) { } public NoInteropException(string message, Exception inner) : base(message, inner) { } protected NoInteropException( System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { } } static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main(string[] args) { try { if (args.Length > 0) { // Get the 2 character command line argument string arg = args[0].ToLowerInvariant().Trim().Substring(0, 2); switch (arg) { case "/c": // Show the options dialog ShowOptions(); break; case "/p": // Don't do anything for preview break; case "/s": // Show screensaver form ShowScreenSaver(); break; case "/d": // Show screensaver in debug mode ShowScreenSaver(true); break; default: MessageBox.Show("Invalid command line argument: " + arg, "Invalid Command Line Argument", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } else { // If no arguments were passed in, show the screensaver ShowScreenSaver(); } } catch (NoInteropException ex) { string msg = ex.Message; if (msg.Contains("Interop.Feeds")) msg = "Please copy Interop.Feeds.dll into the same directory as the screen saver binary."; MessageBox.Show(msg, "Missing Interop Assembly", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } static void ShowOptions() { OptionsForm optionsForm = new OptionsForm(); Application.Run(optionsForm); } static void ShowScreenSaver() { ShowScreenSaver(false); } static void ShowScreenSaver(bool debugmode) { ScreenSaverForm screenSaver = new ScreenSaverForm(debugmode); Application.Run(screenSaver); } } }