Jak automatizovat pomocí Visual C++ 5.0 nebo Visual C++ 6.0 knihovně Microsoft Foundation Classes PowerPoint

Podpora Office 2003 byla ukončena.

Společnost Microsoft ukončila dne 8. dubna 2014 podporu Office 2003. Tato změna ovlivnila aktualizace softwaru a možnosti zabezpečení. Další informace o tom, co to pro vás znamená a jak zajistit ochranu

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

Projděte si také anglickou verzi článku:222960
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Souhrn
Tento článek popisuje, jak automatizovat aplikaci PowerPoint pomocí Visual C++ 5.0 nebo Visual C++ 6.0 s The Microsoft Foundation Classes (MFC).
Další informace
Pomocí automatizace v aplikaci PowerPoint můžete programově vytisknout, zobrazit snímky a provádět většinu věcí, můžete provést interaktivně. Takto sestavit a spustit příklad automatizace:
  1. Vytvoření nového projektu MFC EXE založené na dialogové okno.
  2. Přidání tlačítka dialogové okno a BN_CLICKED popisovač pro něj.
  3. ClassWizard (CTRL + W) otevřít, klepněte na kartu Automatizace, klepněte na tlačítko Přidat třídu a vyberte z knihovny typů.
  4. Přejděte do adresáře, kde jste nainstalovali sadu Office (například C:\Program Files\Microsoft Office\Office) a zvolte Msppt8.olb. PowerPoint knihovnu objektů pro aplikaci PowerPoint 2000 názvem Msppt9.olb. PowerPoint knihovnu objektů pro aplikaci PowerPoint 2002 je Msppt.olb a je umístěn) ve výchozím nastavení ve složce c:\Program Files\Microsoft Office\Office10. PowerPoint knihovnu objektů pro Microsoft Office PowerPoint 2003 je Msppt.olb a je umístěn) ve výchozím nastavení ve složce c:\Program Files\Microsoft Office\Office11
  5. Vyberte všechny třídy najde a klepněte na tlačítko OK získat zpět do projektu. ClassWizard má některé automatizace "tříd obálky" generovaných z knihovny typů PowerPoint a vytvořeny soubory Msppt8.h a Msppt8.cpp.
  6. Popisovač tlačítko přidejte následující kód:
    // Start PowerPoint._Application app;COleException e;if(!app.CreateDispatch("Powerpoint.Application", &e)) {   CString str;   str.Format("CreateDispatch() failed w/err 0x%08lx", e.m_sc),   AfxMessageBox(str, MB_SETFOREGROUND);   return;}// Make it visible.app.SetVisible(TRUE);// Get Presentations collection and add a new presentation.Presentations presSet(app.GetPresentations());_Presentation pres(presSet.Add(TRUE));// Get Slides collection and add a new slide.Slides slideSet(pres.GetSlides());_Slide slide1(slideSet.Add(1, 2));// Add text to slide, by navigating the slide as follows:// slide1.shapes(#).TextFrame.TextRange.Text{   Shapes shapes(slide1.GetShapes());   Shape shape(shapes.Item(COleVariant((long)1)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("My first slide");}{   Shapes shapes(slide1.GetShapes());   Shape shape(shapes.Item(COleVariant((long)2)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("Automating PowerPoint is easy\r\n"      "Using Visual C++ is powerful!");}// Add another slide with a chart._Slide slide2(slideSet.Add(2, 5));// Add text to slide as before.{   Shapes shapes(slide2.GetShapes());   Shape shape(shapes.Item(COleVariant((long)1)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("Slide 2's topic");}{   Shapes shapes(slide2.GetShapes());   Shape shape(shapes.Item(COleVariant((long)2)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("You can create and use charts "      "in your PowerPoint slides!");}// Add a chart where the default one was created.{   // First get coordinates of old chart.   float cTop, cWidth, cHeight, cLeft;   Shapes shapes(slide2.GetShapes());   Shape shape(shapes.Item(COleVariant((long)3)));   cTop = shape.GetTop();   cWidth = shape.GetWidth();   cHeight = shape.GetHeight();   cLeft = shape.GetLeft();   // Delete original chart.   shape.Delete();   // Now add your own back where old one was.   Shape tmpShape(shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight,      "MSGraph.Chart", "", 0, "", 0, "", 0));}// Add another slide, with an Organization chart._Slide slide3(slideSet.Add(3, 7));// Add text to slide as before.{   Shapes shapes(slide3.GetShapes());   Shape shape(shapes.Item(COleVariant((long)1)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("The rest is only limited by your Imagination");}// Add a chart where the default one was created.{   // First get coordinates of old chart.   float cTop, cWidth, cHeight, cLeft;   Shapes shapes(slide3.GetShapes());   Shape shape(shapes.Item(COleVariant((long)2)));   cTop = shape.GetTop();   cWidth = shape.GetWidth();   cHeight = shape.GetHeight();   cLeft = shape.GetLeft();   // Delete original chart.   shape.Delete();   // Now add your own back where old one was.   // The next line assumes you have the Microsoft OrgChart application   // installed and registered on your computer.   Shape tmpShape(shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight,      "OrgPlusWOPX.4", "", 0, "", 0, "", 0));}// Setup slide show properties.for(int i=1; i<=3; i++) {   _Slide slide(slideSet.Item(COleVariant((long)i)));   SlideShowTransition sst(slide.GetSlideShowTransition());   sst.SetEntryEffect(513); // Random.   sst.SetAdvanceOnTime(TRUE);   sst.SetAdvanceTime(5.0); // 5-seconds per slide.}// Prepare and run a slide show.{   SlideShowSettings sss(pres.GetSlideShowSettings());   sss.SetShowType(3); // Kiosk.   sss.SetLoopUntilStopped(TRUE);   sss.SetRangeType(1); // Show all.   sss.SetAdvanceMode(2); // Use slide timings.   SlideShowWindow ssw(sss.Run()); // Run show.}// Sleep so user can watch slide show.::Sleep(15000);// Tell PowerPoint to quit.app.Quit();					
  7. Přidejte následující řádky těsně před popisovač tlačítko implementaci:
    #include "msppt8.h" //msppt9.h for PowerPoint 2000, msppt.h for PowerPoint 2002 and PowerPoint 2003// Ole initialization class.class OleInitClass {public:   OleInitClass() {      OleInitialize(NULL);   }   ~OleInitClass() {      OleUninitialize();   }};// This global class calls OleInitialize() at// application startup, and calls OleUninitialize()// at application exit.OleInitClass g_OleInitClass;					
  8. Zkompilujte a spustit.
Odkazy
Další informace o automatizaci aplikace Microsoft Office z Visual C++ klepněte na následující číslo článku databáze Microsoft Knowledge Base:
196776Office Visual C++ použití automatizace
Import IDispatch LPDISPATCH CComPtr

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 222960 - Poslední kontrola: 12/05/2015 13:29:09 - Revize: 4.3

Microsoft Foundation Class Library 4.2, Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002 Standard Edition, Microsoft PowerPoint 2000 Standard Edition, Microsoft PowerPoint 97 Standard Edition

  • kbnosurvey kbarchive kbmt kbautomation kbhowto KB222960 KbMtcs
Váš názor