Hi,
I'm using Windows 7, Office 2013, Visual Studio 2012.
I'm trying to add a chart to a Powerpoint presentation but getting a COM error, using a C# program. It works fine if I open the presentation with the WithWindow parameter set to MsoTriState.msoTrue but fails with a COM error if the parameter is set to MsoTriState.msoFalse.
The COM error I get is 'Error HRESULT E_FAIL has been returned from a call to a COM component.' with an HRESULT of -2147467259, with no other information. Below is some code to reproduce the problem.
Has anyone else seen this before or can anyone suggest a way to proceed please?
Thanks,
Kevin
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using IOPP = Microsoft.Office.Interop.PowerPoint; using gr = Microsoft.Office.Interop.Graph; using xl = Microsoft.Office.Interop.Excel; using Core = Microsoft.Office.Core; namespace Powerpointchart { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button3_Click(object sender, EventArgs e) { IOPP.Application powerpoint = new IOPP.Application(); var presentations = powerpoint.Presentations; IOPP.Presentation pres = presentations.Open("C:\\templates\\PPTChart.pptx", Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse); try { //Instantiate slide object Microsoft.Office.Interop.PowerPoint.Slide objSlide = null; //Access the first slide of presentation objSlide = pres.Slides[1]; IOPP.Chart ppChart = objSlide.Shapes.AddChart(Microsoft.Office.Core.XlChartType.xl3DColumn, 20F, 30F, 400F, 300F).Chart; } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } finally { //Close Workbook and presentation pres.Application.Quit(); } } } }