I am using VC++ 2008 to automate PowerPoint. I follow the instructions in https://www.codeproject.com/Articles/2506/Automating-MS-Office-applications
Below is my code snippet:
CApplication app; // Create a Microsoft PPTX application
if (app.CreateDispatch(_T("Powerpoint.Application")))
{
CPresentations p = app.get_Presentations();
CPresentation ap;
CSlides Slides;
CSlide Slide;
CPageSetup PageSetup;
long lIndex, lCount;
CString strFileName;
double ratio;
// Open the presentation as ReadOnly, with the original title, and hide the window
ap = p.Open(_T("F:\\Test\\PPTX\\a.ppt"), msoTrue, msoFalse, msoFalse);
PageSetup = ap.get_PageSetup();
Slides = ap.get_Slides();
lCount = Slides.get_Count();
VARIANT vMissing; // VARIANT defining a missing/optional parameter.
vMissing.vt = VT_ERROR;
vMissing.scode = DISP_E_PARAMNOTFOUND;
for (lIndex = 0; lIndex < lCount; lIndex ++)
{
Slide = Slides.Item(COleVariant(lIndex)); // <---------This line will cause exception
strFileName.Format(_T("F:\\Test\\PPTX\\d\\s%d.jpg"), lIndex);
Slide.Export(strFileName, _T("JPG"), 500, 500);
}
app.Quit();
}
When executing the following line
Slide = Slides.Item(COleVariant(lIndex));
I will get "Interface not defined" exception, why?