public static new int Convert(String inputFile, String outputFile, Hashtable options) { Boolean running = (Boolean)options["noquit"]; MSProject.Application app = null; object missing = System.Reflection.Missing.Value; try { try { app = (MSProject.Application)Marshal.GetActiveObject("MSProject.Application"); } catch (System.Exception) { app = new MSProject.Application(); running = false; } System.Type type = app.GetType(); if (type.GetMethod("DocumentExport") == null || System.Convert.ToDouble(app.Version.ToString()) < 14) { Console.WriteLine("Not implemented with Office version {0}", app.Version); return((int)ExitCode.UnsupportedFileFormat); } app.ShowWelcome = false; app.DisplayAlerts = false; app.DisplayPlanningWizard = false; app.DisplayWizardErrors = false; Boolean includeProps = !(Boolean)options["excludeprops"]; Boolean markup = (Boolean)options["markup"]; FileInfo fi = new FileInfo(inputFile); switch (fi.Extension) { case ".mpp": MSProject.Project project = null; if (app.FileOpenEx(inputFile, false, MSProject.PjMergeType.pjDoNotMerge, missing, missing, missing, missing, missing, missing, missing, missing, MSProject.PjPoolOpen.pjDoNotOpenPool, missing, missing, false, missing)) { project = app.ActiveProject; } if (project == null) { return((int)ExitCode.UnknownError); } app.DocumentExport(outputFile, MSProject.PjDocExportType.pjPDF, includeProps, markup, false, missing, missing); app.FileCloseEx(MSProject.PjSaveType.pjDoNotSave, missing, missing); break; } return(File.Exists(outputFile) ? (int)ExitCode.Success : (int)ExitCode.UnknownError); } catch (System.Exception e) { Console.WriteLine(e.Message); return((int)ExitCode.UnknownError); } finally { if (app != null && !running) { ((MSProject.Application)app).Quit(); } Converter.ReleaseCOMObject(app); } }
public static new int Convert(String inputFile, String outputFile, Hashtable options) { Boolean running = (Boolean)options["noquit"]; MSProject.Application app = null; object missing = System.Reflection.Missing.Value; try { try { app = (MSProject.Application)Marshal.GetActiveObject("MSProject.Application"); } catch (System.Exception) { app = new MSProject.Application(); running = false; } System.Type type = app.GetType(); if (type.GetMethod("DocumentExport") == null || System.Convert.ToDouble(app.Version.ToString()) < 14) { Console.WriteLine("Not implemented with Office version {0}", app.Version); return (int)ExitCode.UnsupportedFileFormat; } app.ShowWelcome = false; app.DisplayAlerts = false; app.DisplayPlanningWizard = false; app.DisplayWizardErrors = false; Boolean includeProps = !(Boolean)options["excludeprops"]; Boolean markup = (Boolean)options["markup"]; FileInfo fi = new FileInfo(inputFile); switch(fi.Extension) { case ".mpp": MSProject.Project project = null; if (app.FileOpenEx(inputFile, false, MSProject.PjMergeType.pjDoNotMerge,missing, missing, missing, missing, missing, missing, missing, missing, MSProject.PjPoolOpen.pjDoNotOpenPool, missing, missing, false, missing)) { project = app.ActiveProject; } if (project == null) { return (int)ExitCode.UnknownError; } app.DocumentExport(outputFile, MSProject.PjDocExportType.pjPDF, includeProps, markup, false, missing, missing); app.FileCloseEx(MSProject.PjSaveType.pjDoNotSave, missing, missing); break; } return File.Exists(outputFile) ? (int)ExitCode.Success : (int)ExitCode.UnknownError; } catch (System.Exception e) { Console.WriteLine(e.Message); return (int)ExitCode.UnknownError; } finally { if (app != null && !running) { ((MSProject.Application)app).Quit(); } Converter.releaseCOMObject(app); } }