Article ID: 180616
Article Last Modified on 1/22/2007
224925 INFO: Type Libraries for Office May Change With New Release
178749 How To Create an Automation Project Using MFC and a Type Library
#include "msppt8.h"
#include "graph8.h"
// Commonly used OLE-variants.
COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
_Application app;
Presentations presentations;
_Presentation presentation;
Slides slides;
_Slide slide;
ShapeRange shaperange;
Shapes shapes;
Shape shape;
TextFrame textframe;
TextRange textrange;
Font font;
FillFormat fillformat;
ColorFormat colorformat;
ShadowFormat shadow;
CString strPic1 ="C:\\Program Files\\Microsoft Office\\Clipart\\Popular\\Amhappy.wmf";
CString strTemplate =
"C:\\Program Files\\Microsoft Office\\Templates\\Presentation Designs\\Zesty.pot";
if(!app.CreateDispatch("Powerpoint.Application"))
{
AfxMessageBox("Could not create Powerpoint object.");
return;
}
//Make the application visible and minimized.
app.SetVisible((long)TRUE);
app.SetWindowState((long) 2); //ppWindowMinimized=2
//Get the Presentations collection and create a new presentation
//from a template(.POT)
presentations.AttachDispatch(app.GetPresentations());
presentation = presentations.Open(
strTemplate, //File name
(long)0, //Read-only
(long)-1, //Untitled
(long)-1 //WithWindow
);
slides = presentation.GetSlides();
//Add the first slide to the presentation.
slide = (slides.Add((long)1, (long)11)); //pptLayoutTitleOnly=11
//Modify the text and font name of the TextFrame on the slide.
shapes = slide.GetShapes();
shape = shapes.Item(COleVariant((short)1));
textframe = shape.GetTextFrame();
textrange = textframe.GetTextRange();
textrange.SetText("My Sample Presentation");//Set the text
font = textrange.GetFont();
font.SetName("Comic Sans MS"); //Set the font name.
font.SetSize((float)48); //Set the font size.
//Insert a picture into the slide and position it.
shapes.AddPicture(
strPic1, //Filename
(long)0, //LinkToFile
(long)-1, //SaveWithDocument
(float)150, //Left
(float)150, //Top
(float)500, //Width
(float)350 //Height
);
//Add the second slide to the presentation.
slide = (slides.Add((long)2, (long)11)); //pptLayoutTitleOnly=11
//Modify the text and font name of the
//TextFrame on the slide.
shapes = slide.GetShapes();
shape = shapes.Item(COleVariant((short)1));
textframe = shape.GetTextFrame();
textrange = textframe.GetTextRange();
textrange.SetText("Look! It's a Graph!");//Set the text
font = textrange.GetFont();
font.SetName("Comic Sans MS"); //Set the font name.
font.SetSize((float)48); //Set the font size.
//Add a Graph8 object to the slide.
shape = shapes.AddOLEObject(
(float)150, //Left
(float)150, //Top
(float)480, //Width
(float)320, //Height
"MSGraph.Chart", //Classname
"", //FileName
(long)0, //DisplayAsIcon
"", //IconFileName
(long)0, //IconIndex
"", //IconLabel
(long)0 //Link
);
//Modify the charttype of the graph.
Chart chart;
OLEFormat olefmt = shape.GetOLEFormat();
chart = olefmt.GetObject();
chart.SetChartType((long)70);
//Add the third slide to the presentation.
slide = (slides.Add((long)3, (long)12)); //ppLayoutBlank = 12
//Change the background color of the slide.
slide.SetFollowMasterBackground((long)0);
shaperange = slide.GetBackground();
fillformat = shaperange.GetFill();
colorformat = fillformat.GetForeColor();
colorformat.SetSchemeColor((long)3); //ppShadow = 3
//Add Text Effects to the last slide
shapes = slide.GetShapes();
shape = shapes.AddTextEffect(
(long)27, //PresetTextEffect (msoTextEffect28 = 27)
"The End", //Text
"Impact", //FontName
(float)96, //FontSize
(long)0, //FontBold
(long)0, //FontItalic
(float)230, //Left
(float)200 //Top
);
//Apply a gradient fill to the texteffect.
fillformat = shape.GetFill();
colorformat = fillformat.GetForeColor();
colorformat.SetSchemeColor((long)2); //ppForeground = 2
colorformat = fillformat.GetBackColor();
colorformat.SetSchemeColor((long)4); //ppTitle = 4
fillformat.TwoColorGradient ((long)1, (long)1);
//msoGradientHorizontal = 1
//Apply a shadow to the texteffect.
shadow = shape.GetShadow();
colorformat = shadow.GetForeColor();
colorformat.SetSchemeColor((long)2); //ppForeground = 2
shadow.SetVisible((long)-1);
shadow.IncrementOffsetX((float)3);
shadow.IncrementOffsetY((float)3);
SlideShowTransition show;
SlideShowSettings slideshow;
//Set the Transition effects for Slide 1.
slide = slides.Item(COleVariant((short)1));
show = slide.GetSlideShowTransition();
show.SetEntryEffect((long)769); //ppEffectBlindsHorizontal=769
show.SetAdvanceOnTime((long)-1);
show.SetAdvanceTime((float)3);
//Set the Transition effects for Slide 2.
slide = slides.Item(COleVariant((short)2));
show = slide.GetSlideShowTransition();
show.SetEntryEffect((long)770); //ppEffectBlindsVertical=770
show.SetAdvanceOnTime((long)-1);
show.SetAdvanceTime((float)3);
//Set the Transition effects for Slide 3.
slide = slides.Item(COleVariant((short)3));
show = slide.GetSlideShowTransition();
show.SetEntryEffect((long)3073); //ppEffectBoxOut=3073
show.SetAdvanceOnTime((long)-1);
show.SetAdvanceTime((float)3);
//Run the show.
slideshow = presentation.GetSlideShowSettings();
slideshow.Run();
//Quit the application after waiting 9 seconds (the length of the
//slide show).
::Sleep(9000);
presentation.SetSaved((long)-1);
app.Quit();
CString strPic1 ="C:\\Program Files\\Microsoft Office\\Clipart\\Popular\\Amhappy.wmf";
CString strTemplate =
"C:\\Program Files\\Microsoft Office\\Templates\\Presentation Designs\\Zesty.pot";
Additional query words: PPT PPT97 PPT2000 PPT2002
Keywords: kbprogramming kbfunctions kbautomation kbhowto kbinterop KB180616